以下是Debian FTP Server防火墙设置技巧,使用iptables或ufw工具:
允许FTP控制与数据连接
sudo ufw allow 21/tcp 或 sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPTsudo ufw allow 20/tcp 或 sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT开放被动模式端口范围
1024-65535(可自定义,如50000-51000):sudo ufw allow 1024:65535/tcp 或 sudo iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPTUFW(推荐,简单易用)
sudo ufw enablesudo ufw reloadsudo ufw status verboseIPTables(需手动管理)
sudo sh -c "iptables-save > /etc/iptables/rules.v4"/etc/network/if-pre-up.d/iptables,内容为iptables-restore < /etc/iptables/rules.v4,并赋予执行权限sudo chmod +x /etc/network/if-pre-up.d/iptables/etc/vsftpd.conf)中设置pasv_min_port和pasv_max_port,并与防火墙规则一致。sudo ufw deny in on eth0 from any to any port 21(需替换为实际IP段)。ftp或lftp客户端连接服务器,确保能正常传输文件。sudo iptables -L -n或sudo ufw status确认规则生效。| 场景 | UFW命令 | IPTables命令 |
|---|---|---|
| 允许FTP控制端口 | sudo ufw allow 21/tcp |
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT |
| 允许FTP数据端口 | sudo ufw allow 20/tcp |
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT |
| 允许被动模式端口段 | sudo ufw allow 50000:51000/tcp |
sudo iptables -A INPUT -p tcp --dport 50000:51000 -j ACCEPT |
| 保存规则 | sudo ufw reload |
sudo sh -c "iptables-save > /etc/iptables/rules.v4" |
参考来源: