iptables:有规则的上下文

iptables:有规则的上下文

我正在寻找一种在 iptables-rules 中获取上下文/状态的方法。我不是在谈论这里的会议背景(新的、已建立的……)。

例如

Request to port 80                  => PASS + set CONTEXT to 1
Request to port 88 and CONTEXT is 1 => PASS

因此,这种机制是对过去的一种简单记忆。

现有的扩展可以做到这一点吗?

答案1

recent匹配(作为iptables匹配是非常非标准的:它可以用于检查或更改信息)可以用于您的目的:

iptables -A INPUT -p tcp --dport 80 -m recent --set --name contextA -j ACCEPT
iptables -A INPUT -p tcp --dport 88 -m recent --rcheck --name contextA -j ACCEPT

现在肯定需要更多的管道,包括使用选项--seconds或带有选项的附加规则--remove,否则“上下文”将永远保持不变。这一切都取决于您所追求的实际目标。

对于更复杂的设置,iptablesipset使用set匹配和SETtarget 可能会有所帮助(它是 的超集recent)。

如果你需要这个来进行端口敲门,有一个特定的pknock匹配可用xtables-addons(通常需要编译,因为它带有外部内核模块),但也要考虑类似的工具fwknop

相关内容