OpenVPN/检查清单指南

出自 ArchWiki

本文总结了 OpenVPN 所需的安装过程。有关详细的步骤,请参阅 OpenVPN

安装

安装 软件包 openvpneasy-rsa

准备数据

# easyrsa clean-all

生成证书

本文或本章节内容已过时。

原因:EasyRSA 3.0.7 中移除了将 pki/.rnd 用作 RANDFILE 的用法。(在 Talk:OpenVPN/Checklist guide 中讨论)
  • 为 CA 创建生成种子
# dd if=/dev/urandom of=pki/.rnd bs=256 count=1 iflag=fullblock
  • 创建“证书颁发机构”密钥
# easyrsa build-ca nopass
  • 为服务器创建证书和私钥
# easyrsa build-server-full <server-name> nopass
  • 为服务器创建 Diffie-Hellman pem 文件。
# easyrsa gen-dh
  • 为每个客户端创建证书。
# easyrsa build-client-full <client-name> nopass

所有证书都存储在 pki 目录中。如果您搞砸了,可以通过执行 easyrsa clean-all 重新开始

ca.crt 以及每个客户端各自的 crt 和 key 文件复制到客户端。

设置服务器

创建 /etc/openvpn/server/myvpnserver.conf,内容如下

/etc/openvpn/server/myvpnserver.conf
port <port>
proto tcp
dev tun0

ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/<server-name>.crt
key /etc/openvpn/easy-rsa/pki/private/<server-name>.key
dh /etc/openvpn/easy-rsa/pki/<your pem file>

server <desired base ip> 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3

log-append /var/log/openvpn
status /tmp/vpn.status 10

启动 并选择性地 启用 该服务。在本例中,它是 openvpn-server@myvpnserver.service

设置客户端

为每个客户端创建一个 .conf 文件,如下所示

/etc/openvpn/client/a-client-conf-file.conf
client
remote <server> <port>
dev tun0
proto tcp
resolv-retry infinite
nobind
persist-key
persist-tun
verb 2
ca ca.crt
cert <client crt file with full path>
key <client key file with full path>
comp-lzo

启动 并选择性地 启用 该服务。在本例中,单元是 openvpn-client@a-client-conf-file.service

故障排除

如果 openvpn 服务器可以作为 root 用户手动启动,但不能使用 systemd 启动,您可以尝试修复权限

# chown -R openvpn:network /etc/openvpn/*