一、操作系统环境
本例中将在CentOS 7.6中安装FTP服务,具体安装的版本为vsftpd x86_64 3.0.2-29.el7_9,并进行配置。
# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
二、通过yum安装vsftpd
# yum install vsftpd
三、设置vsftpd配置文件(基本配置)
vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf。如果对配置文件进行了更改,需要重启vsftpd服务后配置才会生效。
//禁止匿名用户登陆 Anonymous_enable=NO //是否将所有用户限制在主目录 //当设置为YES表示限制FTP用户跳出自己的家(根)目录(该项默认值是NO,即在安装vsftpd后不做配置的话,FTP用户是可以向上切换到要目录之外的) Chroot_local_user=YES //是否启用chroot_list_file配置项指定的用户列表文件来限制用户 //YES为启用,NO禁用(包括注释掉也为禁用) //如果启用此项配置,需同时新建一个chroot_list,内容为空即可 chroot_list_enable=YES //用于指定用户列表文件 chroot_list_file=/etc/vsftpd/chroot_list //允许用户有写的权限 allow_writeable_chroot=YES
四、常用的操作命令
1. 查看vsftpd服务运行状态
# systemctl status vsftpd
2. 启动vsftpd服务
# systemctl start vsftpd
3. 停止vsftpd服务
# systemctl stop vsftpd
4. 重启vsftpd服务
# systemctl restart vsftpd
5. 查看vsftpd的安装位置
# whereis vsftpd vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
6. 查看vsftpd的监听端口
# netstat -npal|grep vsftpd
7. 开机自动启动(作为服务运行)
chkconfig vsftpd on
五、创建FTP用户
//创建用户(没有登录权限) //-d 新账户的主目录 //-g 新账户主组的名称或ID //-s 新账户的登陆shell //执行此命令会同步对应的创建文件夹(如果不存在) # useradd ftpusername -d /ftp_upload -g ftp -s /sbin/nologin //设置密码 # passwd ftpusername
六、修改FTP服务的端口号
1. 对配置文件/etc/vsftpd/vsftpd.conf进行调整。
//修改vsftpd监听端口 listen_port=9021 //启用PASV被动模式 pasv_enable=YES //修改vsftpd传递数据的最小端口 pasv_min_port=9001 //修改vsftpd传递数据的最大端口 pasv_max_port=9020 //用于检测PASV的安全检查,YES为关闭安全检查 pasv_promiscuous=YES
2. 修改linux services
# vim /etc/services
//找到下面的行改成9021端口 ftp 9021/tcp ftp 9021/udp
3. 修改防火墙配置,开放所需的端口
# firewall-cmd --permanent --add-port=9001-9021/tcp
七、可能遇到的问题
1. 使用FTP客户端连接时提示错误530,原因为SELINUX对FTP的限制,解决方法如下:
(1) 设置关闭SELINUX对FTP的限制
# getsebool -a |grep ftp
需要将其中的tftp_home_dir和ftpd_full_access 设置为on,回车以后,要等很久才会有反应。
#setsebool -P ftp_home_dir 1 #setsebool -P allow_ftpd_full_access 1
(2) 暂时关闭SELINUX
set enforce 0
(3) 永久关闭SELINUX(不推荐,且需要重新启动服务器)
vim /etc/selinux/config,修改为 SELINUX = disabled,保存退出。
如果碰到550拒绝访问,请执行sudo setsebool -P ftp_home_dir 1,然后重启服务器,执行reboot命令
(4) pam认证文件配置错误
修改/etc/pam.d/vsftpd
将auth required pam_shells.so 改为 auth required pam_nologin.so
八、参考资料
https://www.jianshu.com/p/225b291bc4a9
https://www.cnblogs.com/ismallboy/p/6785270.html
https://www.jianshu.com/p/9b6389a26336
https://blog.csdn.net/sinat_30802291/article/details/81706152
https://blog.csdn.net/jiecy/article/details/109450397
https://blog.csdn.net/qq_40606798/article/details/82286273
http://www.51gjie.com/linux/1002.html
https://blog.csdn.net/bluishglc/article/details/42398811