问题
沿用练习一,通过调整FTP服务端配置,实现以下目标:
1)将FTP用户禁锢在各自的宿主目录下,阻止其切换到其他的文件夹
2)通过/etc/vsftpd/ftpusers黑名单阻止用户 mike 访问
3)将/etc/vsftpd/user_list文件设为白名单,允许用户 lisi、mike 访问
4)分别测试匿名访问、以用户lisi和mike访问的结果
5)将 ftp 加入白名单,再测试匿名访问
方案
对于匿名用户ftp来说,默认已经启用禁锢(仅限于起始目录/var/ftp);而对FTP本地用户来说,默认并没有禁锢(不仅可以访问宿主目录,还可以跳转到其他目录),存在一定安全隐患。若要禁锢本地用户,只需设置 chroot_local_user = YES即可。
vsftpd服务提供了两个用户列表文件,其中 /etc/vsftpd/ftpusers 作为默认的黑名单使用,列在此文件内的用户将无法登入FTP。
而另一个文件 /etc/vsftpd/user_list只是一个用户名列表,根据配置参数 userlist_enable 的值是YES(默认)还是NO来决定是否启用此列表。一旦启用此列表文件以后,如果配置参数 userlist_deny的值是YES(默认)则此列表为黑名单(拒绝指定的用户),如果是NO则此列表作为白名单使用。
步骤
实现此案例需要按照如下步骤进行。
步骤一:禁锢FTP本地用户账号
1)验证未启用禁锢前的风险
以普通用户lisi登入后,起始目录位于/home/lisi/,但可以通过cd命令切换到服务器上的其他目录(比如/etc/),并下载有读取权限的文件(比如passwd),可能导致未授权的信息泄露。
[root@pc205 ~]# ftp 192.168.4.5 //连接FTP服务器
Connected to 192.168.4.5 (192.168.4.5).
220 (vsFTPd 2.2.2)
Name (192.168.4.5:root): lisi //以FTP本地用户登录
331 Please specify the password.
Password: //验证口令
230 Login successfu