在Ubuntu上配置FTP服务器防火墙规则,常用工具为ufw或iptables,需开放FTP控制端口(21)、数据端口(20)及被动模式端口范围(通常为1024-1048或自定义范围),以下是具体步骤及安全建议:
一、使用ufw配置(推荐)
- 安装并启用ufw
sudo apt update && sudo apt install ufw sudo ufw enable - 允许FTP基础端口
sudo ufw allow 20/tcp # 数据传输端口 sudo ufw allow 21/tcp # 控制连接端口 - 允许被动模式端口范围
sudo ufw allow 50000:50050/tcp # 根据实际配置调整范围(需与FTP服务器设置一致) - 限制IP访问(可选)
sudo ufw allow from <允许的IP段> to any port 21 # 仅允许特定IP访问控制端口 sudo ufw deny 21/tcp # 拒绝其他IP访问控制端口 - 检查规则
sudo ufw status
二、使用iptables配置
- 安装iptables
sudo apt install iptables - 允许FTP基础端口
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT - 允许被动模式端口范围
sudo iptables -A INPUT -p tcp --dport 50000:50050 -j ACCEPT # 调整为实际范围 - 保存规则
sudo apt install iptables-persistent sudo netfilter-persistent save sudo netfilter-persistent reload - 查看规则
sudo iptables -L -v -n
三、关键注意事项
- 被动模式配置
- 需在FTP服务器(如
vsftpd)中设置被动模式端口范围(如pasv_min_port=50000、pasv_max_port=50050),并与防火墙规则一致。
- 需在FTP服务器(如
- 安全性增强
- 优先使用**FTPS(FTP over SSL/TLS)或SFTP(SSH文件传输)**替代传统FTP,避免明文传输。
- 限制FTP访问IP(通过
ufw或iptables),避免开放公网访问。
- 服务重启
- 配置后重启FTP服务生效:
sudo systemctl restart vsftpd。
- 配置后重启FTP服务生效: