将流量转发到 iptables 中的自定义密钥链
Forwarding traffic to custom key chain in iptables
我需要有关 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
现在我想向我的过滤器 table 的 INPUT
链添加一条规则,它将所有 ssh 流量发送到 MYSSH
链。我必须确保这条新规则遵循(而不是先于)RELATED,ESTABLISHED
规则,因此它不适用于现有连接!
我试过:
iptables -I INPUT 1 -p tcp -m MYSSH --dport 22 -j ACCEPT
但这不起作用。你能告诉我怎么做吗?
这是超级用户的问题,但没关系。我今天戴上了管理员帽。 :P
最主要的是你可以像 ACCEPT
、REJECT
或 DROP
一样使用你的链作为目标,所以你想将它作为 -j
选项传递, 即
iptables -A INPUT -p tcp --dport 22 -j MYSSH
将附加一条规则,通过 MYSSH
链将所有 TCP 流量传输到端口 22 到 INPUT
链。
另一个问题是在哪里插入这条规则。通常,当我手动执行此类操作时(这些天我通常使用 shorewall,因为它更易于维护),我只使用 iptables -A
命令并按正确的顺序使用 运行 它们。在您的情况下,您似乎想将其作为第二条或第三条规则插入到包罗万象
之前
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
取决于你想要它的位置。
请注意,顺便说一下,如果这个包罗万象的规则没有我没有看到的附加条件,则永远不会达到下面的规则。
我需要有关 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
现在我想向我的过滤器 table 的 INPUT
链添加一条规则,它将所有 ssh 流量发送到 MYSSH
链。我必须确保这条新规则遵循(而不是先于)RELATED,ESTABLISHED
规则,因此它不适用于现有连接!
我试过:
iptables -I INPUT 1 -p tcp -m MYSSH --dport 22 -j ACCEPT
但这不起作用。你能告诉我怎么做吗?
这是超级用户的问题,但没关系。我今天戴上了管理员帽。 :P
最主要的是你可以像 ACCEPT
、REJECT
或 DROP
一样使用你的链作为目标,所以你想将它作为 -j
选项传递, 即
iptables -A INPUT -p tcp --dport 22 -j MYSSH
将附加一条规则,通过 MYSSH
链将所有 TCP 流量传输到端口 22 到 INPUT
链。
另一个问题是在哪里插入这条规则。通常,当我手动执行此类操作时(这些天我通常使用 shorewall,因为它更易于维护),我只使用 iptables -A
命令并按正确的顺序使用 运行 它们。在您的情况下,您似乎想将其作为第二条或第三条规则插入到包罗万象
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
取决于你想要它的位置。
请注意,顺便说一下,如果这个包罗万象的规则没有我没有看到的附加条件,则永远不会达到下面的规则。