在CentOS系统上配置FTP服务器的防火墙,通常需要允许FTP协议相关的端口通过。FTP协议默认使用两个端口:21用于控制连接,20用于数据传输。此外,如果使用被动模式(PASV),还需要开放一系列动态端口范围。以下是配置防火墙的步骤:
如果尚未安装防火墙,可以使用以下命令安装:
sudo yum install firewalld
安装完成后,启动并启用防火墙:
sudo systemctl start firewalld
sudo systemctl enable firewalld
默认情况下,firewalld使用富规则(rich rules)来管理端口。你需要添加规则来允许FTP端口。
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --permanent --add-port=1024-65535/tcp
添加规则后,需要重新加载防火墙配置以使更改生效:
sudo firewall-cmd --reload
你可以使用以下命令来验证防火墙规则是否已正确添加:
sudo firewall-cmd --list-all
如果SELinux处于 enforcing 模式,可能需要配置SELinux策略以允许FTP流量。你可以临时将SELinux设置为 permissive 模式来测试:
sudo setenforce 0
如果FTP正常工作,你可以配置SELinux策略以永久允许FTP流量。编辑 /etc/selinux/config
文件,将 SELINUX=enforcing
改为 SELINUX=permissive
,然后重启系统。
确保你的FTP服务器(如vsftpd)已正确配置并运行。你可以使用以下命令检查vsftpd状态:
sudo systemctl status vsftpd
如果未运行,可以使用以下命令启动它:
sudo systemctl start vsftpd
通过以上步骤,你应该能够成功配置CentOS上的FTP服务器防火墙。