Linux FTP服务器防火墙设置需开放FTP控制端口(21)、数据端口(20)及被动模式端口范围,以下是常用工具的配置方法:
一、使用firewalld(推荐)
- 安装并启动服务
sudo systemctl start firewalld sudo systemctl enable firewalld - 添加FTP端口规则
sudo firewall-cmd --permanent --add-port=21/tcp # 控制连接 sudo firewall-cmd --permanent --add-port=20/tcp # 数据连接(主动模式) sudo firewall-cmd --permanent --add-port=30000-31000/tcp # 被动模式端口范围(按需调整) sudo firewall-cmd --reload
二、使用iptables
- 安装iptables
sudo apt-get install iptables # Debian/Ubuntu sudo yum install iptables # CentOS/RHEL - 添加规则
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT # 控制连接 sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT # 数据连接 sudo iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT # 被动模式 sudo iptables-save > /etc/iptables/rules.v4 # 保存规则(Ubuntu/Debian) sudo service iptables save # 保存规则(CentOS/RHEL)
三、使用ufw(Ubuntu/Debian简化版)
- 启用ufw
sudo ufw enable - 添加规则
sudo ufw allow 21/tcp # 控制连接 sudo ufw allow 20/tcp # 数据连接 sudo ufw allow 30000:31000/tcp # 被动模式 sudo ufw reload
四、注意事项
- 被动模式配置:需在FTP服务器软件(如vsftpd)中设置
pasv_min_port和pasv_max_port,并与防火墙规则一致。 - 安全建议:优先使用FTPS(SSL/TLS加密)或SFTP替代标准FTP,避免数据明文传输。
- 验证规则:使用
sudo firewall-cmd --list-all(firewalld)或sudo iptables -L查看规则是否生效。