在CentOS 7.6中安装和配置vsftpd服务,可以按照以下步骤进行。
操作系统环境
本例中将在CentOS 7.6中安装FTP服务,具体安装的版本为vsftpd x86_64 3.0.229.el7_9。
通过yum安装vsftpd
使用以下命令来安装vsftpd:
sudo yum install vsftpd
设置vsftpd配置文件
vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf,如果对配置文件进行了更改,需要重启vsftpd服务后配置才会生效,以下是一些基本的配置项:
配置项 | 说明 |
Anonymous_enable=NO | 禁止匿名用户登陆 |
Chroot_local_user=YES | 是否将所有用户限制在主目录 |
chroot_list_enable=YES | 启用chroot_list_file配置项指定的用户列表文件来限制用户 |
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
6、查看vsftpd的监听端口:
netstat npal|grep vsftpd
7、开机自动启动(作为服务运行):
chkconfig vsftpd on
创建FTP用户
1、创建用户(没有登录权限):
useradd ftpusername d /ftp_upload g ftp s /sbin/nologin
2、设置密码:
passwd ftpusername
修改FTP服务的端口号
1、对配置文件/etc/vsftpd/vsftpd.conf进行调整,修改vsftpd监听端口为9021:
listen_port=9021
2、启用PASV被动模式并设置传递数据的最小端口和最大端口:
pasv_enable=YES pasv_min_port=9001 pasv_max_port=9020 pasv_promiscuous=YES
3、修改linux services文件:
vim /etc/services
找到下面的行改成9021端口:
ftp 9021/tcp ftp 9021/udp
4、修改防火墙配置,开放所需的端口:
firewallcmd permanent addport=90019021/tcp
可能遇到的问题及解决方法
1、使用FTP客户端连接时提示错误530:原因可能是SELINUX对FTP的限制,解决方法如下:
设置关闭SELINUX对FTP的限制:
setsebool P ftp_home_dir 1 setsebool P allow_ftpd_full_access 1
暂时关闭SELINUX:
set enforce 0
永久关闭SELINUX(不推荐,且需要重新启动服务器):
vim /etc/selinux/config,修改为 SELINUX = disabled,保存退出。
如果碰到550拒绝访问,请执行以下命令并重启服务器:
setsebool P ftp_home_dir 1 reboot
pam认证文件配置错误:修改/etc/pam.d/vsftpd,将auth required pam_Shells.so改为auth required pam_nologin.so。
参考资料
[CentOS安装并配置vsftpd服务详细教程](HTTPS://www.centos.org/forums/viewtopic.php?t=63759)
[VSFTPD官方文档](https://security.appspot.com/vsftpd/vsftpd_secure_conf.html)
FAQs(常见问题解答)
1、Q: 如何查看vsftpd服务的状态?
A: 使用以下命令来查看vsftpd服务的状态:
systemctl status vsftpd
2、Q: 如何修改FTP服务的监听端口?
A: 修改/etc/vsftpd/vsftpd.conf文件中的listen_port配置项,然后重启vsftpd服务,将监听端口改为9021:
listen_port=9021
然后重启vsftpd服务:
systemctl restart vsftpd