实例:aws+openvpn

aws主机为ubuntu 24.04 LTS。openvpn使用端口19,走TCP协议。

(本文内容主要参考 如何在Ubuntu22.04上设置和配置OpenVPN服务器 - 菜鸟教程

服务器端需要安装两个软件:openvpn和easy-rsa。

easy-rsa是用来生成各种密钥的,主要有五个文件:

ca.key——ca( ca 选项使用)

server.key——服务器私钥(服务器配置文件中 key 选项使用)

client.key——客户端私钥

server.crt——服务器公钥(服务器配置文件中 cert 选项使用)

client.crt——客户端公钥

ta.key——tls-crypt加密材料( tls-auth 选项使用)

还有一个dh.pem,由openvpn生成。


准备工作

使用ubuntu账户创建目录 ~/easy-rsa:

以上步骤采用符号链接,将 easy-rsa 的工作目录链接到 ubuntu 的家目录中,便于操作。


初始化

初始化完成后,会生成pki目录,里面将会存放后面步骤生成的各种证书、key。


进入 ~/easy-rsa,创建 vars文件,内容如下:

生成CA

命令会要求输入Common Name,默认为“Easy-RSA CA”。

命令执行后生成两个文件:

/home/ubuntu/easy-rsa/pki/ca.crt

/home/ubuntu/easy-rsa/pik/private/ca.key

这两个文件构成了证书颁发机构的公共和所有组件。

将ca.crt复制到/etc/openvpn/目录中。


制作服务器证书

生成两个文件:

/home/ubuntu/easy-rsa/pki/reqs/server.req

/home/ubuntu/easy-rsa/pki/private/server.key

req为证书请求文件,key为服务器私钥。

使用以下命令生成服务器证书:

命令执行后生成crt文件:

/home/ubuntu/easy-rsa/pki/issued/server.crt。

将server.crt和server.key复制到 /etc/openvpn/server目录中,以便openvpn服务启动时找到它们。


制作客户端证书和密钥对:

命令执行后生成以下两个有用文件:

/home/ubuntu/easy-rsa/pki/reqs/client1.req

/home/ubuntu/easy-rsa/pki/private/clinet1.key

/home/ubuntu/easy-rsa/pki/issued/client1.crt


制作加密材料 ta.key

然后将生成的ta.key文件复制到/etc/openvpn/server/目录下:


制作dh.pem


以上做完后基本上已经完成了材料制作。


配置服务器

创建服务器端配置文件 /etc/openvpn/server.conf,内容如下:

创建脚本 /etc/openvpn/iptables.rules ,内容如下:

此脚本用于启用服务器的nat功能。


配置客户端

客户端脚本文件 client.ovpn,内容如下: