为了什么
随着专制政权对互联网的审查日益严格,越来越多的有用互联网资源和站点被封锁。 包括技术信息。
因此,无法充分利用互联网, 并且侵犯了《 世界人权宣言》所载的基本的言论自由权 。
第19节
人人有权享有见解和言论自由; 这项权利包括自由坚持自己的信仰的自由,以及以任何方式,不分国界寻求,接受和传播信息和思想的自由。
在本指南中,我们将通过6个步骤,在运行Ubuntu Server 18.04的实例(虚拟机)上,使用免费帐户(为期12个月)在Amazon Web Services (AWS)云基础架构中部署自己的基于Wireguard技术的免费* VPN服务 。 LTS 。
我试图使本演练对远离IT的人们尽可能友好。 唯一需要的是坚持不懈地重复下面描述的步骤。
注意事项
阶段
- AWS免费账户注册
- 创建AWS实例
- 连接到AWS实例
- 配置Wireguard
- 配置VPN客户端
- 验证VPN安装
有用的链接
1. AWS账户注册
要注册一个免费的AWS账户,您需要一个真实的电话号码和一张可支付的Visa或Mastercard信用卡。 我建议使用Yandex.Money或Qiwi钱包免费提供的虚拟卡。 为了检查卡的有效性,会在注册时扣除$ 1,然后将其退还。
1.1。 打开AWS管理控制台
您必须打开浏览器并转到: https : //aws.amazon.com/en/
点击“注册”按钮

1.2。 填写个人资料
填写数据,然后单击“继续”按钮

1.3。 填写联系方式
填写联系方式。

卡号,有效期和持卡人姓名。

1.5。 帐户验证
在此阶段,将确认电话号码,并直接从支付卡中扣除$ 1。 计算机屏幕上显示4位数字的代码,并在指定的电话上收到来自Amazon的呼叫。 在通话过程中,您必须拨打屏幕上显示的代码。

1.6。 选择关税计划。
选择-基本计划(免费)

1.7。 登录到管理控制台

1.8。 选择数据中心位置

1.8.1。 速度测试
在选择数据中心之前,建议通过https://speedtest.net测试访问最近的数据中心的速度,在我的位置,以下结果如下:
伦敦的数据中心显示了最快的速度结果。 因此,我选择了它进行进一步的自定义。
2.创建一个AWS实例
2.1创建虚拟机(实例)
2.1.0 启动创建实例演练
2.1.0.1。 转到实例启动页面

2.1.0.2。 启动创建实例演练

2.1.0.3。 选择实例操作系统类型

2.1.1。 选择实例类型
默认情况下,选中t2.micro实例,我们需要它,只需单击Next按钮:Configure Instance Detalis

2.1.2。 配置实例参数
将来,我们将永久性公共IP连接到我们的实例,因此在此阶段,我们将关闭公共IP的自动分配,然后单击下一步:添加存储。

2.1.3。 存储连接
指定“硬盘”的大小。 16 GB足以满足我们的目的,然后单击“ 下一步”按钮:添加标签

2.1.4。 标签定制
如果我们创建了多个实例,则可以按标签对它们进行分组,以方便管理。 在这种情况下,此功能是多余的,请立即单击“ 下一步”按钮:配置安全性

2.1.5。 港口开放
此时,我们通过打开所需的端口来配置防火墙。 开放端口集称为安全组。 我们需要创建一个新的安全组,为其命名,描述,并添加UDP端口(自定义UDP规则),在“ Rort Range”字段中,您需要分配动态端口范围49152–65535中的端口号。 在这种情况下,我选择端口号54321。

填写必要的数据后,单击“ 查看并启动”按钮
2.1.6。 所有实例设置概述
在此页面上,概述了实例的所有设置,检查所有设置是否正确,然后单击“ 启动”按钮

2.1.7。 创建密码
接下来是一个对话框,该对话框提供创建或添加现有SSH密钥的功能,稍后我们将使用该密钥远程连接到我们的实例。 我们选择“创建新密钥对”选项来创建新密钥。 设置其名称,然后单击“ 下载密钥对”按钮以下载创建的密钥。 将它们保存在本地计算机磁盘上的安全位置。 下载后-单击启动实例按钮

2.1.7.1。 保存密码
这里显示了保存上一步创建的密钥的步骤。 单击“ 下载密钥对”按钮后,该密钥将另存为扩展名为* .pem的证书文件。 在这种情况下,我给它起了名字wireguard-awskey.pem

2.1.8。 实例创建结果概述
接下来,我们将看到一条有关成功启动刚刚创建的实例的消息。 我们可以通过单击“ 查看实例”按钮转到实例列表

2.2。 创建一个外部IP地址
2.2.1。 开始创建外部IP
接下来,我们需要创建一个永久的外部IP地址,通过该地址我们将连接到我们的VPN服务器。 为此,请在屏幕左侧的导航面板中,从“ 网络和特殊性”类别中选择“ 弹性IP”项,然后单击“ 分配新地址”按钮

2.2.2。 配置外部IP创建
在下一步中,我们需要启用Amazon pool选项(默认情况下启用),然后单击Allocate按钮

2.2.3。 创建外部IP地址的结果概述
下一个屏幕将显示我们收到的外部IP地址。 建议记住它,最好记下来。 在进一步设置和使用VPN服务器的过程中,它将一次又一次地派上用场。 在本指南中,我以IP地址4.3.2.1为例。 如何写地址,点击关闭按钮

2.2.4。 外部IP地址列表
接下来,我们打开一个列表,列出我们的永久公共IP地址(弹性IP)。

2.2.5。 分配外部IP实例
在此列表中,我们选择接收到的IP地址,然后按鼠标右键以弹出一个下拉菜单。 在其中,选择“ 关联地址”项以将其分配给先前创建的实例。

2.2.6。 配置外部IP分配
在下一步中,从下拉列表中选择我们的实例,然后单击“ 关联”按钮

2.2.7。 外部IP分配结果概述
之后,我们可以看到我们的实例及其私有IP地址与我们的永久公共IP地址绑定在一起。

现在,我们可以从外部通过SSH从计算机连接到我们新创建的实例。
3.连接到AWS实例
SSH是用于远程控制计算机设备的安全协议。
3.1。 Windows计算机的SSH连接
要连接Windows计算机,必须首先下载并安装Putty程序。
3.1.1。 导入腻子的私钥
3.1.1.1。 安装Putty之后,您必须运行随附的PuTTYgen实用程序,以PEM格式将证书密钥导入适合于Putty的格式。 为此,请在顶部菜单中选择“ 转换”->“导入密钥 ”

接下来,选择我们先前在步骤2.1.7.1中保存的密钥,在本例中,其名称为wireguard-awskey.pem

3.1.1.3。 设置关键导入选项
在此步骤中,我们需要为此键指定一个注释(描述),并设置密码及其安全性确认。 每次您连接时都将要求它。 因此,我们使用密码保护密钥,以防不当使用。 您无法设置密码,但是如果密钥落入错误的人手中,密码的安全性就会降低。 单击保存私钥按钮后

3.1.1.4。 保存导入的密钥
保存文件对话框打开,我们将私钥另存为扩展名为.ppk
的文件,适用于Putty 。
指定密钥的名称(在本例中为wireguard-awskey.ppk
),然后单击“ 保存”按钮。

3.1.2。 在Putty中创建和配置连接
3.1.2.1。 建立连接
打开Putty程序,选择Session类别(默认情况下处于打开状态),然后在步骤2.2.3中收到的Host Name字段中输入服务器的公共IP地址。 在“ 保存的会话”字段中,为我们的连接输入一个任意名称(在我的情况下为wireguard-aws-london ),然后单击“ 保存”按钮以保存我们所做的更改。

3.1.2.2。 用户自动登录设置
在“ 连接”类别中,进一步选择“ 数据”子类别,然后在“ 自动登录用户名”字段中输入ubuntu用户名-这是Ubuntu的标准AWS实例用户。

3.1.2.3。 选择用于SSH连接的私钥
然后,我们转到“ 连接/ SSH / 身份 验证”子类别,然后在“ 用于身份验证的私钥文件”字段旁边,单击“ 浏览...”按钮以选择带有密钥证书的文件。

3.1.2.4。 打开导入的密钥
我们指出了我们先前在步骤3.1.1.4中导入的密钥,在本例中为wireguard-awskey.ppk文件 ,然后单击“ 打开”按钮。

3.1.2.5。 保存设置并开始连接
返回“ 会话类别”页面,再次单击“ 保存”按钮以保存我们先前在先前步骤(3.1.2.2-3.1.2.4)中所做的更改。 然后,我们按“ 打开”按钮以打开我们创建和配置的远程SSH连接。

3.1.2.7。 配置主机之间的信任
在下一步中,即您首次尝试连接时,我们会收到警告,我们尚未在两台计算机之间配置信任关系,并询问是否信任远程计算机。 我们单击是 ,从而将其添加到受信任主机列表。

3.1.2.8。 输入密码以访问密钥
此后,如果您在步骤3.1.1.3的较早版本中安装了密钥,则将打开终端窗口,在该窗口中要求输入密钥的密码。 输入密码时,屏幕上没有任何动作。 如果输入有误,可以使用Backspace键。

3.1.2.9。 成功连接后的欢迎消息
成功输入密码后,终端中将显示欢迎文本,通知我们远程系统已准备好执行我们的命令。

4.配置Wireguard服务器
可以在存储库中找到使用以下描述的脚本安装和使用Wireguard的最新说明: https : //github.com/isystem-io/wireguard-aws
4.1。 安装Wireguard
在终端中,输入以下命令(您可以将其复制到剪贴板,然后通过右键单击将其粘贴到终端中):
4.1.1。 储存库克隆
我们使用Wireguard安装脚本克隆存储库
git clone https://github.com/pprometey/wireguard_aws.git wireguard_aws
4.1.2。 转到脚本目录
转到包含克隆存储库的目录
cd wireguard_aws
4.1.3运行初始化脚本
以管理员身份(root用户)运行Wireguard安装脚本
sudo ./initial.sh
在安装过程中,系统将提示您输入某些数据,以配置Wireguard
4.1.3.1。 输入连接点
输入外部IP地址并打开Wireguard服务器的端口。 我们在步骤2.2.3中获得了服务器的外部IP地址,并在步骤2.1.5中打开了端口。 我们一起指定它们, 4.3.2.1:54321
冒号4.3.2.1:54321
,例如4.3.2.1:54321
,然后按Enter
输出示例:
Enter the endpoint (external ip and port) in format [ipv4:port] (eg 4.3.2.1:54321): 4.3.2.1:54321
4.1.3.2。 输入内部IP地址
在安全的VPN子网中输入Wireguard服务器的IP地址,如果您不知道它是什么,只需按Enter即可设置默认值( 10.50.0.1
)
输出示例:
Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):
4.1.3.3。 指定DNS服务器
输入DNS服务器的IP地址,或直接按Enter将默认值设置为1.1.1.1
(Cloudflare公共DNS)
输出示例:
Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):
4.1.3.4。 指定WAN接口
接下来,输入将在VPN的内部网络接口上侦听的外部网络接口的名称。 只需按Enter即可设置AWS的默认值( eth0
)
输出示例:
Enter the name of the WAN network interface ([ENTER] set to default: eth0):
4.1.3.5。 客户姓名
输入VPN用户的名称。 事实是,除非添加了至少一个客户端,否则Wireguard VPN服务器将无法启动。 在这种情况下,我输入名称Alex@mobile
输出示例:
Enter VPN user name: Alex@mobile
之后,应该在屏幕上显示带有新添加客户端配置的QR码,必须使用Android或iOS上的Wireguard移动客户端读取QR码以对其进行配置。 此外,在手动配置客户端的情况下,配置文件的文本也会显示在QR码下方。 下面将描述如何执行此操作。

4.2。 添加新的VPN用户
要添加新用户,必须在终端中运行add-client.sh
脚本
sudo ./add-client.sh
脚本要求输入用户名:
输出示例:
Enter VPN user name:
另外,该名称可以作为脚本参数(在本例中为Alex@mobile
)传递给用户:
sudo ./add-client.sh Alex@mobile
执行脚本后,在路径为/etc/wireguard/clients/{}
的客户端名称目录中,将使用客户端配置/etc/wireguard/clients/{}
CustomerName►.conf)创建一个文件,并显示在终端屏幕上用于设置移动客户端的QR码和配置文件的内容。
4.2.1。 用户配置文件
您可以使用cat
在屏幕上显示.conf文件的内容,以进行手动客户端配置。
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf
执行结果:
[Interface] PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit+jbzT5cshNUi8zlM= Address = 10.50.0.2/32 DNS = 1.1.1.1 [Peer] PublicKey = mLnd+mul15U0EP6jCH5MRhIAjsfKYuIU/j5ml8Z2SEk= PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc= AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = 4.3.2.1:54321
客户端配置文件说明:
[Interface] PrivateKey = Address = IP DNS = [Peer] PublicKey = PresharedKey = AllowedIPs = ( - 0.0.0.0/0, ::/0) Endpoint = IP
4.2.2。 QR客户端配置代码
您可以使用qrencode -t ansiutf8
在终端屏幕上显示先前创建的客户端的配置代码的QR码(在此示例中,使用名为Alex @ mobile的客户端):
sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8
5.配置VPN客户端
5.1。 Android Mobile客户端设置
可以从官方GooglePlay商店安装 Android的官方Wireguard客户端
之后,您需要通过读取带有客户端配置的QR码来导入配置(请参阅第4.2.2节),并为其命名:

成功导入配置后,您可以启用VPN隧道。 关于成功的连接将在Android系统面板中显示密钥的隐藏状态

5.2。 Windows客户端设置
最初,您需要下载并安装Windows的TunSafe-这是Windows的Wireguard客户端。
5.2.1。 创建要导入的配置文件
右键单击以在桌面上创建一个文本文件。

5.2.2。 从服务器复制配置文件的内容
然后,我们返回到Putty终端并显示所需用户的配置文件的内容,如步骤4.2.1所述。
接下来,使用鼠标右键在Putty终端中选择配置文本;选择完成后,它将自动复制到剪贴板。

5.2.3。 将配置复制到本地配置文件
该字段返回到我们之前在桌面上创建的文本文件,并将配置文本从剪贴板粘贴到其中。

5.2.4。 保存本地配置文件
我们以扩展名.conf保存文件(在这种情况下,名称为london.conf
)

5.2.5。 导入本地配置文件
接下来,您需要将配置文件导入TunSafe程序。

5.2.6。 建立VPN连接
选择此配置文件,然后单击“ 连接”按钮进行连接 。

6.检查连接成功
要检查通过VPN隧道的连接是否成功,您需要打开浏览器并转到站点https://2ip.ua/ru/

显示的IP地址应该与我们在步骤2.2.3中收到的IP地址匹配。
如果是这样,则说明VPN隧道运行正常。
在Linux的终端上,您可以通过输入以下命令来验证IP地址:
curl http://zx2c4.com/ip
如果您在哈萨克斯坦,也可以去色情中心。