以下是Debian FTP Server防火墙设置技巧,使用iptables
或ufw
工具:
允许FTP控制与数据连接
sudo ufw allow 21/tcp
或 sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo 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 ACCEPT
UFW(推荐,简单易用)
sudo ufw enable
sudo ufw reload
sudo ufw status verbose
IPTables(需手动管理)
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" |
参考来源: