禁用特定用户的联网


16

我正在开发要运行的Ubuntu / Mint发行版。有多个帐户可分为三类:管理员,互联网和安全性。

  • 管理员显然有权执行任何操作。
  • Internet帐户用于使用Internet。

其他帐户是安全帐户。在任何情况下都不允许任何联网的Internet,打印机,蓝牙,WiFi设备等。

我想做的是从内核中删除网络驱动程序,但这将禁用需要Internet的帐户。

这些安全帐户禁用Internet的最低级别方法是什么?我正在寻找无法连接的解决方案。

Answers:


14

您可以使用iptables

在终端上,将规则添加到 iptables

sudo iptables -A OUTPUT -p all -m owner --uid-owner username -j DROP

其中username是您要禁用Internet连接的用户。保存文件并退出。

这将增加一条规则,iptables说明由指定用户创建的所有外发软件包都将被自动删除iptables

如果您想对一个完整的用户组执行相同的操作,我建议--uid username您而不是使用--gid-owner groupname,这将对一个完整的用户组具有相同的效果。

因此,为防止安全组访问Internet,该命令应类似于以下内容

sudo iptables -A OUTPUT -p all -m owner --gid-owner security -j DROP

要使规则永久生效,您可以在中创建一个脚本,在其中/etc/network/if-up.d/添加必要的行并使其可执行。


作为一种选择,用于iptables-save保存您的当前规则并在启动时恢复它们。

保存当前iptables规则

sudo iptables-save > /etc/iptables_rules

/etc/rc.local用您喜欢的文本编辑器打开,然后在文件末尾添加

/sbin/iptables-restore < /etc/iptables_rules

这将在每次引导时恢复保存的规则。

有关更多信息,请访问[ iptables联机帮助页 ]页面,以获取有关多个iptables选项的更多信息。


谢谢。这适用于Internet,但该用户仍可以使用蓝牙。我正在测试无线,但尚未确认。我的帐户似乎被拒收。我尝试过,sudo iptables -A OUTPUT -p all -m owner --uid-owner internet -j ACCEPT但是并没有将其重新打开进行测试。
bambuntu 2012年

好的,iptables似乎是对实际上建立网络连接的较低地址的过滤器。什么应用程序使连接成为可能?我可以禁用它吗?如果是这样,请禁用基于谁来控制控制台。此实时发行版适用于多个用户,但不适用于多个控制台。因此,如果我可以跟踪谁在使用控制台,那么我想我可以根据该用户的权限来禁用此网络应用程序。
bambuntu 2012年

好吧,那将是您在Ubuntu中的网络管理员,即network-manager,如果您从组中删除一个用户network并禁用连接network-manager或其他类似工具,则他将无法再次建立连接,而另一位用户是网络组的成员。这是另一种思维方式,因为它会自行禁用连接。
布鲁诺·佩雷拉

经过一番谷歌搜索,我发现您可以删除network-manager并通过传统方式通过编辑/ etc / network / interfaces来设置Ubuntu 。这似乎不是我要禁用的网络应用程序。我看起来有点低。在到达驾驶员之前,我们能走多低?
bambuntu 2012年

我能够删除并清除网络管理器。那时网络被禁用。但是,我能够通过以下方式将事情带回来:sudo /etc/init.d/networking编辑后,您的工作量/etc/network/interfaces 有多/etc/init.d/networking低?
bambuntu 2012年

2

布鲁诺的解决方案很好:我认为这可能是最好的独立解决方案。

您可以考虑的另一种选择是在单独的计算机上设置防火墙/代理,作为通往Internet的网关,它仅允许提供按用户身份验证的连接。您可以将两者一起使用以提供额外的保护。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.