有没有状态的用户空间Linux 的防火墙?我正在寻找一种不依赖于 Linux 内核中的任何内容(如 iptables/netfilter)并可处理原始数据包的防火墙。
答案1
iptables
将允许您将选定的数据包路由到 usespace 进行额外处理。 (在你的情况下选定的数据包可能意味着所有数据包.)我没有这样做,但man iptables
对此事有这样的说法:
目标
ACCEPT 表示让数据包通过。 DROP 意味着将数据包丢弃在地板上。QUEUE 表示将数据包传递到用户空间。(用户空间进程接收数据包的方式因特定队列处理程序而异。2.4.x 和 2.6.x 内核直至 2.6.13 都包含 ip_queue 队列处理程序。内核 2.6.14 及更高版本还包含 nfnetlink_queue 队列处理程序。在这种情况下,目标为 QUEUE 的数据包将被发送到队列号“0”。另请参阅本手册页后面所述的 NFQUEUE 目标。)
然后,
NFQUEUE [...] 是 QUEUE 目标的扩展。与 QUEUE 不同,它允许您将数据包放入任何特定队列中,由其 16 位队列号标识。 [...]它需要 nfnetlink_queue 内核支持。
当然,这不会为您提供状态防火墙支持,但至少您可以获取数据包。这也用于iptables
首先将数据包发送给您,这可能是不可接受的。