1、安装vsftpd和ftp服务
yum install -y vsftpd yum install -y ftp
2、启动FTP服务并设置开启自启动
systemctl start vsftpd systemctl enable vsftpd
3、查看FTP服务是否启动
netstat -antup | grep ftp
显示结果如下说明服务已经启动成功
此时,vsftpd已默认开启匿名访问模式,无需通过用户名和密码即可登录FTP服务器,使用此方式登录FTP服务器的用户没有修改和上传文件的权限。
4、配置vsftpd,为FTP服务创建一个用户并设置该用户的密码
useradd ftpuser passwd ftpuser
5、创建FTP服务使用的文件目录,修改该目录所属权限
mkdir /var/ftp/test chown -R ftpuser:ftpuser /var/ftp/test
6、备份FTP配置文件,并提取默认配置信息
cp vsftpd.conf vsftpd.conf.bak cat vsftpd.conf.bak | grep -v "^#" | grep -v "^$" > vsftpd.conf
7、使用vi命令打开FTP的配置文件
vi /etc/vsftpd/vsftpd.conf
8、修改配置文件参数,设置匿名用户和本地用户的登录权限,设置指定例外用户列表文件的路径,并开启监听 IPv4 sockets
anonymous_enable=NO local_enable=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES
9、注释 listen_ipv6=YES
配置参数,关闭监听 IPv6 sockets,开启被动模式,设置本地用户登录后所在目录,完成后保存退出
#listen_ipv6=YES local_root=/var/ftp/test allow_writeable_chroot=YES
10、创建并编辑 chroot_list
文件
vi /etc/vsftpd/chroot_list输入需要登录使用的用户名,一个用户名占据一行
11、设置iptables防火墙,重启FTP服务
iptables -F systemctl restart vsftpd
12、以上配置为被动模式传输,配置完成,下方为主动模式需修改的配置
anonymous_enable=NO #禁止匿名用户登录 local_enable=YES #支持本地用户登录 chroot_local_user=YES #全部用户被限制在主目录 chroot_list_enable=YES #启用例外用户名单 chroot_list_file=/etc/vsftpd/chroot_list #指定用户列表文件,该列表中的用户不被锁定在主目录 listen=YES #监听IPv4 sockets #在行首添加#注释掉以下参数 #listen_ipv6=YES #关闭监听IPv6 sockets #添加下列参数 allow_writeable_chroot=YES local_root=/var/ftp/test #设置本地用户登录后所在的目录
13、传输报错 553 Could not create file 解决方式
此报错一般为FTP使用目录没有权限或者selinux限制的原因,解决方式为给目录增加读写权限,关闭selinux
chmod 755 /var/ftp/test setenforce 0