vsftpd虚拟用户配置
虚拟用户的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。其配置步骤如下:
一、修改/etc/vsftpd/vsftpd.conf 文件
具体内容为:
1[root@ /etc/vsftpd]cat vsftpd.conf
2anonymous_enable=NO
3listen=YES
4listen_port=7722
5###########set pasv############
6pasv_enable=YES
7pasv_min_port=9921
8pasv_max_port=9927
9#################for vuser##############
10guest_enable=YES
11guest_username=www
12pam_service_name=vsftpd.vuser
13user_config_dir=/etc/vsftpd/vsftpd_user_conf
14local_root=/data1
15anon_umask=022
16anon_other_write_enable=YES
17####################################
18local_enable=YES
19write_enable=YES
20local_umask=022
21anon_upload_enable=NO
22anon_mkdir_write_enable=YES
23dirmessage_enable=YES
24xferlog_enable=YES
25connect_from_port_20=YES
26xferlog_std_format=YES
27userlist_enable=YES
28tcp_wrappers=YES
29log_ftp_protocol=YES
30dual_log_enable=YES
31max_clients=200
32max_per_ip=20
这里出于安全考虑我将默认监听端口21改成了7722 ,被动连接的端口为9921-9927 。这里所有的虚拟用户对应的系统真实用户是www ,对应的pam配置文件的名字为vsftpd.vuser 。虚拟用户对应的配置文件为/etc/vsftpd/vsftpd_user_conf 。
注:出于安全考虑vsftp.conf文件的权限需改成600,即chown 600 vsftpd.conf;
二、虚拟用户配置文件
现以新建test用户为例,在虚拟用户配置文件目录新建test文件,内容如下:
1[root@ / ]cat /etc/vsftpd/vsftpd_user_conf/test
2local_root=/data1/NFS/wwwroot
3anon_world_readable_only=NO
4write_enable=YES
5anon_upload_enable=YES
6anon_mkdir_write_enable=YES
7anon_other_write_enable=YES
三、修改创建pam配置文件vsftpd.vuser
1[root@ / ]cat /etc/pam.d/vsftpd.vuser
2auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
3account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注: 出于安全考虑,这里还可以考虑增加Google Authenticator的pam模块。
四、生成密码文件
生成虚拟用户的db数据密码库,需要用到工具db_load,其在db4_utils包里,如下:
1[root@ / ]whereis db_load
2db_load: /usr/bin/db_load
3[root@ / ]rpm -qf /usr/bin/db_load
4db4-utils-4.7.25-17.el6.x86_64
通过命令生成密码数据文件,出于安全考虑,这里将其更改权限为600
1[root@ / ]cat /etc/vsftpd/account.txt
2test
3123456
4yang
5aaabbbccc
6zhu
7pppef@123
8[root@ / ]db_load -T -t hash -f /etc/vsftpd/account.txt /etc/vsftpd/vsftpd_login.db
9[root@ / ]chmod 600 /etc/vsftpd/vsftpd_login.db
五、iptables配置
iptables中增加如下内容,并重启iptables
1-A INPUT -p tcp -m state --state NEW -m tcp --dport 7722 -j ACCEPT
2-A INPUT -p tcp -m state --state NEW -m tcp --dport 9921:9927 -j ACCEPT
增加完成后/etc/init.d/iptables restart生效。
以上五步都操作完成后,重启vsftpd 生效。至此,就可以通过vsftpd中配置的虚拟用户进行连接了。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/vsftpd-virtual-users-config/3024.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.