如何使用最新版本的 Linux 和 SQUID 之类的程序来屏蔽家庭网络上的网站?

如何使用最新版本的 Linux 和 SQUID 之类的程序来屏蔽家庭网络上的网站?

(编辑 2018-08-02:有人问下面的设置有多“不容易”才能被破解。它至少应该像访问一台你没有密码的计算机或功能一样“不容易”,即使你有 root 访问权限和对客户端机器的完全控制权。这对于这个目的来说已经足够了。这仍然是一个有效的请求。)

我对此很好奇。这涉及到我遇到的有关网站屏蔽的情况,我找不到太多相关信息,因为它以及特定网络设置和使用要求的组合似乎有些奇怪,因为我看到的所有关于类似问题的帖子都证明这些问题非常不充分,我真的不知道该怎么办。在过去的半兆秒左右的时间里,我一直在尝试在家里建立一个系统来阻止访问我经常访问的问题网站,这样它们对我和我的工作就不会那么麻烦,也不会有那么多想要浏览它们的诱惑,但这似乎比我最初想象的要困难得多——确实非常困难。

我的基本设置是,家里的计算机组成一个无线网络,连接到无线路由器,然后通过电缆调制解调器连接到互联网,包括我使用的计算机。我一直在使用一种解决方案,即运行 Linux Mint 的计算机通过 /etc/hosts 安装了一个简单的块(将网站的 URL 重定向到 127.0.0.1 之类的地址,这样浏览器就会阻塞),并且这种方法有效;但问题是,当然,我很容易进入那里并禁用它,因为它只是一个 root 终端,所以我想出的办法是让家里我信任的其他人设置他们自己的 ROOT 密码,这样我就无法访问该文件。麻烦的是,我经常需要在需要 root 访问权限的机器上加载软件,而且有可能(虽然还没有发生,但仍然存在)使用家里的另一台计算机在那些有问题的网站上随心所欲地浏览。

因此,我想到的办法是在有线调制解调器和无线路由器之间插入一台我们从未使用过的计算机,以拦截和过滤流量,然后给那台机器设置密码,这样我就无法访问它,至少不能轻易访问到网站。我决定在它上面安装 Ubuntu,并找到了一个名为“SQUID”的程序,它应该充当“代理服务器”,让你通过它发送流量并过滤/删除你不想要的内容,等等。但我一直在努力用这个东西阻止那些有问题的社交媒体网站(Quora、Reddit 和其他网站)。(这部分似乎不是一个不常见的抱怨,不常见的是组合这种特定的网络设置以及要求它不容易被禁用或绕过阻止,至少不是你在终端上花几秒钟或浏览浏览器设置就能做到的事情。它不必是世界级的安全,只要足以阻止“轻松修复”就行了。)

但事实证明,这非常困难,问题的关键在于所有这些现代网站,当然包括这些大型社交媒体平台,都使用(相当明智的)HTTPS,而你显然无法用代理轻松阻止它 - 至少,不是这种“透明”代理,它允许你避免在浏览器中配置它(问题是,好吧,我只需点击代理,然后瞧!网站现在就可以开始了!)。到目前为止,我似乎有两个选择,但它们似乎并不完全令人满意:

  1. 一种选择显然是,较新版本的 SQUID 可以使用“中间人”类型的安全 HTTPS 连接过滤。看起来可以设置它,但我再次找不到针对此特定用例的任何信息,也找不到真正最新的信息,即截至最近几十兆秒(2018 年左右)的信息,软件和系统更新很快,这是我对这个项目非常欣赏的一点。更糟糕的是,我听到一些不祥的警告,说这样做甚至可能存在法律问题(我在美国)——这是可以理解的,因为你实际上是在窥探安全流量,虽然我的目的当然不是阅读任何人的私人消息或数据,而只是完全阻止某些网站,但无论如何,这可能仍然会以某种方式发生冲突。我绝对不想被联邦调查局 (FBI) 奇怪地拜访,然后出庭,我没钱请律师来就此事进行法律咨询,. 因此这似乎基本上已经死了。

  2. 另一个选项则比较平淡无奇。由于“不透明”(?)代理屏蔽网站,只需在过滤机器上丢弃端口 443 流量,即可强制每个人的浏览器使用服务器。这样风险/问题会小得多,但仍然会给我家里的其他人带来一些不便/麻烦,尽管他们可能对此不以为然。只是不确定。

我真正想要的是,是否有我在这里错过的第三个选项可以解决这个问题。正如我所说,我从未找到任何解决此类问题的方法。想要屏蔽麻烦的社交媒体网站并不是什么新鲜事,但通常看来,建议的做法更像是一种更随意的屏蔽,仅浏览器设置就足以起到威慑作用。对于这个问题的作者来说,事实并非如此。

那么,实现此目标的最佳方法是什么?如果不是通过 SQUID 或甚至不是通过此设置,那么还有其他方法吗?最佳解决方案是什么?

相关内容