OpenVPN是最广泛使用的VPN应用程序之一。它是许多专有VPN应用程序的核心,通过一些努力,您也可以使用它。安装OpenVPN相对简单,但配置选项可能有些复杂。在本文中,我将向您展示如何使用免费的亚马逊网络服务(AWS)弹性计算云(EC2)实例设置Linux VPN服务器作为您的Linux笔记本或台式机的OpenVPN服务器。我们还将向您展示如何在Linux客户端上设置一个“杀开关”,以防止不必要的流量通过您的ISP网络传输。
OpenVPN的身份验证方式
OpenVPN有两种处理身份验证的方法。静态加密方法最容易设置,但非常有限。我们将使用私钥基础设施(PKI)方法,利用Easy RSA脚本。PKI方法允许多个客户端连接,并采用更强大的加密来保护您的流量。
创建AWS实例
第一步:创建AWS账户
要开始,您需要创建一个AWS账户。在注册过程中,您需要提供信用卡信息,但您可以在一年内使用免费的微型实例。如果您的账户已超过一年,则无法享受免费额度。
第二步:登录并创建EC2实例
- 登录后,创建一个EC2实例。这个过程包含几个步骤:
- 命名实例:实例名称不会影响任何功能,只是方便您查找。
- 选择操作系统:选择Ubuntu 14.04。虽然可以在其他类型的Linux上构建OpenVPN服务器,但不同的发行版有不同的命令和文件存储位置,因此您可能需要修改我提供的命令以使其正常工作。
-
选择实例类型:我使用的是t2.micro实例。如果您在亚马逊账户的前12个月内使用,它是免费的,但每月限额为15GB,对于不打算下载种子的用户来说,这个额度足够了。到期后,每月大约需$8美元。
-
SSH连接:您需要通过SSH连接到该服务器进行配置。连接时,您需要使用密钥进行身份验证。您可以为此密钥命名,以便后续使用。给它一个容易记住的名称并下载。
-
启动实例:您的实例将启动并在不久后准备好进行首次登录。点击“继续到EC2控制台”按钮以继续设置服务器。
准备私钥
您需要准备在创建过程中下载的私钥。首先,将其从下载目录移动到更安全的位置。通常情况下,Linux和macOS上的密钥存放在~/.ssh/
目录中。
接下来,改变其权限以确保只有您(所有者)可以读取该密钥。由于这是私钥,因此应仅由所有者可读。尝试使用未正确保护的密钥登录时,将出现以下错误:
bash
$ ssh root
54.186.178.243 -i .ssh/amazon-openvpn.pem
确认更新
登录后,系统会提示您无需更新,但我建议您运行以下命令以确保所有软件都是最新的:
bash
$ sudo apt-get update
$ sudo apt-get upgrade
现在,您可以在AWS管理控制台中看到您的实例,并准备好安装OpenVPN。
为什么使用PKI而不是静态加密?
静态加密使用静态密钥,设置非常简单,但缺点是: - 只能有一个客户端:每次只能有一个客户端使用服务器。 - 密钥泄露风险:如果密钥被泄露,则可以解密所有流量,包括一些过去捕获的流量。
使用PKI允许多个客户端同时连接,每个客户端都有自己的密钥。服务器无需了解可能连接的客户端,只需要呈现由我们即将设置的OpenVPN CA签名的证书即可。
什么是证书颁发机构(CA)?
您可能在TLS网站证书的上下文中听说过这个术语。一般来说,证书在网页上下文中有两个主要功能: - 加密浏览器与Web服务器之间的流量。 - 确保浏览器连接到预期的网站。
创建自己的CA以签署OpenVPN客户端证书是一种控制谁可以连接到OpenVPN服务器的方法。您的服务器将仅信任由您即将创建的CA签署的客户端证书。
结论
通过本指南,您已经学习了如何在AWS上设置OpenVPN服务器。使用PKI方法不仅可以增强安全性,还可以为多个客户端提供支持。希望这篇文章对您有所帮助!