Iptables:如何阻止网络接口上除单个端口之外的所有传出流量

Iptables:如何阻止网络接口上除单个端口之外的所有传出流量

我是 Iptables 的新手,我试图只允许从 eth0 上的端口 51355 传出的 tcp 流量

以下是根据我目前在网上找到的信息进行的尝试:

iptables -A OUTPUT -o eth0 !-p tcp --dport 51355-j DROP

运行此程序时,我收到无效参数错误。如能提供任何帮助,我将不胜感激/

答案1

我建议您首先允许 dport 51355 的流量,然后删除接口上的所有其他内容

喜欢

-A OUTPUT -p tcp -m tcp -o eth0 --sport 51355 -j ACCEPT
-A OUTPUT -o eth0 -j DROP

答案2

使用之前必须指定要使用哪个模块!

iptables -A OUTPUT -o eth0 -p tcp -m tcp ! --dport 51355 -j DROP

iptables-save -c可以看到每个规则被使用的次数

现在如果你想要一些更复杂的东西,有时最好创建一个chain

一个更复杂的例子,创建一个chain

iptables -N FILTERBOT
iptables -A OUTPUT -o eth0 -j FILTERBOT
iptables -A FILTERBOT -p udp -j RETURN
iptables -A FILTERBOT -p tcp -m tcp ! --dport 51355 -j DROP
iptables -A FILTERBOT -m limit --limit 1/s -j LOG --log-prefix "CHAIN-FILTERBOT:"
iptables -A FILTERBOT -j DROP

PS:每个模块的更多信息 man iptables-extensions

相关内容