如何在网关上设置用户级别限制?

如何在网关上设置用户级别限制?

我知道 Ubuntu Server 可以用作网关,允许 Internet 连接到 LAN。

然后我们使用 IP 表或其他防火墙设置来限制(例如)某些网站的访问。

我的问题:可以对个人用户进行这种限制吗?如果可以,能否请分享一个我可以用于此目的的链接或资源?

答案1

您可以使用类似的东西iptables -A OUTPUT -m owner --uid-owner 1001来匹配本地用户。但这只适用于防火墙机器上的用户。

在网络上,您的防火墙需要能够识别哪个用户是哪个用户。正常的互联网流量只有源地址和目标地址,没有用户名标记,这意味着您的防火墙无法区分不同的用户,因此无法以不同的方式阻止不同的用户。

因此,通过机器进行阻止很容易,但如果没有一些额外的机制来区分用户,通过用户进行阻止就不是一件容易的事。

如果您想阻止网站流量,可以使用 Web 代理服务器(如 squid)来实现。您需要配置防火墙以阻止除通过 squid 的流量以外的 Web 流量。

有多种方法可以配置用户以使他们通过代理,包括“Web代理自动检测”(wpad)、“proxy.pac”、“透明代理”和手动。

HTTP 支持额外的代理身份验证步骤,如果启用此功能,则用户在尝试访问 Web 时将被提示输入用户名和密码。这样 squid 就会知道谁是谁。

最后,有各种插入 squid 的解决方案可以决定哪些内容可以阻止,哪些不可以;不过,如果您只想阻止某些特定的 URL,那么您可以直接在 squid 中执行此操作。

相关内容