防火墙规则未按预期工作

防火墙规则未按预期工作

我必须eth0在 Linux 设备启动期间为我的板载网络(用于通过接口连接的设备列表)设置防火墙规则。

默认情况下,FTP 访问eth0应被禁用。

然后读取配置文件(conf.xml),其中包含仅允许进行通信的 IP 地址或 URL 或端口,这意味着只有白名单设备可以进行通信。

我已经按照以下方式完成了它,但它没有按预期工作

例如。conf.xml使用以下命令启用配置文件 ( ) 中提到的特定 IP 的 FTP 访问

iptables -A INPUT -p tcp -s 10.10.10.10 --dport 21 -i eth0 -j ACCEPT
iptables -A OUTPUT -p tcp -s 10.10.10.10 --dport 21 -o eth0 -j ACCEPT

然后在脚本末尾添加以下两行,用于默认 - 禁用eth0通信:

iptables -A INPUT -i eth0 -j DROP
iptables -A OUTPUT -o eth0 -j DROP

但我看到eth0通信被永久禁用,甚至不允许 ipaddress10.10.10.10访问 FTP 服务器。

答案1

您的示例中特定主机的白名单 FTP 包含拼写错误(可能)。iptables -A INPUT -p tcp -s 10.10.10.10 --dport 21 -i eth0 -j ACCEPT如果您打算允许从主机 10.10.10.10 连接到您计算机上的某些 FTP 守护程序,则允许传入流量(规则)似乎没问题。第二条规则 ( iptables -A OUTPUT -p tcp -s 10.10.10.10 --dport 21 -o eth0 -j ACCEPT) 可能应该允许目标(而非源)主机(它应该声明-d而不是-s)。

只是提一下...链中的最后一条规则iptables -A ... -j DROP意味着所有通信(与之前的规则不匹配)都被禁用,而不仅仅是 FTP。

相关内容