钢丝卫士、东道主和PiHole的圣三位一体

2020-09-23 02:50:30

2020年9月17日侧记-你现在可以直接把我的博客帖子发到你的电子邮件里了。只需在此处注册邮件列表即可。

自从2020年大流行开始以来,我一直在苏格兰远程工作,远离我在伦敦的人工智能盒子。甚至在新冠肺炎来袭之前,我就经常远程工作,连接到一些我不知道或不信任的网络。在这种情况下,虚拟专用网(VPN)是绝对必要的。不仅如此,考虑到目前令人震惊的互联网状况,我需要一点额外的保护。我想谈谈过去几个月我开始使用的三个工具,它们确实改善了我的生活:wireguard、Hosts和Pihole。

过去,我一直在使用openvpn。我在互联网上有自己的虚拟服务器,家里有几台机器,还有我的流动笔记本电脑。我发现保存证书真的很痛苦。速度不是很快,而且不得不尴尬地拆分端口443的流量也一点也不好玩。当IPv6进入混合体时,OpenVPN变得几乎无法使用,至少对我来说是这样。

大多数人通过谈论隐私、绕过区域块和保护您的数据的广告和赞助商来了解VPN。但实际上,VPN是将某些计算机连接到一个私有网络中,在一些现有网络之上。碰巧您在此网络上的一台计算机可以充当通向更广阔世界的网关。这是我和Wireguard的设置。

就在伦敦开始封锁之前,我想在我动身前往苏格兰之前,我需要对我的人工智能盒子进行远程访问。我花了几个小时疯狂地试图让OpenVPN正常工作,但无济于事。最后,我放弃了它,转而使用Wireguard。

Wireguard是如此简单和优雅!它一开始就只有几个小问题就奏效了。一旦我解决了这些问题,我就有了一个可以使用的可靠连接,尽管AI Box上没有静态IP地址。哦,是的,我忘了提了--我体面的互联网连接失败了。由于封锁迫在眉睫,工程师不会很快赶到。我不得不满足于4G路由器,希望能有最好的结果!谢天谢地,Wireguard速度相当快。它自称是目前最快的VPN解决方案之一。自从我在过去的6个月里一直在使用它,我没有注意到任何明显的滞后。

如果您正在进行点对点操作,设置wireguard非常简单。他们的网站上有一段小视频和一份指南,告诉你它是如何做到的。首先要注意的是,本身并没有服务器和客户端的概念。相反,服务器与您网络上的所有对等点对等,而每个客户端只有一个对等点充当服务器。

[接口]地址=10.9.9.1/24Address=<;公网IP>;/22SaveConfig=truePostUp=iptables-A转发-i%i-j接受;iptables-t nat-A POSTROUTING-o eth0-j MASQUERADEPostDown=iptables-D转发-i%i-j接受;iptables Les-t nat-D POSTROUTING-o eth0-j MASQUERADEListenPort=443 PrivateKey=<;私钥>;[Peer]PublicKey=&ley;公钥>;PresharedKey=<。由WG&>;[Peer]PublicKey=<;Public Key>;PresharedKey=<;PreharedKey=<;预共享密钥>;AllowweIP=10.9.9.3/32Endpoint=<;由WG&>填写;

[接口]PrivateKey=<;私钥>;地址=10.9.9.2/24DNS=10.9.9.1[对等]PublicKey=<;公钥>;预共享密钥=<;预共享密钥&>AllowweIP=0.0.0.0/0Endpoint=<;服务器IP&>:443。

我使用端口443,因为它很少被阻塞。这确实意味着服务器不能真正运行HTTPS服务器,但目前还可以。

有一件事我还没有弄清楚,那就是布线是如何深入工作的。很多时候,本地局域网流量也是通过有线网络发送的,这根本不是很有效率。我还在解决这个问题,但我相信这与AllowweIP的设置有关。

实用程序WG-QUICK将在给定配置文件时设置服务。它也是基于系统的发行版上的一项服务。

当我设置裁员时,一个重要的问题让它变得丑陋不堪。一旦我的互联网修好了,我就开始设置第二个备用互联网网关;如果主要连接出现故障,第二个网关将接管我的工作。这看起来很好,直到我意识到电线隧道不会重新连接。无论出于什么原因,无论我使用哪种设置,如果网关更改,wireguard都不会重新连接到服务器。最后,我编写了一个看门狗脚本,放在根用户crontab中,每分钟都在运行:

此脚本检查距离上次握手有多长时间。如果超过3分钟,则会重新启动该服务。这工作得相当好,当然,如果连接故障转移到备份,也会有少量的停机时间。至少比什么都没有好。希望将来会有其他人想出更好的主意。

Pihole是一组程序,捆绑在一个很好的安装程序中,可以设置替代的DNS服务器,阻止跟踪器、广告商和其他不受欢迎的程序。它充当这类事情的天坑,检测这些Ne&edo-well的DNS请求,并将它们发送到空洞中。它是为在RaspberryPI上运行而设计的,因此得名,但它几乎可以在任何东西上运行。

我想我应该在我的本地网络上试一试。在PI上安装真的很容易,我在几分钟内就启动并运行了。问题是,一旦我把它全部插上,我们公寓里的WiFi的性能就真的下降了!我仍然不确定为什么。它可以是PI的电源,也可以是PI本身;两者都非常靠近路由器。

我三思而后行,决定在钢丝瓜机器上运行PiHole。这样,任何连接到Wireguard VPN的机器也可以使用该机器进行DNS。这似乎是一个相当优雅的解决方案。我向每个对等点添加了以下行:

砰!就这么简单!只不过这不是真的。我的大多数Linux机器在连接到网络时都会遇到一些正确设置DNS的问题。通常,无论本地网络说应该设置什么,DNS都会设置为任何值,尽管有线接口处于打开状态。特别是我的笔记本电脑-当它从睡眠中醒来或连接到新的网络-有将DNS重置为任何默认值的趋势。我找到的一种方法是这样的:

在此文件中,您可以更改默认值,它应该可以工作。然而,我并没有让它为我工作。还有另一种涉及dhcpcd的方法:

你会发现第二行用散列符号注释掉了。删除散列,希望对Resolution v.conf的更改可以保留。

PiHole有一个Web界面,允许您查看哪些计算机正在连接以及哪些计算机已被阻止。在我的案例中,smarteucookiebanner.upsell-apps.com.herokudns.com似乎是最严重的违规者。至少很高兴看到它被屏蔽了!

GitHub上一个叫史蒂文·布莱克(Steven Black)的家伙制作了一个名为Hosts的存储库。该程序从各种已发布的列表中收集主机名和相关的IP地址,并将它们整理到您的/etc/hosts文件中。这些条目被重定向到0.0.0.0,有效地阻止了它们。

我发现主机在与cron一起使用时非常有用。白天,我一直被Twitter之类的事情分散了注意力,我想在工作期间屏蔽社交媒体网站。该程序将站点分为社交媒体、间谍软件、广告等类别,并允许您选择要阻止的站点。您可以设置如下内容:

0 10 10*python3/home/you/hosts/updateHostsFile.py-a-r-w/home/you/hosts/White elist.txt-e Social fakenews赌博&;&;服务网络管理器重新启动0 17*python3/home/you/hosts/updateHostsFile.py-a-r-w/home/you/hosts/White elist.txt-e fakenews赌博&;&;服务网络管理器重新启动

这适用于类似ubuntu的发行版,但该手册有针对其他操作系统的指南。我很喜欢假新闻这个选项。我觉得这些天我们都可以少一点生活中的错误信息。

我注意到我的工作效率提高了一点,但最重要的是,我感觉更精神了。远离社交媒体,没有那么多的广告投向我,以及我更难追踪和营销的知识,让我感觉稍微快乐了一点。考虑到当前的事件,我会尽我所能取得小小的胜利。我强烈推荐这些工具。