无论我是否要求,我的 GNU/Linux 系统都会通过 Internet 传输数据。我怎样才能让它停止?
例如,我系统的 Firefox 软件在没有询问的情况下,显然在后台联系了 Mozilla.org。同样,无需询问,我系统的 GNOME 软件就会通过网络向某人请求通知。(这些只是示例。我不是在问如何专门配置 Firefox 或 GNOME。而是我在问一般如何阻止未经授权的自动传输。)
我要我的系统
- 连接到互联网,但
- 在我要求系统传输数据和
- 当我要求时,仅将数据传输给我的预期接收者。
我怎样才能让我的系统停止喋喋不休?
(有关信息,我的发行版是 Debian。但是,同样欢迎 Debian、Fedora 和 Arch 用户回答。)
您可以为一个进程“取消共享”网络,他们只会看到环回。这可能适用于某些软件,或者如果您正在运行真正不受信任的软件。不过,这有点矫枉过正,该过程只会看到类似于私有的、不可共享的环回的东西。
你可以“沉默”很多火狐。这是一个很好的起点。请注意,诸如预测加载或检查其网站列表的广告拦截器之类的事情最终会产生流量,而浏览器并不总是罪魁祸首。此外,当您认为根本不应该发生任何事情时,任何执行 XHR 的页面都会产生流量。
代理一切,例如使用 SOCKS,然后您可以决定谁通过。SOCKS5 做 DNS 意味着你也可以杀死本地网络 DNS,这应该可以控制大多数事情。用 torify/tsocks 包装你信任的程序来完成剩下的工作。
有一些东西可以同时解决两件事: Tor 浏览器(它基本上是 Firefox)默认提供本地 SOCKS5 代理,所以如果你代理所有东西,大多数流量只有在你打开 Tor 浏览器时才会进入低谷。您甚至可以将一个普通的 Firefox(带有容器以及 Tor 没有的任何东西)指向它。然后你“握住钥匙”;如果 Tor 浏览器没有打开,没有人可以使用互联网(除了基于 DNS 的流量,你必须用 iptables 或类似的东西阻止)。
您正在寻找应用程序防火墙。一个正在进行中的是OpenSnitch,它以 macOS 的 Little Snitch 为蓝本。它可以工作,但附带免责声明,不要指望它。更好的可能是更成熟和更广泛的 AppArmor,这是一种LSM ,它提供的不仅仅是对网络访问的控制;它还实现了MAC和其他功能。(因此,不要同时使用 AppArmor 和 SELinux。)Debian 10 (Buster),2019 年 7 月 6 日,默认启用 AppArmor。