vsftpd可以支持虚拟用户,这样这些用户跟系统用户不搭嘎,只能访问FTP服务提供的资源,系统势必就要安全的多了。我们实现FTP匿名用户可以有两种方式,可以把虚拟用户列表保存到本地一个数据文件中,也可以把数据保存至数据库文件中。下面分别介绍两种实现方式:
本地数据文件方式:
环境及需求:CentOS5.8
软件包:vsftpd, db4-utils(要用到其提供的db_load工具把文本格式的用户列表转换成二进制的数据格式供vsftpd使用)
1、安装所需软件包
yum –y install vsftpd db4-utils
2、创建用户口令文件
[root@ha1 vsftpd]# cd /etc/vsftpd/
[root@ha1 vsftpd]# vim vuser
tom /*奇数行为用户名
tompwd /*偶数行为上面用户的密码
jerry
jerrypwd
3、生成用户口令文件,并记得更改文件权限只有root有读写权限
[root@ha1 vsftpd]# db_load -T -t hash -f vuser vuser.db
[root@ha1 vsftpd]# ls
chroot_list ssl vsftpd.conf vuser
ftpusers user_list vsftpd_conf_migrate.sh vuser.db
[root@ha1 vsftpd]# chmod 700 vuser vuser.db
[root@ha1 vsftpd]# ll vuser vuser.db
-rwx------ 1 root root 26 Oct 29 13:40 vuser
-rwx------ 1 root root 12288 Oct 29 13:42 vuser.db
4、为其提供PAM的配置文件
[root@ha1 vsftpd]# cd /etc/pam.d/
[root@ha1 pam.d]# vim vsftpd.vuser
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser 注意这里db文件名后面的.db不用带上,这个相当于后缀吧,.db前面的才是文件名
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vuser
5、创建虚拟用户映射的系统用户,指定其家目录,不需要登陆权限及密码
[root@ha1 pam.d]# useradd -d /var/ftp/vuser -s /sbin/nologin vftpuser
[root@ha1 pam.d]# ll -d /var/ftp/vuser/
drwx------ 3 vftpuser vftpuser 4096 Oct 29 13:55 /var/ftp/vuser/
6、编辑vsftpd配置文件使其支持虚拟用户
[root@ha1 pam.d]# vim /etc/vsftpd/vsftpd.conf #添加以下几行
guest_enable=YES /*启用虚拟用户
guest_username=vftpuser /*指定FTP虚拟用户映射到的系统用户
pam_service_name=vsftpd.vuser /*定义PAM认证文件
保存退出,重启vsftpd服务
service vsftpd restart
7、用虚拟账号登陆验证,可以看到可以成功使用tom账号登陆ftp并且上传文件,文件位于vftpuser家目录/var/ftp/vuser下
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-11/92210p2.htm
推荐阅读:
玩转vsftpd服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm
vsFTPd配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm
Ubuntu实用简单的FTP架设 http://www.linuxidc.com/Linux/2012-02/55346.htm
Ubuntu 上架设FTP服务器和Apache服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
RHEL6平台下SeLinux和vsftpd的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm
Linux系统vsftpd源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm
vsftpd的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm