vsftpd 虚拟账号管理 (2)

vsftpd 虚拟账号管理

vsftpd虽然英文全称叫Very Secure FTP ,也就是非常安全的ftp.但是我们平时如果用本地系统账号来开放下载,上传权限时还是容易被一些不怀好意的Hacker窃取我们的用户名密码进入系统.一定层面上也给系统带来的不安全的隐患.那么解决这种问题建立虚拟账号来管理我的ftp不失为一个好办法.下面就来讨论下vsftpd的虚拟账号配置.
我们的要达到的目的是,建立三个虚拟账号.分别是tom,tony,admin. 其中tom具有浏览文件,目录和下载的权限.tony具有下载,浏览,和建立目录的权限.admin具有下载,上传,浏览,建立并删除目录的权限.3个账号密码统一为123.(测试方便)
首先:我们进入到/etc/vsftpd/ 下,打开一个文本vuser.txt,在里面添加如下内容:
tom
123
tony
123
admin
123

:wq (保存退出)
以上就是一行为用户名,下一行跟密码.这样添加3个用户名,密码分别都是123.
ok,然后我们需要生成hash加密的数据库文件以便让后续的pam.userdb 这个模块来读取我们的用户名密码进行验证.我们需要确认系统已经安装了db4_utils的rpm包,接下来执行:
db_load -T -t hash -f   vuser.txt    vuser.db
生成数据库文件后,vsftpd要启用虚拟账号需要跟PAM认证模块配合.我们用rpm安装好vsftp套件后.在/etc/pam.d/下就会有一个vsftpd的文件,这个是vsftpd利用pam这个认证模块来认证用户登陆的,默认的配置有点像这样:
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
为了虚拟用户不跟系统账号的登录认证产生分歧,所以我们把上面的5行话全部注释掉加入以下两行:
auth required   pam_userdb.so  db=/etc/vsftpd/vuser
account required  pam_userdb.so  db=/etc/vsftpd/vuser

这里的db=后面指的就是我们生成好的hash数据文件.文件后缀的.db是不需要打的,pam_userdb.so这个模块会自动帮我们识别.还有就记住/etc/pam.d/vsftpd 文件里面原先的内容一定要注释掉.只留新添加的两行即可.因为虚拟账号要登陆系统必须要影射到我们系统的真实用户上.不可能一个无缘无故的用户跑到我们系统上来.所以需要建立一个虚拟用户影射的系统账号:useradd benetcisco   不需要给这个用户密码,那么他也永远不能登陆系统.
接下来就是配置我们vsftpd的主配置文件了.vi /etc/vsftpd/vsftpd.conf ,关闭所有与anonymous有关的配置,打开guest账号.设置用户个性化配置目录.一些贴出我的vsftpd.conf的配置:
anonymous_enable=NO
local_enable=YES
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=yes
guest_username=benetcisco (guest账号影射为benetcisco)
user_config_dir=/etc/vsftpd/vuser_conf (用户个性化配置目录)

:wq (保存退出)
然后我们在/etc/vsftpd/下
mkdir vuser_conf ;cd vuser_conf
分别建立tom,tony,admin 这三个文件,文件名必须跟虚拟用户名一致,然后我们就可以在这些文件里面添加用户所对应的权限喽.....
在tom里添加 anon_world_readable_only=NO (这个选项是说用户只可以读取自己有权限读取的文件,这项为YES的话那么其他用户的文件就看不到了,这里我们设置为NO)
然后是tony的配置文件:
anon_world_readable_only=NO
download_enable=YES
write_enbale=YES
anon_write_mkdir_enable=YES
anon_max_rate=200000 (限速为200K)
admin的配置
anon_world_readable_only=NO
download_enable=YES
write_enbale=YES
anon_write_mkdir_enable=YES
anon_other_write_enabel=YES
local_root=/db/ftp (默认虚拟用户会登陆到自己影射的系统用户主目录,如果你希望他登陆到其它目录就用这个选项)
OK 到现在我们的配置就完成了,service vsftpd restart 重启服务就可以用我们建好的虚拟账号来登录了.当然vsftpd还有很多牛X的配置,大家有兴趣可以man vsftpd.conf 自己再去研究下.
 
注意:通过以上操作,原来的用户账号就不能使用了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章