1、运行环境
操作系统:CentOS Linux release 7.3
操作系统软件源:阿里源
操作用户: root
证书生成:EasyRSA 3.0.8
2、环境准备 关闭selinux安全策略
setenforce 0
3、更新源
yum -y update
5、安装epel扩展源 ,国内源不支持直接安装
yum -y install epel-release
5、安装依赖和工具
yum install -y openssh-server openssl openssl-devel lzo
6、安装openvpn
yum install -y openvpn openvpn-auth-ldap NetworkManager-openvpn
7、生成证书
下载EasyRSA https://github.com/OpenVPN/easy-rsa/releases
tar -xf EasyRSA-3.0.8.tgz #解压证书生成工具
cd EasyRSA-3.0.8/ #进入工具目录
./easyrsa init-pki #创建一个新的 PKI 和 CA
./easyrsa build-ca nopass #创建不需要密码的新CA
./easyrsa gen-req server nopass #创建不需要密码的服务器证书 此处server 为证书名字
./easyrsa sign server server # 此处第二个server 为上一步的证书名字
./easyrsa gen-dh #创建交换密钥
cp pki/dh.pem /etc/openvpn/
cp pki/ca.crt /etc/openvpn/
cp pki/issued/server.crt /etc/openvpn/
cp pki/private/server.key /etc/openvpn/
cp pki/crl.pem /etc/openvpn/ #将证书copy 到openvpn 目录
# 顺便把客户端证书生成
./easyrsa gen-req client nopass #创建不需要密码的客户端证书 此处client 为证书名字
./easyrsa sign client client # 此处第二个client 为上一步的证书名字
8、准备默认配置
cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn
9、生成ta.key
cd /etc/openvpn
openvpn --genkey --secret ./ta.key #生成ta.key
10、修改配置 vim /etc/openvpn/server.conf
# 主要修改项目
port 1194 #openvpn 客户端链接端口 可以自自己修改
dev tun #指定OpenVPN创建的通信隧道类型。 tun 将会创建一个路由IP隧道,tap 将会创建一个以太网隧道
ca ca.crt #证书配置,因证书生成已经复制到本目录
cert server.crt #证书配置,因证书生成已经复制到本目录
key server.key #证书配置,因证书生成已经复制到本目录
crl-verify crl.pem #证书配置,因证书copy 至本目录
dh dh.pem #证书配置,因证书生成已经已经复制到本目录
tls-auth ta.key 0 #证书配置,因证书生成在本目录
proto tcp # TCP 还是UDP 协议方式链接服务器可以根据自己情况来
server 10.8.0.0 255.255.0.0 # VPN所用网段,不能和内网冲突推荐默认
push "route 192.168.1.0 255.255.255.0" # 为安装OpenVPN的本机网段
配置文件释义可参考 https://www.bbsmax.com/A/B0zqenGGzv/
11、配置路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
12、配置iptables nat策略 需要和配置文件中 server 10.8.0.0 255.255.0.0 一致
iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -j MASQUERADE
另外记得在iptables 打开配置的端口
13、启用服务
systemctl enable openvpn@server.service
systemctl start openvpn@server.service
14、客户端配置
将生成的证书中 ca.crt、client.crt、client.key 、ta.key 四个证书文件copy 至客户端
15、客户端配置文件参考配置
client
dev tun
proto tcp #你配置 服务器提供的服务链接类型
remote “你的服务器地址” 1194 #1194为你配置的端口
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
verb 3