实现基于文件验证的 vsftpd 虚拟用户 (搭建 FTP 服务器)

本文详细介绍了如何在Linux系统中通过vsftpd搭建FTP服务器,实现基于文件验证的虚拟用户。步骤包括创建用户数据库文件、创建用户和FTP目录、配置PAM、修改vsftpd配置、设置SELinux、建立虚拟用户配置文件,以及验证和抓取用户凭证。
摘要由CSDN通过智能技术生成

1、创建用户数据库文件

  • 创建文本文件,奇数行为用户名,偶数行为密码

    [root@neo ~]# vim /etc/vsftpd/vusers.txt
    [root@neo ~]# cat /etc/vsftpd/vusers.txt
    hange
    raisecom
    jiege
    raisecom
    zhanglaoshi
    raisecom
    xiaoyanlaoshi
    raisecom
    
  • 编码为 hash 格式,并进行权限修改

    [root@neo ~]# cd /etc/vsftpd/
    [root@neo vsftpd]# db_load -T -t hash -f vusers.txt vusers.db
    [root@neo vsftpd]# chmod 600 vusers.db 
    [root@neo vsftpd]# ls
    ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  
    vsftpd_conf_migrate.sh  vusers.db  vusers.txt
    [root@neo vsftpd]# ll
    total 44
    -rw-------. 1 root root   125 Oct 30  2018 ftpusers
    -rw-------. 1 root root   361 Oct 30  2018 user_list
    -rw-------. 1 root root  5143 Aug 13 23:59 vsftpd.conf
    -rw-------. 1 root root  5116 Aug 13 01:50 vsftpd.conf.bak
    -rwxr--r--. 1 root root   338 Oct 30  2018 vsftpd_conf_migrate.sh
    -rw-------. 1 root root 12288 Aug 14 00:04 vusers.db
    -rw-r--r--. 1 root root    74 Aug 14 00:03 vusers.txt
    

2、创建用户和访问 FTP 目录

  • 创建用户,并修改家目录允许所有用户访问

    [root@neo ~]# useradd -d /var/ftproot -s /sbin/nologin vuser
    [root@neo ~]# tail -n 1 /etc/passwd
    vuser:x:1000:1000::/var/ftproot:/sbin/nologin
    
    [root@neo ~]# chmod +rx /var/ftproot/
    [root@neo ~]# ll -d /var/ftproot
    drwxr-xr-x. 2 vuser vuser 62 Aug 14 00:15 /var/ftproot
    
  • CentOS 7 还需要执行以下操作

    [root@neo ~]# chmod -w /var/ftproot/                      # 把根文件的写权限去掉
    [root@neo ~]# mkdir /var/ftproot/upload -v
    mkdir: created directory ‘/var/ftproot/upload’   
    [root@neo ~]# setfacl -m u:vuser:rwx /var/ftproot/upload  # 其它用户可以进行读写
    [root@neo ~]# ll -d /var/ftproot/upload/
    drwxrwxr-x+ 2 root root 6 Aug 14 00:19 /var/ftproot/upload/
    

3、创建pam配置文件,制定用户数据库

[root@neo vsftpd]# vim /etc/pam.d/vsftpd.db
[root@neo vsftpd]# cat /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

如果大家保持同样的根目录和权限,可配置如下参数:

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/var/ftproot/

4、修改vsftpd主配置文件,指定pam配置文件

[root@neo ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser        # 所有虚拟帐号映射成 vuser 帐号
							# 新创建文件的属主和数组都是 vuser
pam_service_name=vsftpd.db

5、设置SELinux

禁用SELinux 或者 setsebool -P ftpd_full_access 1

6、虚拟用户建立独立的配置文件

  • 创建配置文件存放的路径

    [root@neo ~]# mkdir /etc/vsftpd/vusers.d/ -pv
    mkdir: created directory ‘/etc/vsftpd/vusers.d/’
    
  • 修改 vsftpd 的主配置文件,虚拟用户使用的配置文件目录

    [root@neo ~]# vim /etc/vsftpd/vsftpd.conf   # 如果每个用户权限保持一致的话,则不需配置此文件
    user_config_dir=/etc/vsftpd/vusers.d/
    
  • 创建各用户自已的配置文件(可自定义每个用户的读写权限,用户的根目录也可以单独定制)

    [root@neo vusers.d]# vim zhanglaoshi
    [root@neo vusers.d]# cat zhanglaoshi 
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    [root@neo vusers.d]# cat xiaoyanlaoshi 
    local_root=/var/ftproot2
    [root@neo vusers.d]# cat jiege 
    local_root=/var/ftproot3
    [root@neo vusers.d]# cat hange 
    local_root=/var/ftproot4
    

7、进行验证

在这里插入图片描述
在这里插入图片描述

8、抓取用户名和密码

03:16:51.912805 IP 172.16.141.99.63582 > 172.16.141.252.21: Flags [P.], seq 1:19, ack 63, win 16636, options [nop,nop,TS val 2070224 ecr 610399081], length 18: FTP: USER zhanglaoshi
	0x0000:  e43a 6e0a 9b88 28d2 4470 abbe 0800 4500  .:n...(.Dp....E.
	0x0010:  0046 01bf 4000 4006 c572 ac10 8d63 ac10  .F..@.@..r...c..
	0x0020:  8dfc f85e 0015 83b5 ce42 8edd 1f8d 8018  ...^.....B......
	0x0030:  40fc 3764 0000 0101 080a 001f 96d0 2461  @.7d..........$a
	0x0040:  f369 5553 4552 207a 6861 6e67 6c61 6f73  .iUSER.zhanglaos
	0x0050:  6869 0d0a                                hi..
03:16:51.916103 IP 172.16.141.99.63582 > 172.16.141.252.21: Flags [P.], seq 19:34, ack 97, win 16628, options [nop,nop,TS val 2070225 ecr 610399092], length 15: FTP: PASS raisecom
	0x0000:  e43a 6e0a 9b88 28d2 4470 abbe 0800 4500  .:n...(.Dp....E.
	0x0010:  0043 01c1 4000 4006 c573 ac10 8d63 ac10  .C..@.@..s...c..
	0x0020:  8dfc f85e 0015 83b5 ce54 8edd 1faf 8018  ...^.....T......
	0x0030:  40f4 a70d 0000 0101 080a 001f 96d1 2461  @.............$a
	0x0040:  f374 5041 5353 2072 6169 7365 636f 6d0d  .tPASS.raisecom.
	0x0050:  0a                                       .
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值