我正在寻找一种在 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
,否则“上下文”将永远保持不变。这一切都取决于您所追求的实际目标。
对于更复杂的设置,iptables
与ipset
使用set
匹配和SET
target 可能会有所帮助(它是 的超集recent
)。
如果你需要这个来进行端口敲门,有一个特定的pknock
匹配可用xtables-addons
(通常需要编译,因为它带有外部内核模块),但也要考虑类似的工具fwknop
。