安装vsftpd
yum install -y vsftpd
启停
# 启动
systemctl start vsftpd.service
# 停止
systemctl stop vsftpd.service
# 重启
systemctl restart vsftpd.service
# 加入开机自启
systemctl enable vsftpd.service
# 查看FTP服务监听的端口,下方信息表示监听21端口
netstat -antup | grep ftp
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2282/vsftpd
配置vsftpd
创建ftp用户:
# 创建ftpuser用户,并限制不能使用ssh登录
useradd -s /sbin/nologin ftpuser
# 修改密码,根据提示继续操作完成
passwd ftpuser
修改ftp目录所有权:
# 将目录/data/ftpFile的所有权改为用户ftpuser
chown -R ftpuser /data/ftpFile
修改/etc/vsftpd/vsftpd.conf
文件:
#除下面提及的参数,其他参数保持默认值即可。
#修改下列参数的值:
#禁止匿名登录FTP服务器。
anonymous_enable=NO
#允许本地用户登录FTP服务器。
local_enable=YES
#监听IPv4 sockets。
listen=YES
#在行首添加#注释掉以下参数:
#关闭监听IPv6 sockets。
#listen_ipv6=YES
#在配置文件的末尾添加下列参数:
#设置本地用户登录后所在目录。
local_root=/data/ftpFile
#全部用户被限制在主目录。
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=500000
#设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010
创建/修改/etc/vsftpd/chroot_list
文件,输入例外用户名单,如果没有例外用户,也必须创建chroot_list
文件,内容可为空。
重启vsftpd
systemctl restart vsftpd.service
开放端口
# 被动模式需开放21端口
# 以及配置文件/etc/vsftpd/vsftpd.conf中参数pasv_min_port和pasv_max_port之间的所有端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=50000-50010/tcp --permanent
# 刷新防火墙配置
firewall-cmd --reload
# 查看已开放的端口
firewall-cmd --zone=public --list-ports
关闭selinux
# 可使用getenforce查看当前值
# 直接关闭,重启后失效,0表示设置为permissive
setenforce 0
# 修改配置文件,将SELINUX改为disabled或permissive,重启后有效
vim /etc/selinux/config
-- end --