vsftpd用户控制
作为目前做安全、最高效的FTP服务器,安全性是非常重要的。
安装好VSFTPD,系统将会创建/etc/pam.d/vsftpd文件。
#more /etc/pam.d/vsftpd
我们会发现下面这一行内容:
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpuser onerr=succeed
这个文件其实是一个接口,它会调用/lib/security/pam_listfile.so这个模块。这个file一个文件,文件内容是一些用户 响应默认是deny。
实验:
假设我们现在用kkman能登陆到FTP上。那我们在系统里面输入如下语句
#echo "kkman" >> /etc/ftpuser
这是我们再次登陆会发现,连接失败。
当我们对FTP的安全性提出比较高的要求时,我们可能想让所有人都登不上来,除了那些在/etc/ftpuser里面的用户。要实现以上要求我们只要修改下上面的那个语句:
auth required /lib/security/pam_listfile.so item=user sense=allow file=/etc/ftpuser onerr=succeed
创建虚拟账号
虚拟账号:把几个FTP账号映射成一个系统已经存在的账号。虚拟账号在登陆时,自己并不能看到映射账号是什么,所以即使虚拟账号被人盗窃,也不会对系统造成更大的伤害。
使用虚拟账号必须关闭所以匿名的选项。
1.创建虚拟账号user.txt
tom
123
jack
123
以上的文本中,每两行一个账号。一个是用户名,一个是用户密码
#vi user.txt
tom
123
jack
123
2.把文本文件转化为数据库文件
#db_load -T -t hash -f user.txt /etc/vsftpd_login.db
#chmod 600 /etc/vsftpd_login.db 为了安全起见 防止数据库被修改 我们设置了权限为600
3.修改/etc/pam.d/vsftpd
为了防止干扰,我们把以前的默认设置全部先禁用 在行首加个#
并添加如下语句:
auth required pam_userdb.so db=/etc/vsftpd_login.db
account required pam_userdb.so db=/etc/vsftpd_login.db
4.创建映射账号
这个映射账号可以是现在系统存在的,也可以自己新建一个账号。
#useradd vuser
#chmod o+wrx /home/vuser 由于虚拟账号只是映射到这个账号,并不属于这个映射账号的组,所以我们必须让其他账号有权查看 执行这个目录。
5.编辑/etc/vsftpd/vsftpd.conf
把里面所有的anonymous选项全部禁用掉
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
添加映射账号信息
guest_enable=YES
guest_username=vuser