本文是假设你已经安装vsftpd
没安装请下载rpm包安装
1、创建虚拟用户文件login.txt
[root@localhost ~]# vim login.txt
奇数行为用户名,偶数行为密码。
test
test
给此文件设置600权限
[root@localhost ~]#chmod 600 login.txt
查看是否安装 db4-utils-4.3.29-10.el5.i386.rpm
[root@localhost ~]# rpm -qa | grep db4-utils
db4-utils-4.3.29-10.el5
没有则点击下载它并安装:
rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm
下面使用db_load命令生成虚拟用户口令认证文件。
生成一个hash码型的数据库文件供ftp虚拟用户使用。
[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/vsftpd_login.db
设置600权限
[root@localhost ~]#chmod 600 /etc/vsftpd/vsftpd_login.db
2、配置PAm文件
修改/etc/pam.d/vsftpd添加尾部两行内容如下:(其他内容请注释)
#%PAM-1.0
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include system-auth
#account include system-auth
#session include system-auth
#session required pam_loginuid.so
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
注:
(x86_64)
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
3、建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,不需要本地shell。
[root@localhost ~]#useradd -s /sbin/nologin ftpsite(也可以-d 改变主目录)
4、配置vsftpd.conf
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO //禁止匿名用户访问
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list //设置chroot_local_user=YES后,该文件内部制定的用户会被限制在帐号的Home目录
chroot_local_user=YES //以上设置chroot功能,使整体ftp更安全
guest_enable=YES //开启虚拟用户
guest_username=virtuser //FTP虚拟用户对应的系统用户
pam_service_name=vsftpd //PAM认证文件
user_config_dir=/etc/vsftpd/virtual //用户配置文件存放目录
pasv_min_port=30000
pasv_max_port=30999
创建chroot_list空文件(chroot功能需设置)
[root@localhost ~]#touch /etc/vsftpd/chroot_list
5、重启vsftpd服务
[root@localhost ~]#service vsftpd restart
6,设置selinux
[root@localhost ~]#setsebool -P ftpd_disable_trans on
没设置会出现
7、设置防火墙
添加防火墙规则
vim /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 30000:30999 -j ACCEPT
重启 防火墙
service iptables restart
一切OK