内核:用模块拦截监听调用

内核:用模块拦截监听调用

我正在编写一个应用程序,它将检测任何调用listen(2)打开套接字以进行传入连接的应用程序,并使用规则表进行查找。它很像 macOS 中的应用程序防火墙。所以我的主要方法是listen使用一些可加载内核模块来覆盖调用。如果系统调用表在 2.6 以上的内核中是只读的,那么在 Linux 中是否可能?还有什么方法更好?

答案1

更好的方法可能是使用 eBPF,例如;

https://stackoverflow.com/questions/43003805/can-ebpf-modify-the-return-value-or-parameters-of-a-syscall/

不要让“数据包过滤”部分欺骗了您,BPF 不再仅仅与数据包过滤有关。它的学习曲线相当陡峭,但这是值得的。

相关内容