我的 iptables 中有这个规则:
iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP
我真的需要“-m tcp”吗?我已经在使用“-p tcp”,所以我应该使用“-m tcp”更安全吗?
我的 iptables 中有这个规则:
iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP
我真的需要“-m tcp”吗?我已经在使用“-p tcp”,所以我应该使用“-m tcp”更安全吗?
使用该
-p tcp
选项,tcp 模块已经加载,因此它有点多余,不是必须使用该-m tcp
选项,我看不出有任何理由使用该选项会使规则更安全。请参阅iptables 手册页以获得更好的理解和比较:
...
有关可用选项的列表,
-p tcp
请参见此处:http://ipset.netfilter.org/iptables-extensions.man.html#lbCF
如上所述,使用
-m
选项可以添加扩展模块,然后可以使用更多匹配的选项。例如cpu 模块:iptables 扩展的完整列表。
来自 OP 的附加问题:我不明白 -m 匹配什么。什么字符串?-m tcp 匹配什么?它试图在哪里找到“tcp”这个词?
答:
-m
用于匹配模块名称而不是字符串。通过使用特定模块,您可以获得某些匹配选项。请参阅上面的 cpu 模块示例。随着-m tcp
模块 tcp 的加载。tcp 模块允许某些选项:--dport, --sport, --tcp-flags, --syn, --tcp-option
在 iptables 规则中使用。但是 using-p tcp
已经启用了 tcp 模块,这就是为什么即使不使用-m tcp
. 希望它能消除你所有的困惑。