在CentOS操作系统上配置vsftpd(Very Secure FTP DAEmon)是一项常见的任务,用于搭建安全的文件传输服务,以下是详细的配置步骤和相关注意事项:
一、安装vsftpd
1、检查是否已经安装:
rpm qa | grep vsftpd
如果未安装,则执行以下命令进行安装:
yum install y vsftpd
2、设置开机启动:
systemctl enable vsftpd
3、启动服务:
systemctl start vsftpd
4、查看服务状态:
systemctl status vsftpd
二、配置防火墙
由于CentOS 7及以后版本默认使用firewalld,需要开放FTP端口:
firewallcmd permanent addport=21/tcp firewallcmd permanent addservice=ftp firewallcmd reload
三、创建FTP用户并设置权限
1、创建用户目录:
mkdir p /home/ftproot/ftptest
2、创建用户并指定目录:
useradd d /home/ftproot/ftptest g ftp s /sbin/nologin ftptest
3、设置用户密码:
passwd ftptest
4、设置目录权限:
chown R ftptest:ftptest /home/ftproot/ftptest chmod R 755 /home/ftproot/ftptest
四、配置vsftpd
1、编辑配置文件:
vi /etc/vsftpd/vsftpd.conf
2、修改关键配置项:
anonymous_enable=NO local_enable=YES write_enable=YES chroot_local_user=YES allow_writeable_chroot=YES
3、重启服务:
systemctl restart vsftpd
五、SELinux配置
CentOS 7默认关闭了FTP的SELinux策略,需要手动开启:
setsebool P allow_ftpd_full_access on setsebool P ftp_home_dir on
六、被动模式配置(可选)
为了提高安全性,可以配置vsftpd使用被动模式:
pasv_enable=YES pasv_min_port=30000 pasv_max_port=30010
然后在防火墙中开放相应端口:
firewallcmd permanent addrichrule='rule family="ipv4" source address="0.0.0.0/0" port port="3000030010" protocol="tcp" accept' firewallcmd reload
七、常见问题排查
1、FTP用户无法登录:
确保用户被添加到/etc/vsftpd/user_list
文件中。
确保用户未被列在/etc/vsftpd/ftpusers
文件中。
确保PAM配置正确,必要时注释掉或删除auth required pam_Shells.so
行。
2、检查日志:
journalctl u vsftpd f
通过以上步骤,您可以在CentOS系统上成功安装并配置一个安全的vsftpd服务器,如果在实际操作过程中遇到任何问题,可以参考上述FAQ部分进行排查解决。