在Linux中允许或阻止对端口的访问
对于我目前正在处理的项目,任务是从磁盘读取以下格式的文件:在Linux中允许或阻止对端口的访问,linux,sockets,linux-kernel,Linux,Sockets,Linux Kernel,对于我目前正在处理的项目,任务是从磁盘读取以下格式的文件: port number [in/out/both] 因此,如果端口号后跟in,则只允许入站连接。如果后跟out,则只允许出站连接,如果后跟两者,则双向连接。阻止所有其他端口 一种方法是在启动时读取文件,将端口和类型存储在数据结构中,并将其保存在内存中,当进程尝试使用端口时,根据内存中的数据结构授予访问权限。 问题是,我不知道如何真正实现这一点,只是需要朝着正确的方向推动。我知道这可以使用iptables来完成,但这是不允许的。作为Li
port number [in/out/both]
因此,如果端口号后跟in,则只允许入站连接。如果后跟out,则只允许出站连接,如果后跟两者,则双向连接。阻止所有其他端口
一种方法是在启动时读取文件,将端口和类型存储在数据结构中,并将其保存在内存中,当进程尝试使用端口时,根据内存中的数据结构授予访问权限。
问题是,我不知道如何真正实现这一点,只是需要朝着正确的方向推动。我知道这可以使用iptables来完成,但这是不允许的。作为Linux内核编码的开始,对于您的某些问题,您可能会发现这很有用: 编辑: 对于包过滤的具体问题,我建议您从内核中使用netfilter框架来设置适当的规则,以满足您的需要。创建自己的数据包过滤框架可能太复杂了——再加上重新发明轮子通常不是一个好主意