是否有使用iptables打开许多端口的正确方法?
#1 楼
这是正确的方法:iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT
作为示例。来源在这里。
评论
如果您不知道规则集的状态,则-I比-A更安全。
–user9517
14年5月13日在17:11
@Iain,能否请您解释其背后的原因?
– Jayhendren
14年5月13日在19:04
@jayhendren许多规则集将默认删除所有规则,例如-A INPUT -j REJECT --INPUT和其他表的末尾禁止带icmp-host。使用-A将规则添加到表的末尾,即最终规则之后,因此它将不会被视为netfilter在第一个比赛获胜的基础上起作用。使用-I将规则插入表ans的开头,因此将始终考虑该规则。
–user9517
2014年5月13日19:14
@Iain但是,某些规则集的开头也有过滤或速率限制数据包的规则,因此有必要指出-如果您不知道规则集,我并不总是更安全。
– Jayhendren
2014年5月13日19:24
@jayhendren我想您刚刚做了,还请注意我说的并不总是如此。
–user9517
2014年5月13日19:26
#2 楼
被告知的是对的,尽管您写错了(您忘记了--dport
)。 仅当您要打开的范围不是连续的时才需要
iptables -A INPUT -p tcp --dport 1000:2000
,例如-m multiport --dports
,它将仅打开HTTP和HTTPS-而不是两者之间。请注意,规则很重要,而且(正如伊恩在其他地方的评论中所暗示的那样),确保添加的任何规则都在有效的地方是您的工作。
评论
如果您愿意的话,我也可以在这里提及;)
–user9517
14年5月13日在17:28
嘻嘻嘻!继续,那么,该消息值得重复!
– MadHatter
14年5月13日在18:37
这是正确的答案;它更彻底。
–安德鲁·科扎克(Andrew Kozak)
16 Mar 7 '16 at 18:33
#3 楼
TL; DR但是...不带多端口模块的纯端口范围:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT
等效的多端口示例:
iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT
...以及具有多个范围的多端口的变体(是的,这也是可能的): />
iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT
保持警惕。
#4 楼
根据man iptables-extensions,您可以仅使用--dport开关来定义端口范围。tcp
如果指定了`--protocol tcp',则可以使用这些扩展名。它提供以下选项:
[!] --destination-port,-dport port [:port]
目标端口或端口范围规范。标志--dport是此选项的方便别名。
因此,这也指定了端口范围:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT
评论
相关问题:iptables和多个端口