文件传输协议(FTP,File Transfer Protocol)能够让用户在互联网中上传、下载文件的文件协议,FTP服务器就是支持FTP传输协议的主机,文件传输需FTP服务端和FTP客户端的配合完成。
通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端。
关于vsftpd的相关配置文件
用户禁止登陆列表 | /etc/vsftpd/ftpusers |
主配置文件 | /etc/vsftpd/vsftpd.conf |
vsftpd程序配置文件参数的作用:
listen=[YES|NO] | 是否以独立运行的方式监听服务。 |
listen_address=IP地址 | 设置要监听的IP地址。 |
listen_port=21 | 设置FTP服务的监听端口 21端口(ftp) 20端口(ftp-date) |
Vsftpd的验证方式
vsftpd程序提供的FTP服务可选认证方式,分别为匿名访问、本地用户和虚拟用户:
匿名访问:任何人无需验证口令即可登入FTP服务端(所有人均可随意登入FTP服务,这样自然会产生安全问题,一般用于存放公开的数据。)。
本地用户:使用FTP服务器中的用户、密码信息。
虚拟用户:创建独立的FTP帐号资料(最安全)。
安装vsftpd服务程序
# yum install vsftpd -y
匿名访问模式
vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数:
# vim /etc/vsftpd/vsftpd.conf
参数 | 作用 |
anonymous_enable=YES | 允许匿名访问模式。 |
anon_umask=022 | 匿名用户上传文件的umask值。 |
anon_upload_enable=YES | 允许匿名用户上传文件 |
anon_mkdir_write_enable=YES | 允许匿名用户创建目录 |
anon_other_write_enable=YES | 允许匿名用户修改目录名或删除目录 |
确认填写正确后保存并退出vsftpd.conf文件。
# systemctl restart vsftpd
如果重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.27.200)尝试登入FTP服务了
客户机(192.168.27.200)系统中ftp命令默认没有安装,执行”yum install ftp -y“即可安装完毕
注意:当完成本实验后请还原虚拟机快照再进行下一个实验,否则可能导致配置文件冲突而报错
本地用户模式
既然要使用本地用户模式,而本地用户模式确实要比匿名访问模式更加的安全,所以本实验中会关闭匿名访问模式。
vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:
# vim /etc/vsftpd/vsftpd.conf
参数 | 作用 |
anonymous_enable=NO | 禁止匿名访问模式。 |
local_enable=YES | 允许本地用户模式。 |
write_enable=YES | 设置可写入权限。 |
local_umask=022 | 本地用户模式创建文件的umask值。 |
userlist_deny=YES | 参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。 |
userlist_enable=YES | 允许“禁止登陆名单”,名单文件为ftpusers与user_list。 |
确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序。
# systemctl restart vsftpd
重启vsftpd服务程序时没有报错,此时便可以使用FTP客户机(192.168.27.200)尝试登入FTP服务了
若再“操作被拒绝”,则是SELinux
查看所有与ftp相关的SELinux规则:
# getsebool -a | grep ftp
设置SELinux对FTP服务的规则为允许:
# setsebool -P ftpd_full_access=on
此时再来创建文件或目录就没有问题了: