@perfiffer
This commit is contained in:
Xingyu Wang 2021-08-20 12:35:14 +08:00
parent 4364900f10
commit 2443cc5dfd

View File

@ -3,24 +3,26 @@
[#]: author: "D. Greg Scott https://opensource.com/users/greg-scott"
[#]: collector: "lujun9972"
[#]: translator: "perfiffer"
[#]: reviewer: " "
[#]: reviewer: "wxy"
[#]: publisher: " "
[#]: url: " "
在你的个人 Linux 电脑上安装 `0penVPN`
如何在免费 WiFi 中保护隐私(二)
======
安装完 “虚拟专用网络” 服务器,下一步就是安装和配置 0penVPN。
![Open ethernet cords.][1]
0penVPN 在两点之间创建一个加密通道,阻止第三方访问你的网络流量数据。通过设置你的 “虚拟专用网络” 服务,你可以成为你自己的 “虚拟专用网络” 服务商。许多流行的 “虚拟专用网络” 服务都使用 0penVPN所以当你可以掌控自己的网络时为什么还要将你的网络连接绑定到特定的提供商呢
> 安装完服务器之后,下一步就是安装和配置 0penVPN。
本系列的[第一篇文章](https://linux.cn/article-13680-1.html)展示了如何安装和配置一台 Linux 电脑作为你的 0penVPN 服务器。同时也讲述了如何配置你的路由器以便你可以在外部网络连接到你的 VPN 服务器。
![](https://img.linux.net.cn/data/attachment/album/202108/20/123417yn554549p92ujt54.jpg)
0penVPN 在两点之间创建一个加密通道,阻止第三方访问你的网络流量数据。通过设置你的 “虚拟专用网络” 服务,你可以成为你自己的 “虚拟专用网络” 服务商。许多流行的 “虚拟专用网络” 服务都使用 [0penVPN][2],所以当你可以掌控自己的网络时,为什么还要将你的网络连接绑定到特定的提供商呢?
本系列的 [第一篇文章][3] 展示了如何安装和配置一台作为你的 0penVPN 服务器的 Linux 计算机。同时也讲述了如何配置你的路由器以便你可以在外部网络连接到你的服务器。
第二篇文章将演示根据 [0penVPN wiki][4] 给定的步骤安装一个 0penVPN 服务软件。
### 安装 0penVPN
首先,使用包管理器安装 0penVPN 和 `easy-rsa` 应用程序帮助你在服务器上设置身份验证。本例使用的是Fedora Linux如果你选择了不同的发行版请选用合适的命令。
首先,使用包管理器安装 0penVPN 和 `easy-rsa` 应用程序(帮助你在服务器上设置身份验证)。本例使用的是 Fedora Linux如果你选择了不同的发行版请选用合适的命令。
```
$ sudo dnf install openvpn easy-rsa
@ -32,7 +34,6 @@ $ sudo dnf install openvpn easy-rsa
* `/etc/openvpn/client`
* `/etc/openvpn/server`
如果这些目录在安装的过程中没有创建,请手动创建它们。
### 设置身份验证
@ -41,8 +42,7 @@ $ sudo dnf install openvpn easy-rsa
```
$ sudo mkdir /etc/openvpn/easy-rsa
$ sudo cp -rai /usr/share/easy-rsa/3/* \
/etc/openvpn/easy-rsa/
$ sudo cp -rai /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa/
```
身份验证很重要0penVPN 非常重视它。身份验证的理论是,如果 Alice 需要访问 Bob 公司内部的私人信息,那么 Bob 确保 Alice 真的是 Alice 就至关重要。同样的Alice 也必须确保 Bob 是真正的 Bob。我们称之为相互认证。
@ -53,29 +53,28 @@ $ sudo cp -rai /usr/share/easy-rsa/3/* \
* 你知道的
* 你是谁
选择有很多。0penVPN 安装使用如下:
* **Certificates:** 客户端和服务端都拥有的东西
* **Certificate password:** 人们都知道的东西
* **证书**客户端和服务端都拥有的东西
* **证书口令**:某人知道的东西
Alice 和 Bob 需要帮助彼此来验证身份。由于他们都相信 CathyCathy 承担了称为 <ruby>证书颁发机构<rt>certificate authority</rt></ruby>CA的角色。Cathy 证明 Alice 和 Bob 都是他们自己。因为 Alice 和 Bob 都信任 Cathy现在他们也相互信任了。
Alice 和 Bob 需要帮助彼此来验证身份。由于他们都相信 Cathy Cathy 承担了称为 **证书颁发机构** (CA) 的角色。Cathy 证明 Alice 和 Bob 都是他们自己。因为 Alice 和 Bob 都信任 Cathy现在他们也相互信任了
但是是什么让 Cathy 相信 Alice 和 Bob 是真的 Alice 和 BobCathy 在社区的声誉取决于如何正确处理这件事,因此如果她希望 Denielle、Evan、Fiona、Greg 和其他人也信任她,她就需要严格测试 Alice 和 Bob 的宣称内容。当 Alice 和 Bob 向 Cathy 证明了他们是真的 Alice 和 Bob 之后Cathy 将向 Alice 和 Bob 签署证书,让他们彼此和全世界分享
但是是什么让 Cathy 相信 Alice 和 Bob 是真的 Alice 和 BobCathy 在社区的声誉取决于如何正确处理这件事,因此如果她希望 DenielleEvanFionaGreg 和其他人也信任她,她就需要严格测试 Alice 和 Bob 的话。当 Alice 和 Bob 向 Cathy 证明了他们是真的 Alice 和 Bob 之后Cathy 将向 Alice 和 Bob 签署证书,让他们彼此和全世界分享。
Alice 和 Bob 如何知道是 Cathy 签署了证书,而不是某个人冒充她签发了证书?他们使用一项叫做**公钥加密技术:**
Alice 和 Bob 如何知道是 Cathy 签署了证书,而不是某个人冒充她签发了证书?他们使用一项叫做**公钥加密**的技术:
* 找到一种用一个密钥加密并用另一个密钥解密的加密算法。
* 将其中一个设为私钥,将另外一个设为公钥。
* Cathy 与全世界分享她的公钥和她签名的明文副本。
* Cathy 与全世界分享她的公钥和她签名的明文副本。
* Cathy 用她的私钥加密她的签名,任何人都可以用她分享的公钥解密。
* 如果 Cathy 的签名解密后与明文副本匹配Alice 和 Bob 就可以相信 Cathy 确实签署了它。
每次在线购买商品和服务时,使用的就是这种技术。
### 认证实现
0penVPN 的 [文档][5]建议在单独的系统上或者至少在 0penVPN 服务器的单独目录上设置 CA。该文档还建议分别从服务端和客户端生成各自的证书。因为这是一个简单的演示设置你可以使用 0penVPN 服务器设置 CA并将证书和密钥放入服务器上的指定目录中。
0penVPN 的 [文档][5] 建议在单独的系统上或者至少在 0penVPN 服务器的单独目录上设置 CA。该文档还建议分别从服务端和客户端生成各自的证书。因为这是一个简单的演示设置你可以使用 0penVPN 服务器设置 CA并将证书和密钥放入服务器上的指定目录中。
从服务端生成证书,并将证书拷贝到各个客户端,避免客户端再次设置。
@ -100,7 +99,7 @@ $ sudo /etc/openvpn/easy-rsa/easyrsa init-pki
$ sudo /etc/openvpn/easy-rsa/easyrsa gen-req OVPNserver2020 nopass
```
在此例中,`0VPNServer2020` 是你在本系列第一篇文章中为 0penVPN 服务器设置的主机名。
在此例中,`OVPNServer2020` 是你在本系列第一篇文章中为 0penVPN 服务器设置的主机名。
### 生成和签署证书
@ -111,7 +110,7 @@ $ sudo /etc/openvpn/easy-rsa/easyrsa gen-req OVPNserver2020 nopass
```
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
import-req /etc/openvpn/server/pki/reqs/OVPNserver2020.req OVPNserver2020
import-req /etc/openvpn/server/pki/reqs/OVPNserver2020.req OVPNserver2020
```
### 审查并签署请求
@ -121,7 +120,7 @@ import-req /etc/openvpn/server/pki/reqs/OVPNserver2020.req OVPNserver2020
```
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
show-req OVPNserver2020
show-req OVPNserver2020
```
以服务器身份签署请求:
@ -129,16 +128,16 @@ show-req OVPNserver2020
```
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
sign-req server OVPNserver2020
sign-req server OVPNserver2020
```
将服务器和 CA 证书的副本放在它们所属的位置,以便配置文件获取它们:
```
$ sudo cp /etc/openvpn/ca/pki/issued/OVPNserver2020.crt \
/etc/openvpn/server/pki/
/etc/openvpn/server/pki/
$ sudo cp /etc/openvpn/ca/pki/ca.crt \
/etc/openvpn/server/pki/
/etc/openvpn/server/pki/
```
接下来,生成 [Diffie-Hellman][6] 参数,以便客户端和服务器可以交换会话密钥:
@ -149,10 +148,11 @@ $ sudo /etc/openvpn/easy-rsa/easyrsa gen-dh
```
### 快完成了
本系列的下一篇文章将演示如何配置和启动你刚刚构建的 0penVPN 服务器。
* * *
本文的部分内容改编自 D. Greg Scott 的博客,并经许可重新发布。
--------------------------------------------------------------------------------
via: https://opensource.com/article/21/7/openvpn-router
@ -160,7 +160,7 @@ via: https://opensource.com/article/21/7/openvpn-router
作者:[D. Greg Scott][a]
选题:[lujun9972][b]
译者:[perfiffer](https://github.com/perfiffer)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -168,7 +168,7 @@ via: https://opensource.com/article/21/7/openvpn-router
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/openwires_fromRHT_520_0612LL.png?itok=PqZi55Ab (Open ethernet cords.)
[2]: https://openvpn.net/
[3]: https://opensource.com/article/21/7/vpn-openvpn-part-1
[3]: https://linux.cn/article-13680-1.html
[4]: https://community.openvpn.net/openvpn/wiki
[5]: https://openvpn.net/community-resources/
[6]: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange