目录
一、匿名用户访问控制
当访问FTP服务时没有加入用户认证即为匿名访问
quit和exit都能够退出ftp服务访问
1、登陆控制
530表明认证失败,原因是FTP服务默认匿名用户不能访问服务器。
设置主配置文件后重启vsftpd服务即可登陆
2、家目录控制
vsftpd的默认家目录为/var/ftp。进入默认家目录,建立/dir目录,并在该目录下建立几个文件。
设置主配置文件,修改家目录为/dir,重启vsftpd服务。
访问vsftpd服务,家目录已经改变为/dir。
3、上传控制
vsftpd服务默认匿名用户不能够上传文件,550为程序本身拒绝
修改主配置文件,给予上传权限,重启服务,出现553报错,需要修改家目录和下面目录的权限才能上传成功
上传文件成功
如果修改家目录权限为777,会报错500,权限过大,就无法成功上传了。
4、目录建立控制
匿名用户本身不能够在服务下创建,删除目录
修改主配置文件,给予目录创建权限,重启服务
访问服务,创建目录成功
5、下载控制
默认匿名用户不能下载服务器中的数据。
修改主配置文件,开启下载功能,重启服务。
访问服务器,下载服务器内容成功,并将内容下载在根下。
6、删除/重命令控制
匿名用户本身不能够在服务下删除,重命名目录。
设置主配置文件,开启删除重命名服务,重启服务。
访问服务器,删除重命名成功。
7、匿名用户上传文件权限设定
在设定文件上传权限前,上传文件的权限为600,设定anon_umask=022后上传文件的权限会变为644。
修改主配置文件,重启服务。
上传文件,查看修改后上传文件的权限。
8、匿名用户上传文件的用户身份设定
访问ftp在pub/中上传文件,所上传文件passwd、inittab的拥有者默认为14(ftp服务用户),更改pub/的拥有组为ftp,更改pub/的权限为775,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件group,文件group的拥有者为设定的jk
文件group的拥有者为设定的jk,但其权限为默认权限600,不是我们所设定的644,这是因为当我们设定chown_username之后上传文件权限将不是用anon_umask=xxx参数设定,而是用chown_upload_mode=xxxx来重新设定,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件shadow的拥有者为设定的jk且权限为644
9、登陆数量控制
在多个终端登陆服务器,都能够成功登陆,显然在企业中这样不合理。需要限制登陆用户个数。
设置最大访问个数为2,重启服务。
在第三个终端登陆时会显示登陆个数已经到达上限,不能继续登陆。
10、上传速率控制
生成一个大文件,测试上传速率,发现速率很大。但在实际应用中,企业作为服务提供方,需要对用户上传速率进行限制。
设置用户上传速率,重启服务。
删除大文件,再次上传大文件。
二、本地用户访问控制
1、登陆控制
创建本地用户jobbin,设置密码,能够登陆FTP,所处位置为家目录。
关闭本地用户登陆权限,重启服务。
本地用户不能登陆,530报错为用户认证失败。
2、家目录控制
用户登陆默认家目录为/home/jobbin,创建新目录/jobbindir,修改家目录为/jobbindir,用户登陆后家目录就会变为/jobbindir,从而更改了家目录位置。
3、写权限控制
ftp服务默认用户有写的权力,去掉写的权力后,不能上传或删除文件。
4、上传文件权限控制
本地用户访问ftp,在该本地用户的家目录/home/username中put上传文件/etc/passwd,服务默认上传文件的权限为644,编写vsftp服务的配置文件,设定local_umask=077,重启服务,访问ftp在pub/中上传另一文件/etc/group,可以看到文件group权限为600(777-077-111),权限设定生效
5、用户登陆控制
/etc/vsftpd/ftpusers: 永久用户登录黑名单,在该名单中的用户无法访问ftp
/etc/vsftpd/user_list: 用户列表,默认为用户登录黑名单,在该名单中的用户无法访问ftp;可以在配置文件中设定userlist_deny=NO,此时该用户列表为用户登录白名单,不在名单中的用户不能访问ftp
将jobbin用户添加到黑名单中,再次访问ftp时会被拒绝,530表示访问失败。
添加到黑名单后访问服务,报错530,无登陆权限。
编写vsftp服务的配置文件,设定userlist_deny=NO
,重启服务,此时用户列表为用户登录白名单,在其中添加westos用户后,只有本地用户westos可以访问ftp,不在名单中的用户不能访问ftp(包括匿名用户)
6、锁定用户到自己的家目录中
1、锁定用户到自己的家目录中
本地用户访问ftp,访问成功后该用户可以切换到FTP服务器系统的根目录中,这显然是不安全的,应该将该用户锁定到自己的家目录中
编写vsftp服务的配置文件,重启服务,本地用户访问ftp不成功,500报错即文件系统权限过大
将家目录的写权限去掉,否则无法访问,此时本地用户访问lftp成功后无法切换浏览根,该用户被锁定到自己的家目录中
2、锁定用户到自己的家目录中的白名单
编写vsftp服务的配置文件,设定chroot_local_user=YES,重启服务,编写锁定名单(/etc/vsftpd/chroot_list默认不存在),在名单中添加用户lee,只有名单中的lee用户访问lftp后可以切换浏览根/,不在名单中的westos用户访问lftp后被锁定到自己的家目录中
用户jobbin能够进入并查看根目录下的文件
用户jk不在白名单/etc/vsftpd/chroot_list上,所以不会进入根目录中。
3、锁定用户到自己的家目录中的黑名单
编写vsftp服务的配置文件,设定chroot_local_user=NO,重启服务,编写锁定名单(/etc/vsftpd/chroot_list默认不存在),在名单中添加用户lee,名单中的lee用户访问lftp后被锁定到自己的家目录中不能切换浏览根/,不在名单中的westos用户访问lftp后可以切换浏览根/
此时名单/etc/vsftpd/chroot_list为黑名单,jobbin用户将被锁在家目录中
三、虚拟用户访问控制
1、虚拟用户的建立
在vsftpd服务配置目录/etc/vsftpd/下建立认证文件,在其中设置虚拟用户的用户名和密码,加密该认证文件—db_load -T(转换) -t(指定转换类型) hash -f(指定加密文件) 文件名 输出文件
在/etc/pam.d下生成认证策略文件(注意认证策略文件路径不用写.db后缀,系统会自动添加)
编写vsftp服务的配置文件,指定认证策略文件,指定虚拟用户功能开启,指定虚拟用户在ftp服务器上的用户身份,重启服务,此时可以通过认证文件中设置的虚拟用户成功访问ftp
用户jobbin不能访问,报错530
用户user1,user2,user3都能登陆(自己设置的密码别忘了,忘了登不上别怪兄弟没提醒)
2、虚拟用户家目录的独立设定
虚拟用户访问ftp,默认共享目录为/var/ftp ,我们为每个虚拟用户建立各自的家目录
编写vsftp服务的配置文件,指定虚拟用户默认访问目录位其对应家目录,从shell中提取登陆的虚拟用户名,重启服务,此时虚拟用户访问ftp后看到的是其家目录中的资源
四、用户配置独立
虚拟用户访问ftp后,在其家目录中put上传文件,553报错即文件系统权限限制,我们需要给虚拟用户各自家目录进行权限设置
权限设置完成后所有虚拟用户都可以进行上传操作
编写vsftp服务的配置文件(注释五行;添加独立语句),重启服务,建立与配置文件中对应的目录,在该目录下编写指定用户的独立上传文件(注意文件名要与用户名相同),只有指定用户可以上传
user1可以上传
user2不能上传