我需要有关iptables的帮助。当我使用命令iptables -L时,我有以下iptables规则
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain MYSSH (0 references)
target prot opt source destination
现在,我想向过滤表的ssh链添加一个规则,该规则将把所有INPUT
流量发送到MYSSH
链。我必须确保这个新规则遵循(而不是先于) RELATED,ESTABLISHED
规则,所以它不适用于现有的连接!
我试过了:
iptables -I INPUT 1 -p tcp -m MYSSH --dport 22 -j ACCEPT
但这是行不通的。你能告诉我怎么做吗?
发布于 2018-05-29 07:07:18
对于超级用户来说,这是一个问题,但好吧。我今天戴上了管理员的帽子。:P
主要的事情是你可以使用你的链作为目标,比如ACCEPT
,REJECT
或者DROP
,所以你想把它作为-j
选项来传递。
iptables -A INPUT -p tcp --dport 22 -j MYSSH
将附加一条规则,通过到INPUT
链的MYSSH
链将所有TCP流量通过管道传送到端口22。
另一个问题是在何处插入此规则。一般来说,当我手动做这类事情时(这些天我通常使用海岸墙,因为它更容易维护),我只是使用iptables -A
命令并以正确的顺序运行它们。在您的示例中,您似乎希望将其作为第二条或第三条规则插入到catchall之前
ACCEPT all -- anywhere anywhere
规则(虽然这可能有一些附加的所有条件,如果没有-v
,iptables -L
将不会显示;我不知道)。然后我们就会看到
iptables -I INPUT 2 -p tcp --dport 22 -j MYSSH
或
iptables -I INPUT 3 -p tcp --dport 22 -j MYSSH
这取决于你想要它的位置。
请注意,顺便说一句,如果这个通用规则没有我看不到的附加条件,那么它下面的规则将永远不会达到。
https://stackoverflow.com/questions/50572660
复制相似问题