如何使用 iptables 将端口 80 限制为仅一个用户

Posted

技术标签:

【中文标题】如何使用 iptables 将端口 80 限制为仅一个用户【英文标题】:How to limit port 80 to just one user with iptables 【发布时间】:2011-06-05 14:04:11 【问题描述】:

我想限制端口 80,以便只有一个用户可以使用它。我想用 iptables 来做这个我还没有找到任何关于如何做这个的文档。

【问题讨论】:

什么是用户?您的意思是单一来源 IP 地址? 【参考方案1】:

如果您的意思是“具有离散 uid 的本地用户”,那么您可以使用所有者模块 (-m owner) 和 --uid-owner # 选项。

但是这里有一些问题:

    这仅适用于出站数据包。 有些数据包没有所有者。

就其本身而言,这些通常不会破坏交易。但是您需要有效地反转条件并阻止与用户不匹配的数据包。我怀疑这将充分破坏协议处理,以至于简单的尝试都会失败。

我会说,将您知道的端口 80 输出转发到一个单独的链,然后仅按用户过滤该链。这应该足以破坏其他用户的流量,但不会破坏内部流量,从而总体上满足您的要求。

【讨论】:

我只担心出站,因为我只想阻止发出请求,如果请求被阻止,那么会有任何传入响应。你能给出我需要使用的命令吗?我对 iptables 没有太多经验。【参考方案2】:

iptables 具有 -m owner --uid-owner ### 匹配项,“匹配数据包是否由具有给定有效用户 ID 的进程创建”

【讨论】:

以上是关于如何使用 iptables 将端口 80 限制为仅一个用户的主要内容,如果未能解决你的问题,请参考以下文章

iptables限制访问

配置iptables实现本地端口转发的方法详解

如何利用iptable系统权限

ubunto python + vnstat 限制每天流量使用 使用iptables

如何使用MAC参数为OpenWRT路由器上iptables中的特定机器打开80端口

如何判断centos 80端口开放