Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中允许或阻止对端口的访问_Linux_Sockets_Linux Kernel - Fatal编程技术网

在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框架来设置适当的规则,以满足您的需要。创建自己的数据包过滤框架可能太复杂了——再加上重新发明轮子通常不是一个好主意

过滤器子系统是相当模块化的,所以你可能想考虑用它的另一个模块来创建它的可能性。