![如何让 netfilter 在记录时触发用户空间钩子?](https://linux22.com/image/730871/%E5%A6%82%E4%BD%95%E8%AE%A9%20netfilter%20%E5%9C%A8%E8%AE%B0%E5%BD%95%E6%97%B6%E8%A7%A6%E5%8F%91%E7%94%A8%E6%88%B7%E7%A9%BA%E9%97%B4%E9%92%A9%E5%AD%90%EF%BC%9F.png)
如果/当某些类型的数据包通过自定义(bash)脚本到达时,我想立即处理它们。
由于 NetFilter 是内核空间,我知道我需要寻找一个用户空间日志记录工具,所以我将目光投向了 ulogd (v.2)。不幸的是,我找不到可以让我处理传入数据包的功能。
我可以让 ulogd 输出到一个文件中,并设置一个单独的进程来监视该文件,但在我看来这太过复杂。
nft
是否存在我错过的选项ulogd
,可以让我在遇到某个数据包时触发脚本?
答案1
这取决于你想做什么。我有两个选择:
- 编写您自己的应用程序来完全在用户空间中处理感兴趣的数据包。Netfilter 只会将匹配的数据包转发给您的应用程序进行处理。这为您提供了完全的控制权来检查数据包,然后决定要做什么。
- 使用众所周知的 netfilter
LOG
目标并使用工具失败2ban捕获日志条目并根据需要处理它们。