一文带你掌握FTP服务(专请小奥讲师)

如果帮助到您,欢迎点赞评论,整个关注与我同行
FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21端口号,其中20(数据端口)用于进行数据传输,21(命令端口)用于接受客户端发出的相关FTP命令与参数。
FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点。而且有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术。
FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向FTP服务器发送连接请求,以建立数据传输链路的主机。
两种工作模式:
主动模式:FTP服务器主动向客户端发起连接请求
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作模式)
1、使用Yum软件仓库进行安装vsftpd
一文带你掌握FTP服务(专请小奥讲师)
2、vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf)内容长度达到了123行,但大多都是以#开头的注释,我们使用grep命令后面添加-v参数,过滤并反选出没有包含井号的行,然后将过滤的参数行通过输出重定向符写回原始的主配置文件中:
一文带你掌握FTP服务(专请小奥讲师)
3、奥哥为大家列举了一些vsftpd服务程序主配置文件中常用的参数以及作用

参数 作用
listen=[YES/NO] 是否以独立运行的方式监听服务
listen_address 设置要监听的IP地址
listen_port=21 设置FTP服务的监听端口
download_enable=[YES/NO] 是否允许下载文件
userlist_enable=[YES/NO] userlist_deny=[YES/NO] 设置用户列表为“允许”还是“禁止”操作
max_clients=0 最大客户端连接数,0为不限制
max_per_ip=0 同一IP地址的最大连接数,0为不限制
anonymous_enable=[YES/NO] 是否允许匿名用户访问
anon_upload_enable=[YES/NO] 是否允许匿名用户创建目录
anon_mkdir_write_enable=[YES/NO] 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0 匿名用户的最大传输传输速率(字节/秒),0为不限制
local_enable=[YES/NO] 是否允许本地用户登录FTP
local_umask=022 本地用户上传文件的umask值
local_root=/var/ftp 本地用户的FTP根目录
chroot_local_user=[YES/NO] 是否将用户权限禁锢在FTP目录,以确保安全
local_max_rate=0 本地用户最大传输速率(字节/秒),0为不限制

vsftpd服务程序

vsftpd作为更加安全的文件传输的服务程序,允许用户以三种认证模式登录到FTP服务器上。
匿名开放模式: 是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器
本地用户模式: 是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。
虚拟用户模式 :是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。
我们首先手动安装这个FTP客户端工具
一文带你掌握FTP服务(专请小奥讲师)
匿名开放模式
匿名开放模式:任何人都可以无需密码验证而直接登录到FTP服务器
vsftpd服务程序默认开启了匿名开放模式,我们需要做的就是开放匿名用户的上传、下载文件的权限,以及让匿名用户创建、删除、更名文件的权限。
需要注意:针对匿名用户放开这些权限会带来潜在危险,我们只是为了在Linux系统中练习配置vsftpd服务程序而放开了这些权限,不建议在生产环境中如此行事。
记得在每次恢复快照之后安装yum install vsftpd h yum install ftp
可以向匿名用户开放的权限参数以及作用

参数 作用
anonymous_enable=YES 允许匿名访问模式
anon_umask=022 匿名用户上传文件的umask值
anon_upload_enable=YES 允许匿名用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户创建目录
anon_other_write_enable=YES 允许匿名用户修改目录名称或删除目录

使用set nu显示行号
一文带你掌握FTP服务(专请小奥讲师)
重启vsftpd服务程序,让新的配置参数生效,加入开机启动项中,以保证服务器在重启后依然能够正常提供传输服务
一文带你掌握FTP服务(专请小奥讲师)
在vsftpd服务程序的匿名开放认证模式下,其账户统一为anonymous,密码为空
一文带你掌握FTP服务(专请小奥讲师)
系统显示创建目录失败,匿名模式下我们默认访问的是/vat/ftp目录。查看该目录的权限得知,只有root管理员才有写入权限,下面我们将目录的所有者身份改成系统账户FTP即可!
一文带你掌握FTP服务(专请小奥讲师)
一文带你掌握FTP服务(专请小奥讲师)
系统再次报错,但是这次提示创建目录的操作失败,可能是SELinux在捣乱
下面使用getsbool命令查看与FTP相关的SELINUX域策略都有哪些
根据我多年来的经验,发现可能是ftpd_full_access --> off策略规则导致了操作失败
下面进行修改策略,并加-P参数让修改过的策略永久生效,确保在服务重启后依然能够顺利写入文件
一文带你掌握FTP服务(专请小奥讲师)
一文带你掌握FTP服务(专请小奥讲师)
本地用户模式
记得在每次恢复快照之后安装yum install vsftpd h yum install ftp
本地用户模式的权限参数以及作用:

参数 作用
anonymous_enable=NO 禁止匿名访问模式
local_enable=YES 允许本地用户模式
write_enable=YES 设置可写权限
local_umask=022 本地用户模式创建文件的umask值
userlist_enable=YES 启用“禁止用户名单”,名单文件为ftpusers和user_list
userlist_deny=YES 开启用户作用名单文件功能

修改vsftpd服务程序的配置文件中的参数
一文带你掌握FTP服务(专请小奥讲师)
重启vsftpd服务程序,让新的配置参数生效,并且添加到开机启动项中,以便在系统重启后依然可以正常使用vsftpd服务
一文带你掌握FTP服务(专请小奥讲师)
在我们输入密码之前就已经被系统拒绝访问了
一文带你掌握FTP服务(专请小奥讲师)
原因是vsftpd服务程序所在的目录中默认存放着两个名为“用户名单”的文件(ftpusers和user_list)。
一文带你掌握FTP服务(专请小奥讲师)
vsftpd服务程序为了保证服务器的安全性而默认禁止了root管理员和大多数系统用户的登录行为,这样可以有效地避免黑客通过FTP服务队root管理员密码进行暴力**。
如果确认在生产环境中使用root管理员不会对系统安全产生影响,只需按照上面的提示删除掉root用户名即可。我们也可以选择ftpusers和user_list文件中没有的一个普通用户尝试登录FTP服务器
一文带你掌握FTP服务(专请小奥讲师)
在采用本地用户模式登录FTP服务器后,默认访问的是该用户的家目录,也就是说,访问的是/home/lxa目录。而且该目录的默认所有者、所属组都是该用户自己,因此不存在写入权限不足的情况。但是如果仍然被拒绝,是因为我们刚才把虚拟机系统还原到最初的状态了,为此,需要再次开启SELinux域中对FTP服务的允许策略
在生产环境和实验中设置SELinux域策略时,一定记得添加-P参数,否则服务器在重启后就会按照原有的策略进行控制,从而导致配置过的服务无法使用。
一文带你掌握FTP服务(专请小奥讲师)
再次尝试,成功创建
一文带你掌握FTP服务(专请小奥讲师)
希望可以给大家带来帮助
欢迎各位点赞评论
整个关注,与我同行