如何使用 Algo 和云托管托管您自己的 VPN
已发表: 2022-01-29世界各地的公司都在销售 VPN 服务来保护您的在线活动,但您真的可以信任 VPN 提供商吗? 如果您愿意,您可以使用开源 Algo 软件和您选择的云托管提供商创建自己的虚拟专用网络。
VPN 和信任
无论隐私政策怎么说或吹嘘公司博客上的安全审计,没有什么可以阻止 VPN 监控你在网上所做的一切。 最后,选择 VPN 服务都归结为信任。
如果您不喜欢信任匿名在线服务,另一种选择是运行您自己的 VPN 服务器。 这曾经是一项艰巨的任务,但多亏了安全公司 Trail of Bits 的开源项目 Algo,现在创建自己的 VPN 变得很容易。
每月 5 美元,您就可以运行和控制自己的全职 VPN 服务器。 更好的是,您可以根据需要使用 Algo 设置和拆除 VPN 服务器,并在此过程中节省资金。
要设置 Algo,您必须使用命令行。 如果这令人反感,请不要担心——我们将引导您完成每一步。
这些说明可能看起来很多,但这只是因为我们正在尽可能多地解释。 一旦你用 Algo 创建了几次 VPN,它应该不会花很长时间。 另外,您只需设置一次 Algo 的安装环境。 之后,您可以通过几次按键创建一个新的 VPN 服务器。
但是你能相信 Algo 的脚本没有做任何不愉快的事情吗? 好消息是 Algo 的代码在 GitHub 上公开,任何人都可以查看。 此外,许多安全专家对 Algo 项目感兴趣,这降低了不法行为的可能性。
相关:什么是 VPN,为什么我需要一个?
算法可以(和不能)做什么
VPN 是保护您的在线活动的好方法,尤其是在机场或咖啡店的公共 Wi-Fi 网络上。 VPN 使网页浏览更加安全,并阻止可能在同一个本地 Wi-Fi 网络上的任何恶意行为者。 如果您的 ISP 限制某些类型的流量(如种子),VPN 也可以提供帮助。
但要小心,海盗! 通过您自己的 VPN 下载战利品并不是一个好主意,因为可以更轻松地追踪到您的活动。
此外,如果您想通过 VPN 观看 Netflix,您将不得不寻找其他地方——Algo 无法使用它。 但是,有许多商业服务确实支持 Netflix。
算法的先决条件
要启动并运行 Algo VPN 服务器,您需要一个 Unix Bash shell。 在 Mac 或 Linux 系统上,您可以使用终端程序,但在 Windows 上,您必须激活 Linux 子系统。 以下是在 Windows 10 上安装和使用 Linux Bash shell 的方法。
您还需要一个云服务器托管提供商的帐户。 Algo 支持以下所有功能:
- 数字海洋
- 亚马逊光帆
- 亚马逊 EC2
- 火影忍者
- 微软天青
- 谷歌计算引擎
- 鳞片路
- 赫兹纳云
- 它还安装到 OpenStack 和 CloudStack 实例。
如果您从未使用过任何这些服务,我们推荐 DigitalOcean,因为它非常用户友好。 这也是我们在本教程中使用的服务。 如果您使用不同的提供商,该过程会有所不同。
当您的 DigitalOcean 帐户准备就绪时,请登录,然后从主仪表板中,从“帐户”标题下的左侧栏中选择“API”。
在下一页上,单击“生成新令牌”。 访问令牌是一长串字母和数字,无需用户名和密码即可访问帐户资源。 您需要命名新令牌。 通常,最好以您正在使用的应用程序命名,例如“algo”或“ian-algo”(如果您的名字恰好是 Ian)。
生成新令牌后,将其复制并粘贴到桌面上的文本文档中。 几分钟后您将需要它。
设置您的环境
回到桌面,打开一个新的终端窗口,输入cd
(表示“更改目录”,这是 Unix 世界中的文件夹名称),然后按 Enter。 这将确保您在终端的主目录中工作。
在撰写本文时,Algo 需要 Python 3.6 或更高版本。 在终端程序中输入以下内容:
python3 --版本
如果您收到类似Python 3.6.9
的响应,那么您就可以开始了; 如果没有,则必须安装 Python 3。
要在 Mac 上安装 Python 3,您可以使用 Homebrew 包管理器。 当 Homebrew 准备就绪时,在终端窗口中键入以下命令:
冲泡安装python3
如果您在 Windows 上使用 Ubuntu Linux 或 WSL,则默认情况下它们应该具有 Python 3。 如果没有,安装方法会因您的 Linux 版本而异。 在线搜索“在 [在此处插入您的 Linux 版本] 上安装 Python 3”以获取说明。
接下来,您需要安装 Python3 的 Virtualenv 来为 Algo 创建一个隔离的 Python 环境。 在 Mac 上的 Bash 中键入以下内容:
python3 -m pip install --upgrade virtualenv
在 Ubuntu Linux 和 WSL 上,命令如下:
sudo apt install -y python3-virtualenv
请注意,我们正在为 Ubuntu 和相关发行版定制本教程,但这些说明也适用于其他版本的 Linux,只需稍作改动。 例如,如果您使用的是 CentOS,您可以将使用apt
的指令替换为dnf
。
接下来,我们需要使用wget
命令下载 Algo。 Mac 默认没有安装wget
,因此要通过 Homebrew 获取它,请键入以下内容:
冲泡安装wget
现在,让我们下载 Algo 的文件:
wget https://github.com/trailofbits/algo/archive/master.zip
wget
完成后,在终端的主目录中会出现一个名为“master.zip”的压缩文件; 让我们用ls
检查一下。
如果您在出现的文件和文件夹列表中看到“master.zip”,那么您就可以开始了。 如果没有,请尝试再次运行wget
。
现在,我们需要解压缩文件,所以我们输入以下内容:
解压master.zip
完成后,再次按ls
。 您现在应该在主目录中看到一个名为“algo-master”的新文件夹。
我们几乎已经准备好采取行动,但首先,我们需要设置我们的隔离环境并安装更多的依赖项。 这次我们将在“algo-master”文件夹中工作。
键入以下内容以切换到文件夹:
cd ~/算法大师
确保您使用以下命令:
密码
这代表“打印工作目录”,它应该向您显示/home/Bob/algo-master
或/Users/Bob/algo-master
内容。 现在我们在正确的地方,让我们准备好一切。
复制并粘贴或在一行中键入以下命令(直到最后不要按 Enter):
python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip install -r requirements.txt
这会触发 Algo 目录中的大量操作以准备运行。
接下来,您必须为 VPN 命名您的用户。 如果您现在不命名所有这些,您要么必须保留安全密钥(安全性较低),要么稍后从头开始启动新服务器。
无论哪种方式,在终端中键入以下内容:
纳米配置.cfg
这将打开用户友好的命令行文本编辑器 Nano。 Algo 配置文件中有很多信息,但我们只对“用户”部分感兴趣。 您所要做的就是删除默认用户名(电话、笔记本电脑、台式机),然后为您想要在 VPN 上使用的每个设备输入一个名称。
例如,如果我为自己、Bill 和 Mary 创建一个 VPN,配置文件可能如下所示:
users:
- Ian_PC
- Bill_Mac
- Mary_PC
- Ian_Android
- Bill_iPhone
- Mary_iPhone
为所有人命名后,按 Ctrl+O 保存文件,然后按 Ctrl+X 退出。
我们几乎已准备好采取行动,但首先 Windows 人员需要绕道而行。 WSL 通常不会为 Algo 文件夹设置正确的用户权限,这让 Ansible(Algo 部署服务器所依赖的工具)感到不安。
在 WSL 上,键入以下内容以返回您的主目录:
光盘
然后,键入以下内容:
chmod 755 -R ~/算法大师
要返回 Algo 文件夹,请键入:
cd ~/算法大师
运行算法
现在是关键时刻。
在algo-master
文件夹中,在终端窗口中键入以下内容:
./算法
算法配置应该开始运行。 当它询问您想使用哪个云提供商时,您就会知道它正在工作。 在我们的例子中,我们为 DigitalOcean 选择数字 (1)。
如果 Algo 失败,这可能是我们无法在这里预测的多种原因。 如果错误提示您的目录是“全局写入可配置”,请按照上面的说明更改权限。
如果您收到其他错误,请查看 GitHub 上 Algo 项目存储库中的故障排除页面。 您也可以复制错误消息并将其粘贴到 Google 中进行搜索。 您应该找到一个有用的论坛帖子,因为您不太可能是第一个收到该错误的人。
接下来,系统将要求您提供之前从 DigitalOcean 帐户复制的访问令牌。 将其复制并粘贴到终端中。 你不会看到任何东西,因为 Bash 不显示密码和安全短语条目的字符。 不过,只要您点击粘贴,然后按 Enter,就可以了。
如果它失败了,你可能只是弄乱了粘贴,每个人都在 Bash 中这样做。 只需键入以下内容即可重试:
./算法
当 Algo 运行时,回答它提出的问题。 这些都非常简单,比如你想给你的服务器起什么名字(在名字中使用“algo”是个好主意)。
接下来,它会询问您是否要为 Mac 和 iOS 设备启用“按需连接”。 如果您不使用任何这些设备,请输入 N 表示否。 它还会询问您是否要保留 PKI 密钥以便以后添加更多用户; 通常,您也会在此处键入 N。
而已! Algo 现在需要大约 15 到 30 分钟来让您的服务器启动并运行。
使用算法
Algo 完成设置后,终端将返回命令行提示符,这意味着 VPN 已准备就绪。 与许多商业服务一样,Algo 使用 WireGuard VPN 协议,这是 VPN 世界中最热门的新事物。 这是因为它提供了良好的安全性、更快的速度并且更易于使用。
作为接下来要做什么的示例,我们将在 Windows 上激活 Algo。 要设置其他设备,您可以参考 GitHub 上的 Algo 存储库。
首先,我们将从 WireGuard 站点安装通用 Windows 桌面客户端。 接下来,我们必须为程序提供 PC 的配置文件。 配置文件存储在 algo-master 文件夹的深处: ~/algo-master/configs/[VPN server IP address]/wireguard/
。
有两种类型的文件用于配置 VPN 客户端设备:.CONF 和 .PNG。 后者是手机等设备的二维码,可以扫描二维码。 .CONF(配置)文件是桌面 WireGuard 客户端的文本文件。
在 Mac 和 Ubuntu 上,在命令行之外找到algo-master
文件夹应该不难。 在 Mac 上, algo-master
位于 Home 文件夹中; 只需使用 Finder > Go > Home 即可到达。 在 Ubuntu 上,您可以打开 Nautilus,它将位于主文件夹中。
但是,在 Windows 上,WSL 与操作系统的其余部分是分开的。 出于这个原因,使用命令行复制文件更容易。
使用我们之前的示例,假设我们希望在 Windows 10 PC 上使用“Mary-PC.conf”配置文件。 该命令看起来像这样:
cp ~/algo-master/configs/[VPN服务器IP地址]/wireguard/Mary-PC.conf /mnt/c/Users/[你的Windows用户账户名]/Desktop/
注意Mary-PC.conf
和/mnt/
之间的空格; 这就是 Bash 如何知道要复制的文件的位置以及它的去向。 大小写也很重要,因此请确保在指定的地方键入大写字母。
在 Windows 上,想要将“C:\”驱动器中的 C 大写是很自然的,但在 Bash 中则不需要。 此外,不要忘记将括号中的位替换为您 PC 的实际信息。
例如,如果您的用户文件夹位于“D:\”驱动器上,而不是“C:\”,则将/mnt/c/
替换为/mnt/d/
。
复制文件后,打开 WireGuard for Windows 客户端。 单击“从文件导入隧道”,然后在桌面上选择您的配置文件。 完成后,单击“激活”。
只需几秒钟,您将连接到您自己的 VPN!