二、生成证书
1、准备:
# cp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn
# cp -r /usr/share/easy-rsa/ /etc/openvpn
# cp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars
2、初始化pki结构
#cd /etc/openvpn/easy-rsa/3.0
# ./easyrsa init-pki
3、创建ca 密码 (注意:cn那么需要记住*)
# ./easyrsa build-ca
注:此处输入两次密码, 一定要记住^_^, Common Name可以随便填写一个容易区分的信息。
4、创建Diffie-Hellman,确保key穿越不安全网络
`# ./easyrsa gen-dh`
5、生成防攻击key文件
`openvpn --genkey --secret ta.key`
6、创建服务器证书
./easyrsa gen-req vpnserver nopass
注:此处如果不指定nopass参数, 则需要创建服务器证书密码。
7、签约服务端证书:
`# ./easyrsa sign server vpnserver`
注:输入yes签发证书, 然后输入上面设置的ca证书,如果忘了,则只能重新来过了。。。
8、生成客户端证书:
`# ./easyrsa build-client-full client001`
输入两次client密码, 并输入ca密码。此处设置的密码在vpn连接时会用到。
三、服务器端配置
1、将服务器证书整理到一起(此步为了配置方便, 可以不做)
# cd /etc/openvpn/
# mkdir pki
# cd pki
# cp ../easy-rsa/3.0/ta.key ./
# cp ../easy-rsa/3.0/pki/ca.crt ./
# cp ../easy-rsa/3.0/pki/dh.pem ./
# cp ../easy-rsa/3.0/pki/issued/vpnserver.crt ./
# cp ../easy-rsa/3.0/pki/private/vpnserver.key ./
2、配置server.conf
local 102.94.xx.xx(填写你的vps IP, 对于阿里云服务器,此项需注释**!!!**)
port 1194
proto udp
dev tun
ca /etc/openvpn/pki/ca.crt
cert /etc/openvpn/pki/server.crt
key /etc/openvpn/pki/server.key # This file should be kept secret
dh /etc/openvpn/pki/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
tls-auth /etc/openvpn/pki/ta.key 0
comp-lzo
max-clients 100
persist-key
persist-tun
status openvpn-status.log
verb 3
注:每个项目都会由介绍,openvpn提供的server.conf包含所配置的所有内容,我们只需要去掉前面的注释#,然后修改我们自己的有关配置。
3、将客户端所需证书整理到一起(可选)
# mkdir /etc/openvpn/client
# cd /etc/openvpn/client
# cp ../easy-rsa/3.0/ta.key ./
# cp ../easy-rsa/3.0/pki/ca.crt ./
# cp ../easy-rsa/3.0/pki/issued/client001.crt ./
# cp ../easy-rsa/3.0/pki/private/client001.key ./
4、配置转发功能
# echo 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf
# sysctl -p
5、配置防火墙
systemctl start firewalld.service
firewall-cmd --zone=public --list-all
firewall-cmd --add-service=openvpn --permanent
firewall-cmd --add-port=1194/udp --permanent
firewall-cmd --add-source=10.8.0.0 --permanent
firewall-cmd --query-source=10.8.0.0 --permanent
firewall-cmd --add-masquerade --permanent
firewall-cmd --query-masquerade --permanent
firewall-cmd --reload
6、在阿里云控制台安全组规则中,开放1194端口
7、启动openvpn
systemctl start openvpn@server
四、客户端配置
1、将上面的三个客户端文件下载到本地客户端电脑
ca.crt client001.crt client001.key ta.key这四个文件
2、从官网下载openvpn客户端进行安装
在安装目录找到simple-config,将其中的client.ovpn拷贝到simple-config同级的conf文件夹
把刚才下载的四个客户端文件也拷贝到conf文件夹
3、配置client.ovpn
client
dev tun
proto udp
remote 102.94.xx.xx 1194 //这里修改成自己的服务器 ip
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt //这里需要证书
cert client001.crt
key client001.key
tls-auth ta.key 1
comp-lzo
verb 3
1、启动报错(阿里云服务器)
按报错分析, 是找不到外网IP, 因为ECS里没有配置这个IP, 因此在openvpn的server.conf注释掉 ‘local 102.94.xx.xx’这项就可以了