允许或阻止Linux中的访问权限到端口

时间:2010-11-24 20:49:40

标签: linux sockets linux-kernel

对于我目前正在处理的项目,任务是从磁盘读取具有以下格式的文件:

port number [in/out/both]

因此,如果后跟一个端口号,则只允许入站连接。如果后面是out,则只允许出站连接,如果后面两者都是双向的。阻止所有其他端口。

执行此操作的一种方法是在引导时读取文件并存储端口并键入数据结构并将其保留在内存中,当进程尝试使用端口时,根据数据结构授予访问权限在记忆中。 问题是,我不知道如何实际实现这一点,只需要在正确的方向上推动。我知道这可以使用iptables完成,但这是不允许的。

1 个答案:

答案 0 :(得分:1)

作为Linux内核编码的开始和问题的某些部分,您可能会发现这很有用:

Storing struct array in kernel space, Linux

编辑:

对于您特定的包过滤问题,我建议您使用内核中的netfilter框架来设置适当的规则,以满足您的需求。创建自己的包过滤框架可能过于复杂 - 而且重新发明轮子通常不是一个好主意。

netfilter子系统非常模块化,因此您可能需要考虑仅使用您的预期功能创建另一个模块的可能性。

相关问题