Linux学习笔记-RH135之Vsftpd服务匿名用户和本地用户的访问控制

1、ftp介绍

ftp(File Transfer Protocol)文件传输协议,是互联网中最老牌的传输协议,比http早,今天一起来学习ftp。ftp的服务名称是vsftpd.service,配置目录是/etc/vsftpd,主配置文件是/etc/vsftpd/vsftpd.conf,默认发布目录是/var/ftp。在下面的学习中可能出现四种报错信息,他们分别代表的意思为:

报错信息含义
550程序本身拒绝
553文件系统权限限制
500权限过大
530认证失败

2、vsftpd安装及启用

前提是要有软件仓库(在真机172.25.254.77有共享仓库),首先分别给服务端和客户端安装软件,这里为了方便都是用的虚拟机b(ip为172.25.254.99),关闭selinux内核级加强型火墙,否则会影响实验效果,至于为什么后面会讨论,然后关闭防火墙,最后重启vsftpd服务。

dnf install vsftpd -y  #服务端
dnf install lftp -y  #客户端
vim /etc/selinux/config 
     SELINUX=disabled
systemctl disable --now firewalld
systemctl restart vsftpd

测试安装发布是否成功,由于默认是不允许匿名用户访问,所以要先在配置文件的第12行,修改anonymous_enable=YES才可以进行测试,重启vsftpd服务,lftp 172.25.254.99访问,此访问方式必须能列出资源才算访问成功,如下图,在使用完成后输入exitquit退出lftp。
在这里插入图片描述

也可以使用浏览器来测试是否发布成功,如下图,成功了。
在这里插入图片描述

3、vsftpd匿名用户访问控制

当访问ftp服务时没有加入用户认证为匿名访问,加入了用户认证的是本地用户访问。
(1)登陆控制
默认是不允许匿名用户访问,需要配置文件的第12行,YES代表允许匿名用户访问,NO代表不允许匿名用户访问
在这里插入图片描述
重启服务,就可以匿名登陆了
(2)家目录控制
默认家目录是/var/ftp,如果想更改家目录,可以修改配置文件如下。这里我们建立了/westosdir来测试,配置文件中添加下面的一句anon_root=/westosdir,重启服务,再次登陆lftp,显示的是westosdir中的文件了。
在这里插入图片描述
在这里插入图片描述
(3)上传控制
可以看到下图,默认情况下,我们上传文件,是550,被程序本身拒绝的。
在这里插入图片描述
修改配置文件,添加下面的语句,重启服务
在这里插入图片描述

现在再次测试,发现提示553,说明目录的权限不够,那么增加目录的权限如下图,
在这里插入图片描述
现在就成功了,如下图
在这里插入图片描述
注意:上传控制,下载控制,删除控制,目录建立控制,上传文件权限等操作必须在pub这个子目录下,不能直接在刚开始进去的共享目录操作。
(4)目录建立的控制
默认情况下,如下图,不能创建子目录,550,被程序本身拒绝的。
在这里插入图片描述

修改配置文件,添加下面的语句,重启服务
在这里插入图片描述
测试效果,成功创建子目录。
在这里插入图片描述
(5)下载控制
默认情况下,如下图,不能下载文件,550,被程序本身拒绝的。
在这里插入图片描述
修改配置文件,添加下面的语句,重启服务
在这里插入图片描述

测试效果,成功下载文件。
在这里插入图片描述
有同学有疑问吗,下载到哪里了?下载到了登陆lftp前的当前位置了。
在这里插入图片描述
(6)删除和重命名控制
默认情况下,如下图,不能删除文件和重命名。
在这里插入图片描述
修改配置文件,添加下面的语句,重启服务
在这里插入图片描述
测试效果,成功删除文件,成功重命名文件。
在这里插入图片描述
(7)匿名用户上传文件权限设定
默认情况下上传文件的权限是600
在这里插入图片描述
如果想修改上传文件的权限,要修改配置文件,添加下面的语句,重启服务
在这里插入图片描述
现在文件的权限应该是777-022-111=644,测试如下图,确实上传文件的权限是644了。
在这里插入图片描述
(8)匿名用户上传文件的用户身份设定
默认情况匿名用户上传文件的用户身份是ftp,那可以更改吗在这里插入图片描述
要修改配置文件,添加下面的语句,重启服务,这两句表示允许更改上传文件的用户身份,更改为westos用户。
在这里插入图片描述
测试效果如下图,确实文件的用户身份变为了1000,1000就是westos用户,但是新的问题有了,这个文件的权限又恢复为600,说明允许更改上传文件的用户身份后,之前设定的umask就失效了
在这里插入图片描述
修改配置文件,添加下面语句,重启服务
在这里插入图片描述
测试如下图,文件的用户身份是westos,权限是644,都好了。
在这里插入图片描述
(9)登陆数量控制
默认情况下,不限制登陆的数量,假如我们想限制登陆的数量,修改配置文件,设定最多两个用户同时登陆。
在这里插入图片描述
测试如下,前两个都成功登陆,最后一个需要等待,有其他人退出最后一个人才可以登陆。
在这里插入图片描述
注意:必须把已经登陆的全部退出,重新登陆才能看到效果。
(10)上传速率控制
默认情况下是不限制上传速度的,为了测试,我们建立一个500M的大文件
在这里插入图片描述
上传这个大文件,测试速度,下图可以看到只用了两秒
在这里插入图片描述

如果想控制,可以修改配置文件,这里的单位是字节,即这里的限制速度最大为100K。
在这里插入图片描述
上传这个大文件,测试速度,如下图,基本在100K左右。
在这里插入图片描述

4、本地用户访问控制

使用本地用户访问时,可以有一系列的控制
(1)登陆控制
默认系统就允许本地用户登陆,因为配置文件中有这句
在这里插入图片描述
为了后面的测试,创建了westos和lee两个用户,密码都是westos。测试两个用户都可以登陆

useradd westos
useradd lee
echo lee | passwd --stdin westos
echo lee | passwd --stdin westos
lftp 172.25.254.99 -u westos
lftp 172.25.254.99 -u lee

(2)家目录控制
每个用户的默认家目录是/home/用户名,比如/home/lee/home/westos。如果想改变家目录,可以修改配置文件,添加这句,重启服务
在这里插入图片描述
测试效果,家目录成功变为/westosdir
在这里插入图片描述
(3)写权限控制
看下图,本地用户默认就可以写操作,包括上传,删除,下载。
在这里插入图片描述
这是因为配置文件中默认就有
在这里插入图片描述
该开关一旦关闭,不仅本地用户不可写,匿名用户也不可写。
(4)上传文件权限控制
如下图,上传文件的权限默认是644,如何更改呢?
在这里插入图片描述
修改配置文件,umask修改为077,重启服务
在这里插入图片描述
测试结果,上传文件的权限为600。
在这里插入图片描述

(5)用户登陆控制
控制黑名单的有两个子配置文件,/etc/vsftpd/ftpusers是永久黑,即不论多会都是黑名单,/etc/vsftpd/user_list是默认情况下的黑名单,但是/etc/vsftpd/vsftpd.conf主配置文件里加了userlist_deny=NO这句,表示现在开启白名单,现在/etc/vsftpd/user_list里面的是白名单了。现在在/etc/vsftpd/ftpusers中加入westos,
在这里插入图片描述
测试效果,westos用户不可以登陆,lee用户可以登陆。
在这里插入图片描述
(6)用户登陆白名单
默认情况下配置文件中没有userlist_deny这句,即默认是黑名单模式,如果想改为白名单模式,修改配置文件,重启服务
在这里插入图片描述
现在开启了白名单模式,/etc/vsftpd/user_list里写的就变为了白名单,不在名单中的用户不能登陆ftp,现在在/etc/vsftpd/user_list中添加lee,意味着只有lee用户能访问,效果测试,lee可以,westos不可以。
在这里插入图片描述

(7)锁定用户到自己的家目录中
我们发现用户可以去根目录,也就是可以去任意的地方,权限太大了,
在这里插入图片描述
我们想锁定用户到自己的家目录中,不让他乱跑到其它地方,配置文件添加chroot_local_user=YES,代表开启锁,那么所有的用户就都被锁到家目录了,无法出去。重启服务
在这里插入图片描述
测试效果,提示500,表示权限过大,所以chmod u-w /home/*,去除写权限。
在这里插入图片描述
再次测试,如下图,虽然没有报错,但是确实不能去根下了。
在这里插入图片描述

(8)锁定用户到自己的家目录中的白名单
如果开启了锁,又开启了chroot_list_enable=YES列表,表示白名单模式,那么只有chroot_list_file=/etc/vsftpd/chroot_list这个列表里的用户允许出去,这里我列表里设置了lee。主配置文件修改如下,重启服务
在这里插入图片描述
测试效果,如下图,lee没被锁,可以去根。
在这里插入图片描述
westos用户锁了,不能去根。
在这里插入图片描述
(9)锁定用户到自己的家目录中的黑名单
如果chroot_local_user=NO关闭锁功能,那么所有的用户都不被锁,可以去根下,这时再开启chroot_list_enable=YES列表,表示该列表中的用户不允许出去,被锁在家目录,是黑名单,这里列表设置了lee。重启服务
在这里插入图片描述
测试效果,如下图,lee锁在家目录,不能去根
在这里插入图片描述

westos用户没锁,可以去根下
在这里插入图片描述
总结:你总体上是开着锁的,那么列表里的用户就是不被锁;你总体上是关着锁的,那么列表里的用户就是被锁。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值