FTP/Vsftpd服务的部署及匿名用户访问控制详解

Posted 是大姚呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP/Vsftpd服务的部署及匿名用户访问控制详解相关的知识,希望对你有一定的参考价值。

Vsftpd服务的部署及匿名用户访问控制

1、什么是ftp

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。FTP能操作任何类型的文件而不需要进一步处理,但有着极高的延时,从开始请求到第一次接收需求数据之间的时间较长,并不时地执行一些冗长的登录进程,是互联中最老牌的文件传输协议。

2、vsftpd的安装及启用

在这里,我们使用vsftpd这一软件来对FTP服务进行详细说明。vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的FTP服务器软件,支持很多其他的 FTP 服务器所不支持的特征如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。vsftpd的安装及启用方法如下:

实验步骤:
1)我们将虚拟机westosa作为FTP服务器,在虚拟机westosa中设置网络ip为172.25.254.133,关闭内核加强级防火墙selinux,配置软件仓库源指向文件(这里以真实主机为软件仓库),安装vsftpd软件
在这里插入图片描述
在这里插入图片描述
2)安装完成后启动vsftpd服务,在系统防火墙中永久开启 ftp 访问,刷新防火墙使设定生效,接着我们可以通过以下两种方式进行ftp访问
方法一: 安装lftp(ftp协议文本浏览器)访问ftp—lftp ip
方法二: 在firefox浏览器所在的真实主机中访问ftp—ftp: //ip
在这里插入图片描述
3)此时不能访问ftp的默认共享目录/var/ftp:lftp不能成功访问(列出默认共享目录下资源) / 浏览器网页提示需要认证
在这里插入图片描述
在这里插入图片描述
4)这是因为在默认情况下,通过上述两种方式访问ftp都是以匿名用户的身份进行的,而ftp服务默认不支持匿名用户访问,必须指定安装有ftp服务的主机的本地用户才能访问
在这里插入图片描述
5)因此,我们需要修改vsftp服务的配置文件/etc/vsftpd/vsftpd.conf,启动匿名用户的访问功能anonymous_enable=YES,重启vsftp服务,此时使用上述两种方式可以成功访问ftp的默认共享目录/var/ftp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、vsftpd服务的基本信息

服务名称vsftpd.service
配置目录/etc/vsftpd
主配置文件/etc/vsftpd/vsftpd.conf
默认发布目录/var/ftp

除上述基本信息之外,在我们访问FTP服务的过程中,系统会提示报错信息,其对应含义如下:

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

4、匿名用户访问控制

lftp 172.25.254.133:当访问ftp服务时没有加入用户认证为匿名访问
lftp 172.25.254.133 -u westos :本地用户访问

a)匿名用户登陆控制: anonymous_enable=YES|NO(这项功能已在上文中说明,此处不过多赘述)

b)更改默认发布目录: anon_root=/westosdir
实验步骤:
1)访问ftp(lftp 172.25.254.133)默认共享目录为/var/ftp /,新建目录/westosdir,在该目录下建立文件,修改vsftp服务的配置文件,重启服务,此时访问ftp看到的是/westosdir目录下的文件
在这里插入图片描述
在这里插入图片描述
c)允许匿名用户上传文件: anon_upload_enable=YES|NO
实验步骤:
1)访问ftp(lftp 172.25.254.133),在pub/中put上传文件(不能在默认共享目录/var/ftp本身中进行操作,只能对共享目录中的子目录进行操作),550报错即服务本身拒绝
在这里插入图片描述
2)修改vsftp服务的配置文件,重启服务,再次在pub/中put上传文件,553报错即文件系统权限限制,我们需要修改目录权限
在这里插入图片描述
在这里插入图片描述
3)这里不能更改默认共享目录/var/ftp的权限为777,否则重启服务后无法成功访问 (lftp 172.25.254.133)(ls查看成功才算访问成功),会出现安全警告在这里插入图片描述
4)更改默认共享目录/var/ftp的权限为755、pub/的权限为777,访问ftp在pub/中可以成功put上传文件
在这里插入图片描述
d)允许匿名用户删除重命名:anon_other_write_enable=YES|NO
实验步骤:
1)访问ftp对pub/中的文件进行删除、重命名,删除、重命名文件失败,550报错即服务本身拒绝在这里插入图片描述
2)编写vsftp服务的配置文件,重启服务,可以进行文件的删除、重命名操作
在这里插入图片描述
在这里插入图片描述
e)允许匿名用户建立、删除目录:anon_mkdir_write_enable=YES|NO
实验步骤:
1)访问ftp在pub/中建立目录,目录建立失败,550报错即服务本身拒绝
在这里插入图片描述
2)编写vsftp服务的配置文件,重启服务,访问ftp在pub/中可以建立、删除目录
在这里插入图片描述
在这里插入图片描述
f)允许匿名用户下载文件:anon_world_readable_only=NO( 匿名用户可以下载不能读的文件)
实验步骤:
1)访问ftp下载pub/中的文件失败,550报错即服务本身拒绝,文件不能读
在这里插入图片描述
2)编写vsftp服务的配置文件,重启服务,访问ftp可以成功下载pub/中的文件(文件会下载至访问ftp前所在的系统位置处)
在这里插入图片描述
在这里插入图片描述
g)匿名用户上传文件权限设定:anon_umask=xxx
实验步骤:
1)访问ftp在pub/中上传文件/etc/passwd,服务默认上传文件的权限为600,编写vsftp服务的配置文件,设定anon_umask=022,重启服务,访问ftp在pub/中上传另一文件/etc/group,可以看到文件group权限为644(777-022-111),权限设定生效
在这里插入图片描述
在这里插入图片描述
h)匿名用户上传文件的用户身份设定:chown_upload=YES chown_username=westos
实验步骤:
1)访问ftp在pub/中上传文件,所上传文件passwd、group的拥有者默认为14(ftp服务用户),更改pub/的拥有组为ftp,更改pub/的权限为775,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件inittab的拥有者为设定的westos
在这里插入图片描述
在这里插入图片描述
2)注意: 文件inittab的拥有者为设定的westos,但其权限为默认权限600,不是我们所设定的644,这是因为当我们设定chown_username之后上传文件权限将不是用anon_umask=xxx参数设定,而是用chown_upload_mode=xxxx来重新设定,修改vsftp服务的配置文件,重启服务,访问ftp,在pub/中put上传另一个文件,文件adjtime的拥有者为设定的westos且权限为644
在这里插入图片描述
在这里插入图片描述
i)登陆用户数量控制:max_clients=x
实验步骤:
1)在三个终端分别访问ftp(即同时有三个匿名用户访问ftp),都可以成功访问,在企业的实际应用中,这显然是不合理的,应该设置一个访问人数上限
在这里插入图片描述
2)编辑vsftp服务的配置文件,设置访问人数上限为2,重启服务,在三个终端分别访问ftp,第三个匿名用户无法访问,FTP服务提示访问人数已达上限
在这里插入图片描述
在这里插入图片描述
j)上传文件速率控制:anon_max_rate=xxxx
实验步骤:
1)首先生成一个1000M大小的文件,访问ftp在pub/中上传该文件,可以看到文件上传速率很大,而在实际应用中,企业作为服务提供方,需要对用户上传速率进行限制
在这里插入图片描述
2)编辑vsftp服务的配置文件,设置最大上传速率为102400(默认单位为KB),重启服务,再次在pub/中上传该文件,可以看到文件上传速率逐渐降低至限定速度之下
在这里插入图片描述
在这里插入图片描述

以上是关于FTP/Vsftpd服务的部署及匿名用户访问控制详解的主要内容,如果未能解决你的问题,请参考以下文章

FTP(vsftpd) for CentOS7

Vsftpd服务的部署及优化

Linux配置FTP(vsftpd)服务和无法上传下载问题解决

文件共享

linux,新创建的用户无法登录ftp(vsftpd),包括root用户

在linux下配置FTP服务