我正在 Xubuntu 中试验 IPT(iptables)。
第一个实验是允许所有 OUTPUT 流量并阻止所有 INPUT(除了已经存在的 TCP 连接),有人可以验证这些是否正确吗
为了更进一步,我尝试允许 als TCP 连接到工作站上的活动服务。我的想法是进行 nmap 扫描并 grep 监听/打开的端口,但我可能想得太多了。
最后,我尝试允许 FTP。
我使用此附加规则来允许 FTP,但似乎仍然被阻止
sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
答案1
FTP 有点奇怪,因为它允许端口 21 上的入站流量和端口 20 上的出站流量:
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
此外,ftp 将使用随机的更高端口。要允许此功能,您需要在启动时加载 ip_conntrack_ftp 模块。取消注释并修改 /etc/sysconfig/iptables-config 文件中的 IPTABLES_MODULES 行以读取
IPTABLES_MODULES="ip_conntrack_ftp"
您仍然需要一种方法来保存您的 iptables 配置并在启动时恢复它。Ubuntu 没有简单的方法来做到这一点。基本上,您可以使用/etc/rc.local
或禁用 NetworkManager 并使用网络脚本。
首先保存您的规则:
sudo iptables-save /etc/iptables.save
方法 1:编辑/etc/rc.local
并添加行
iptables-restore /etc/iptables.save
方法 2: 编辑/etc/network/interfaces
并使用“post-up”来启动我们的 iptables 规则。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
post-up /sbin/iptables-restore /etc/iptables.save
然后重新启动。
首选方法可能是使用 UFW
sudo ufw allow ftp
UFW 是 Ubuntu 的 fedault 工具,使用与 iptables 非常相似的语法,并在重启时启用和恢复。
看:
https://serverfault.com/questions/38398/allowing-ftp-with-iptables
http://slacksite.com/other/ftp.html