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 自己再去研究下. 注意:通过以上操作,原来的用户账号就不能使用了
|