如何让 netfilter 在记录时触发用户空间钩子?

如何让 netfilter 在记录时触发用户空间钩子?

如果/当某些类型的数据包通过自定义(bash)脚本到达时,我想立即处理它们。

由于 NetFilter 是内核空间,我知道我需要寻找一个用户空间日志记录工具,所以我将目光投向了 ulogd (v.2)。不幸的是,我找不到可以让我处理传入数据包的功能。

我可以让 ulogd 输出到一个文件中,并设置一个单独的进程来监视该文件,但在我看来这太过复杂。

nft是否存在我错过的选项ulogd,可以让我在遇到某个数据包时触发脚本?

答案1

这取决于你想做什么。我有两个选择:

  1. 编写您自己的应用程序来完全在用户空间中处理感兴趣的数据包。Netfilter 只会将匹配的数据包转发给您的应用程序进行处理。这为您提供了完全的控制权来检查数据包,然后决定要做什么。
  2. 使用众所周知的 netfilterLOG目标并使用工具失败2ban捕获日志条目并根据需要处理它们。

相关内容