实验项目:
FTP匿名传输服务;
FTP本地用户访问(包括虚拟账户)。

实验环境:
VMware虚拟机
Win7(用于验证实验结果)
Linux系统(充当FTP服务器)

实验目的:
1·匿名用户访问:拥有上传、下载、删除、重命名权限(这里是最大权限了,在实际工作中不会给这么大权限,这里为了实验)

2·本地用户访问:实现黑白名单的限制(一般限制黑名单);

3·实现虚拟账户访问(这里需要修改pam认证模块)

实验经过:
1·FTP服务器默认使用TCP的协议,端口号是20、21与客户端进行通信。20号端口用于建立数据链接,21号端口用于建立控制链接并传输控制命令
2·访问FTP服务器时,会用到一些特殊的用户账号,其中用户名为FTP或anonymous,这类用户可以无需密码,这样的用户都称为“匿名用户”
3·下面进行对VSFTP服务的安装,首先挂载好镜像,然后我们用RPM命令安装FTP服务。执行命令:
rpm -ivh /mnt/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm #安装ftp服务
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
4·服务安装好了,我们现在需要进行匿名访问并且拥有最大权限,所以现在需要修改它的配置文件,执行命令:
vim /etc/vsftpd/vsftpd.conf #此命令修改vsftp的配置文件
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
5·需要匿名访问、需要上传、下载权限,所以我们需要对以下文件进行修改:
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
6·到这里需要单独配置删除、重命名的配置。还是在:vim /etc/vsftpd/vsftpd.conf 配置文件中修改,在配置文件中加入如下内容:
anon_other_write_enable=YES #允许匿名用户拥有其他的权限(建议不用给这么高的权限,这里了解即可)
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
7·配置文件都修改完成后分别执行命令:
service iptables stop #关闭防火墙
service vsftpd restart #重启ftp服务
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
8·现在就是验证的时刻,FTP的站点是:/var/ftp(匿名访问就是访问这个站点)。在站点中写点东西,用客户端匿名访问看是否能下载、上传、写入等权限来验证实验是否成功。在Windows中打开cmd访问服务器、可以打开浏览器访问、可以打开资源管理器访问
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
9·在Windows的cmd(命令提示符)中可以用命令get:下载 put:上传。也可以使用浏览器进行访问。各种权限的验证这里就不做过实验了。现在需要实现本地用户访问(包括黑名单的设置)。我们创建两个本地用户分别是:zhangsan、lisi。我们把zhangsan这个用户加入黑名单,zhangsan这个用户就不能在访问服务器而lisi可以访问。必须修改配置文件,执行命令:vim /etc/vsftpd/vsftpd.conf
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
10·现在需要把禁止访问服务器的用户添加到名单中。执行命令:vim /etc/vsftpd/user_list 。把zhangsan这个用户添加到这个配置文件中。然后执行命令:service vsftpd restart 重启服务,setenforce 0关闭增强×××。下一步验证!
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
11·就可以打开客户端进行验证。在Windows中打开cmd连接服务器,能连接上了就能上传、下载。只要给了相应的权限!
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
12·下面就来配置虚拟账户访问。首先我们建立虚拟用户账户,当然是在一个配置文件中添加,
执行命令:vim /etc/vsftpd/vuser #新建的用户和密码按格式加入此文件
/奇数行为用户名/ /偶数行为密码/
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
13·需要把上个步骤的文件转换为为数据库文件,
分别执行命令: db_load -T -t hash -f vuser vuser.db #转换为数据库文件
chmod 600 vuser
chmod 600 vuser.db #修改两个文件的权限(处于安全的考虑)
useradd -d /opt/vuser -s /sbin/nologin vuser #创建一个用户为vuser 指定家目录/opt/vuser 并不使用shell登陆
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
14·现在需要编辑认证pam认证模块支持虚拟用户登陆,需要在vim /etc/vsftpd/vsftpd.vu添加映射关系:
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser #把映射关系添加到vsftpd.vu(自己新创建的文件)
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
15·现在虚拟用户的pam认证已完成,还需要在主配置文件中添加访问权限、开启虚拟用户、使用新的pam认证。
分别执行命令:vim /etc/vsftpd/vsftpd.conf #修改主配置文件
service vsftpd restart #重启服务
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
16·现在就是验证虚拟用户的时候了,现在系统中是不存在wangwu这个用户的,但是可以用这个用户访问并上传、下载。记住这里上传、下载的家目录是我们配置好的路径: /opt/vuser 这个路径是在创建映射用户是配置的家目录
VSFTP匿名传输服务;VSFTP本地用户访问;VSFTP虚拟账户访问
17·上图说明实验成功。

总结:
1》在修改配置文件时需要注意开启或关闭了什么权限
2》注意在ftp的站点pub文件的权限
3》在创建虚拟用户时需要明白pam认证的作用,并且修改主配置文件你需要使用哪一个认证
4》在排查故障时,仔细检查,特别是配置文件。