centos 7 上安装 ftp服务
FTP支持以下三种认证模式:
匿名用户模式:任何人无需密码验证就可以直接登录到FTP服务器。这种模式最不安全,一般只用来保存不重要的公开文件,不推荐在生产环境中使用。
本地用户模式:通过Linux系统本地账号进行验证的模式,相较于匿名用户模式更安全。
虚拟用户模式:FTP服务器的专有用户。虚拟用户只能访问Linux系统为其提供的FTP服务,而不能访问Linux系统的其它资源,进一步增强了FTP服务器的安全性。
本文主要介绍被动模式下,使用本地用户访问FTP服务器的配置方法。
1、安装vsftpd:
yum install -y vsftpd
设置开机自启:
systemctl enable vsftpd.service
安装之后默认不开启vsftpd服务,手动开启:
systemctl start vsftpd.service
2、配置vsftpd
1、运行以下命令为FTP服务创建一个Linux用户:
adduser ftptest
2、运行以下命令修改ftptest用户的密码:
passwd ftptest
3、运行以下命令创建一个供FTP服务使用的文件目录:
mkdir /var/ftp/test
4、运行以下命令,创建测试文件,测试ftp功能用:
touch /var/ftp/test/testfile.txt
5、运行以下命令更改/var/ftp/test目录的拥有者为ftptest:
chown -R ftptest:ftptest /var/ftp/test
6、修改vsftpd.conf配置文件:
vim /etc/vsftpd/vsftpd.conf
#修改下列参数的值:
#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES
#在行首添加#注释掉以下参数:
#关闭监听IPv6 sockets。
#listen_ipv6=YES
#在配置文件的末尾添加下列参数:
#设置本地用户登录后所在目录。
local_root=/var/ftp/test
#全部用户被限制在主目录。
chroot_local_user=YES
#启用例外用户名单。
chroot_list_enable=YES
#指定例外用户列表文件,列表中用户不被锁定在主目录。
chroot_list_file=/etc/vsftpd/chroot_list
#开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
#本教程中为Linux实例的公网IP。
pasv_address=<FTP服务器公网IP地址>
#设置被动模式下,建立数据传输可使用的端口范围的最小值。
#建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=<port number>
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=<port number>
7、创建chroot_list文件,并在文件中写入例外用户名单:
此名单中的用户不会被锁定在主目录,可以访问其他目录。
touch /etc/vsftpd/chroot_list
8、重启vsftpd服务
systemctl restart vsftpd.service
3、修改防火墙端口
如果未开启防火墙则略过。
# 查询21端口是否开启
firewall-cmd --permanent --zone=drop --query-port=21/tcp
# 添加21端口和50000-50010端口
firewall-cmd --permanent --zone=drop --add-port=21/tcp
firewall-cmd --permanent --zone=drop --add-port=50000-50010/tcp
# 重启防火墙
firewall-cmd --reload
4、客户端测试
1、打开我的电脑,在地址栏中输入ftp://<FTP服务器公网IP地址>:FTP端口
。
2、在弹出的登录身份对话框中,输入已设置的FTP用户名和密码,然后单击登录。
3、enjoy it !!