阿里云 centos 安装 openvpn
准备
$ yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel
$ yum install -y pkcs11-helper pkcs11-helper-devel
# 确认
$ rpm -qa lzolzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel
安装 openvpn 服务
# 下载(注意版本)
$ wget http://oss.aliyuncs.com/aliyunecs/openvpn-2.2.2.tar.gz
# 安装rpm-build软件,以提供rpmbuild命令
$ yum install rpm-build -y
# 使用 rpmbuild 将源码包编译成rpm包来进行安装
## 生成rpm /root/rpmbuild/RPMS/x86_64/openvpn-2.2.2-1.x86_64.rpm
$ rpmbuild -tb openvpn-2.2.2.tar.gz
# 安装
$ cd /root/rpmbuild/RPMS/x86_64
$ rpm -ivh openvpn-2.2.2-1.x86_64.rpm
配置 OpenVPN 服务(服务端)
# 初始化 PKI
$ cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0
# 修改证书环境(对证书使用无影响)
## export KEY_COUNTRY="CN"
## export KEY_PROVINCE="BJ"
## export KEY_CITY="BJ"
## export KEY_ORG="aliyun"
## export KEY_EMAIL=cjxia@isoftston.com
$ vi vars
# 清除并删除 keys 目录下的所有 key
$ ln -s openssl-1.0.0.cnf openssl.cnf
$ source ./vars
$ ./clean-all
# 生成服务端的证书
## 当前目录下生成 keys 目录,包含创建的证书
$ ./build-ca
# 生成服务端自定义名称的证书,这里将其命名为 server
## 生成过程中可以使用默认值
## keys 目录下生成 server.key server.crt server.csr
$ ./build-key-server server
# 创建客户端证书,这里将其命名为 client
## keys 目录下生成 client.key client.crt client.csr
$ ./build-key client
# 生成 Diffie Hellman 参数
## keys 目录下生成 dh 参数文件 dh1024.pem,用于客户端验证
$ ./build-dh
# 复制全部 key
$ cp -a keys/* /etc/openvpn/
# 复制 openvpn 服务端配置文件 server.conf 到 /etc/openvpn
$ cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/
# 配置 /etc/openvpn/server.conf
## local 0.0.0.0 # 公网IP,可用 0.0.0.0
## port 1194
## proto tcp # 监听协议
## dev tun # 采用路由隧道模式
## ca ca.crt
## cert aliyun.crt # 生成服务器端证书时用户自定义的名称
## key aliyun.key # 生成服务器端证书时用户自定义的名称
## dh dh1024.pem # 密钥交换协议文件
## server 10.8.0.0 255.255.255.0 # 给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
## ifconfig-pool-persist ipp.txt
## push "redirect-gateway def1 bypass-dhcp"
## push "dhcp-option DNS 8.8.8.8" # dhcp分配dns
## client-to-client # 开启客户端之间互相通信
## keepalive 10 120 # 存活时间,10秒ping一次,120秒未收到响应则视为断线
## cipher AES-128-CBC
## comp-lzo # 传输数据压缩
## user nobody
## group nobody
## persist-key
## persist-tun
## status /etc/openvpn/openvpn-status.log
## log /etc/openvpn/openvpn.log
## verb 3
$ cd /etc/openvpn
$ vi server.conf
# 打开路由转发
## 修改或写入 net.ipv4.ip_forward = 1
$ vi /etc/sysctl.conf
# 重新读取文件,使内核参数生效
$ sysctl -p
# 设置 nat
$ iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
$ iptables -vnL -t nat
# 开启 1194 端口
$ iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
$ iptables -A OUTPUT -p tcp --sport 1194 -j ACCEPT
# 开启 openvpn 服务
$ openvpn /etc/openvpn/server.conf &
# 查看
$ ss -nutl | grep 1194
配置 OpenVPN 服务(客户端)
# 下载 OpenVPN 客户端
## windows https://openvpn-2-0-1-rc1.updatestar.com/description/2.4.3
## mac ლ(^ω^ლ) ヾ(◍°∇°◍)ノ゙
## 全版本下载 https://www.techspot.com/downloads/5182-openvpn.html
# 下载服务端 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys 生成的 ca.crt client.csr client.key 到本地安装目录 config 下
# 复制安装目录下 sample-config/client.ovpn 到 config 目录
# 修改 config/client.ovpn
## client
## dev tun
## proto tcp
## remote 10.10.10.10 1194 # OpenVPN服务器的外网IP和端口,ip和域名都行
## resolv-retry infinite
## nobind
## persist-key
## persist-tun
## ca ca.crt
## cert client.crt
## key client.key
## cipher AES-128-CBC
## comp-lzo
## verb 3
# 启动
## 进入安装目录 bin,管理员执行 openvpn-gui.exe
openvpn 安装
工具参考
问题参考
TLS Error: TLS object -> incoming plaintext read error
说明
- 服务端版本为 2.2.2,客户端版本为2.4.3,服务端和客户端的 ciper 需同时设置为 AES-128-CBC