OpenVPN是一款免费开源的VPN软件,用于安全访问企业内网。当建站时,通常将服务器ssh端口和网站后台放到内网,只允许通过VPN进行访问,只把网站所需最少的接口使用nginx代理到公网上,大大提高了服务器的安全性。由于OpenVPN免费开源,特别适合有建站需求的个人用户。
官网:Business VPN For Secure Networking ~| OpenVPN
源码:OpenVPN/openvpn: OpenVPN is an open source VPN daemon (github.com)
下载地址:Community Downloads - Open Source VPN ~| OpenVPN
服务:/usr/lib/systemd/system/openvpn.service
配置文件:/etc/openvpn
文档:/usr/share/doc/openvpn
示例配置文件:/usr/share/doc/openvpn/examples/sample-config-files
本文以ubuntu安装OpenVPN为例介绍,其他Linux发行版类似。
1、安装OpenVPN并为easy-rsa创建软链接,方便后续执行命令。
sudo apt update
sudo apt install openvpn easy-rsa
sudo ln -s /usr/share/easy-rsa/easyrsa /usr/bin/easyrsa2、创建临时目录,用于生成证书。
cd ~
mkdir openvpn
cd openvpn3、生成CA证书和CA证书密钥。
cd ~/openvpn
easyrsa init-pki # 建立一个空的pki结构,生成一系列的文件和目录
easyrsa build-ca # 创建CA证书,输入密码和CA文件名称下面是这几个命令生成的文件:
CA证书:/openvpn/pki/ca.crt
CA证书密钥:/openvpn/pki/private/ca.key

4、生成服务端证书和服务端密钥。
cd ~/openvpn
easyrsa gen-req server nopass # 创建服务端证书
easyrsa sign server server # 给服务端证书签名,需要输入CA证书密码
easyrsa gen-dh # 创建Diffie-Hellman下面是这几个命令生成的文件:
服务端证书:/openvpn/pki/issued/server.crt
服务端密钥:/openvpn/pki/private/server.key
dh文件:/openvpn/pki/dh.pem

5、生成客户端证书请求文件和客户端密钥。
cd ~/openvpn
easyrsa gen-req test_user # 需要输入客户端证书密码和Common Name
easyrsa sign client test_user # 签名,需要输入CA证书密码下面是这几个命令生成的文件:
客户端证书:/openvpn/pki/issued/test_user.crt
客户端密钥:/openvpn/pki/private/test_user.key

6、把证书拷贝到OpenVPN目录下。
cd /etc/openvpn
sudo mkdir keys
cd keys
sudo cp ~/openvpn/pki/ca.crt ./
sudo cp ~/openvpn/pki/private/server.key ./
sudo cp ~/openvpn/pki/issued/server.crt ./
sudo cp ~/openvpn/pki/dh.pem ./
7、复制并修改OpenVPN服务端配置。
执行命令
cd /usr/share/doc/openvpn/examples/sample-config-files
sudo cp client.conf /etc/openvpn/client
sudo cp server.conf /etc/openvpn/server
sudo cp firewall.sh /etc/openvpn/
sudo cp firewall.sh /etc/openvpn/
cd /etc/openvpn/
8、编辑服务端配置文件。
cd /etc/openvpn/server
sudo vim server.conf主要修改以下几个配置:
port 1194
proto tcp
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /ect/openvpn/keys/server.key
dh /etc/openvpn/keys/dh.pem9、如果有防火墙,请放开服务器1194 TCP端口。
10、启动OpenVPN服务并设置为开机自启动。
sudo systemctl start openvpn
sudo systemctl enable openvpn1、从服务器上下载CA证书、客户端证书和密钥到这个文件夹:C:\Users\test_user\OpenVPN\keys。
~/openvpn/pki/ca.crt
~/openvpn/pki/issued/test_user.crt
~/openvpn/pki/private/test_user.key2、下载OpenVPN客户端Windows版。
下载地址:https://openvpn.net/community/

3、修改客户端配置。
编辑文件C:\Users\liteng\OpenVPN\config\client.ovpn,主要修改以下几个配置:
proto tcp
remote 192.168.202.1 1941
ca C:\\Users\\test_user\\OpenVPN\\keys\\ca.crt
cert C:\\Users\\test_user\\OpenVPN\\keys\\test_user.crt
key C:\\Users\\test_user\\OpenVPN\\keys\\test_user.key4、双击启动OpenVPN客户端即可,日志里会显示服务器VPN代理的IP地址。

1、/usr/share/doc/openvpn/examples/sample-config-files中不存在任何文件。
点击这里下载sample-config-files.zip。