如何永久阻止 WINE 应用程序互联网访问

如何永久阻止 WINE 应用程序互联网访问

我已遵循本指南: 如何阻止 Wine 应用程序的互联网访问?

并制定了以下规则:

sudo addgroup no-internet  # Create group "no-internet"
sudo adduser $USER no-internet  # Add current user to no-internet
sudo iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
sudo ip6tables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP # To also block IPv6 traffic

然后我运行 WINE 应用程序: sg no-internet -c "wine-stable pathToApp"

但是我如何使其成为一条持久规则,以便我不必通过运行 WINE 应用程序sg no-internet -c "wine-stable pathToApp"(即即使我直接运行该应用程序)并且它即使在重启后也能正常工作?

答案1

问题在于用户的默认主要组。如果用户已创建并且其用户名属于默认用户组(大多数情况下默认设置下都是这个),则检查gid-owner将不匹配,因为进程的所有者组 ID 不是no-internet,而是该用户的组,而不是您尝试匹配的目标组 ID。

注意:如果您对当前正在运行的用户进行此更改,则sudo可能会破坏某些功能,因此我建议您创建一个辅助测试用户*并从那里测试 Internet 规则

假设您的iptables规则将持续存在,那么请进行以下额外更改:

sudo usermod -g no-internet $USER

然后,测试用户登录后的互联网连接(ping 8.8.8.8应该说“操作不允许”,curl https://google.com应该得到“无法解决”错误等)。


* 请注意,我使用deaduser以下命令创建的,然后以该用户身份登录以测试 Internet 连接:sudo useradd --create-home --user-group -g no-internet deaduser,然后以该用户身份强制登录以sudo su - deaduser测试规则的配置。

我所做的测试是ping 8.8.8.8(收到“操作不允许”的答复)和curl google.com(收到“无法解决”的错误)。

相关内容