限制用户访问某些端口

限制用户访问某些端口

这个问题纯粹是假设性的。是否可以限制某些用户可以在其进程中使用哪些端口?假设用户 1 获得端口 8000-8999,用户 2 获得端口 9000-9999。

我正在运行 Ubuntu 11.10。

答案1

唯一能够处理此类限制的 Linux 原生应用程序可能是 SElinux,它是 Ubuntu 发行版的一部分。SElinux 非常复杂,我不确定您如何基于每个用户实施端口限制。这将由您和 Google 决定。

这次讨论提到两个内核补丁(GR安全知世) 特别允许在应用程序级别进行端口限制,尽管讨论中包括对每个用户端口限制的引用。

最后,我看到了另一个内核补丁的链接,名为“用户端口入侵' 但其项目页面尚未公布,并且一个内核帖子提到它仅适用于内核 2.4。也许你可以去挖掘一下。

对于您的要求,我能想到的一个左边的解决方案就是简单地要求用户遵守一项政策。例如,“用户 X,请仅使用端口 8000-8999。”

或者,如果您的用户坚持使用分配给他们的 1000 个以外的端口,您可以将用户隔离到他们自己的专用虚拟机中,然后在主机级别实施防火墙/iptables 规则以将流量限制在每个虚拟机 IP 地址的特定端口范围内。

答案2

您应该考虑使用带有所有者模块的 iptables。我从未在这种情况下尝试过,但它似乎可以回答您的问题。

相关内容