文章目录
展开OpenVPN 服务端搭建部署
安装配置证书软件
0 ✓ 15:02:37 root@gouwo,172.25.0.1:~ # yum -y install easy-rsa
0 ✓ 15:02:37 root@gouwo,172.25.0.1:~ # mkdir /opt/easy-rsa
0 ✓ 15:02:40 root@gouwo,172.25.0.1:~ # cd /opt/easy-rsa
0 ✓ 15:02:40 root@gouwo,172.25.0.1:/opt/easy-rsa # rpm -ql easy-rsa #查看已安装的RPM包中名为 easy-rsa 的文件列表
0 ✓ 15:02:41 root@gouwo,172.25.0.1:/opt/easy-rsa # cp -a /usr/share/easy-rsa/3.0.8/* .
0 ✓ 15:02:41 root@gouwo,172.25.0.1:/opt/easy-rsa # cp -a /usr/share/doc/easy-rsa-3.0.8/vars.example ./vars
0 ✓ 15:02:44 root@gouwo,172.25.0.1:/opt/easy-rsa # vim vars
if [ -z "$EASYRSA_CALLER" ]; then
echo "You appear to be sourcing an Easy-RSA
'vars' file." >&2
echo "This is no longer necessary and is
disallowed. See the section called" >&2
echo "'How to use this file' near the top
comments for more details." >&2
return 1
fi
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "Beijing"
set_var EASYRSA_REQ_CITY "Shanghai"
set_var EASYRSA_REQ_ORG "koten"
set_var EASYRSA_REQ_EMAIL "888888@qq.comm"
set_var EASYRSA_NS_SUPPORT "yes"
创建证书
0 ✓ 15:02:37 root@gouwo,172.25.0.1:~ # yum -y install easy-rsa
0 ✓ 15:02:37 root@gouwo,172.25.0.1:~ # mkdir /opt/easy-rsa
0 ✓ 15:02:40 root@gouwo,172.25.0.1:~ # cd /opt/easy-rsa
0 ✓ 15:02:40 root@gouwo,172.25.0.1:/opt/easy-rsa # rpm -ql easy-rsa #查看已安装的RPM包中名为 easy-rsa 的文件列表
0 ✓ 15:02:41 root@gouwo,172.25.0.1:/opt/easy-rsa # cp -a /usr/share/easy-rsa/3.0.8/* .
0 ✓ 15:02:41 root@gouwo,172.25.0.1:/opt/easy-rsa # cp -a /usr/share/doc/easy-rsa-3.0.8/vars.example ./vars
0 ✓ 15:02:44 root@gouwo,172.25.0.1:/opt/easy-rsa # vim vars
if [ -z "$EASYRSA_CALLER" ]; then
echo "You appear to be sourcing an Easy-RSA
'vars' file." >&2
echo "This is no longer necessary and is
disallowed. See the section called" >&2
echo "'How to use this file' near the top
comments for more details." >&2
return 1
fi
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "Beijing"
set_var EASYRSA_REQ_CITY "Shanghai"
set_var EASYRSA_REQ_ORG "koten"
set_var EASYRSA_REQ_EMAIL "888888@qq.comm"
set_var EASYRSA_NS_SUPPORT "yes"
创建证书
代码语言:javascript
复制
#1、初始化,在当前目录创建PKI目录,用于存储整数
0 ✓ 15:03:58 root@gouwo,172.25.0.1:/opt/easy-rsa # ./easyrsa init-pki
#2、创建根证书,会提示设置密码,用于ca对之后生成的server和client证书签名时使用,其他提示内容直接回车即可
0 ✓ 15:04:11 root@gouwo,172.25.0.1:/opt/easy-rsa # ./easyrsa build-ca
Enter New CA Key Passphrase: #注意密码不能太短,我这边设置的是六位数
Re-Enter New CA Key Passphrase:
#3、创建server端证书和私钥文件,nopass表示不加密私钥文件,提示内容直接回车即可
0 ✓ 15:04:28 root@gouwo,172.25.0.1:/opt/easy-rsa # ./easyrsa gen-req server nopass
#4、给server端证书签名,提示内容需要输入yes和创建ca根证书时候的密码
0 ✓ 15:04:37 root@gouwo,172.25.0.1:/opt/easy-rsa # ./easyrsa sign server server
#5、创建Diffie-Hellman文件,密钥交换时的Diffie-Hellman算法
0 ✓ 15:04:52 root@gouwo,172.25.0.1:/opt/easy-rsa # ./easyrsa gen-dh
#6、创建client端的证书和私钥文件,nopass表示不加密私钥文件,提示内容直接回车即可
0 ✓ 15:05:24 root@gouwo,172.25.0.1:/opt/easy-rsa # ./easyrsa gen-req client nopass
#7、给client端证书前面,提示内容输入yes和创建ca根证书时候的密码
0 ✓ 15:05:31 root@gouwo,172.25.0.1:/opt/easy-rsa # ./easyrsa sign client client
#8、检查是否有ca根证书、客户端服务端证书、客户端服务端私钥
0 ✓ 15:05:44 root@gouwo,172.25.0.1:/opt/easy-rsa # tree
.
|-- easyrsa # 管理命令
|-- openssl-easyrsa.cnf
|-- pki
| |-- ca.crt #ca根证书,服务端与客户端都需要用
| |-- certs_by_serial
| | |-- 802D90369110ABF39909AB659CE0C72C.pem
| | `-- E14A36BE8008769975F1747FB0DCB712.pem
| |-- dh.pem #认证算法 服务端
| |-- index.txt
| |-- index.txt.attr
| |-- index.txt.attr.old
| |-- index.txt.old
| |-- issued
| | |-- client.crt #客户端证书
| | `-- server.crt #服务端证书
| |-- openssl-easyrsa.cnf
| |-- private
| | |-- ca.key
| | |-- client.key #客户端私钥
| | `-- server.key #服务端私钥
| |-- renewed
| | |-- certs_by_serial
| | |-- private_by_serial
| | `-- reqs_by_serial
| |-- reqs
| | |-- client.req
| | `-- server.req
| |-- revoked
| | |-- certs_by_serial
| | |-- private_by_serial
| | `-- reqs_by_serial
| |-- safessl-easyrsa.cnf
| |-- serial
| `-- serial.old
|-- vars
`-- x509-types
|-- ca
|-- client
|-- code-signing
|-- COMMON
|-- email
|-- kdc
|-- server
`-- serverClient
安装openvpn并写入服务端配置文件
## 安装openvpn
0 ✓ 15:05:48 root@gouwo,172.25.0.1:/opt/easy-rsa # yum install -y openvpn
## 修改配置文件
0 ✓ 15:07:05 root@gouwo,172.25.0.1:/opt/easy-rsa # cat /etc/openvpn/server.conf
port 1194 #端口
proto udp #协议
dev tun #采用路由隧道模式
ca /opt/easy-rsa/pki/ca.crt #ca证书的位置
cert /opt/easy-rsa/pki/issued/server.crt #服务端公钥的位置
key /opt/easy-rsa/pki/private/server.key #服务端私钥的位置
dh /opt/easy-rsa/pki/dh.pem #证书校验算法
server 10.8.0.0 255.255.255.0 #给客户端分配的地址池
push "route 10.0.16.16 255.255.252.0" #允许客户端访问的内网网段
ifconfig-pool-persist ipp.txt #地址池记录文件位置,未来让openvpn客户端固定ip地址使用的
keepalive 10 120 #存活时间,10秒ping一次,120秒如果未收到响应则视为短线
max-clients 100 #最多允许100个客户端连接
status openvpn-status.log #日志位置,记录openvpn状态
log /var/log/openvpn.log #openvpn日志记录位置
verb 3 #openvpn版本
client-to-client #允许客户端与客户端之间通信
persist-key #通过keepalive检测超时后,重新启动VPN,不重新读取
persist-tun #检测超时后,重新启动VPN,一直保持tun是linkup的,否则网络会先linkdown然后再linkup
duplicate-cn #客户端密钥(证书和私钥)是否可以重复
comp-lzo #启动lzo数据压缩格式
启动并检查端口
## 启动
0 ✓ 15:08:14 root@gouwo,172.25.0.1:/opt/easy-rsa # systemctl restart openvpn@server
## 加入开机自启
0 ✓ 15:08:37 root@gouwo,172.25.0.1:/opt/easy-rsa # systemctl enable openvpn@server
Created symlink from /etc/systemd/system/multi-user.target.wants/openvpn@server.service to /usr/lib/systemd/system/openvpn@.service.
## 查看网段
0 ✓ 15:08:42 root@gouwo,172.25.0.1:/opt/easy-rsa # ip a s tun0
74: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::c9b5:21e6:24ee:bc34/64 scope link flags 800
valid_lft forever preferred_lft forever
## 检测端口
0 ✓ 16:50:36 root@gouwo,172.25.0.1:/etc/nginx/ssl # ss -lntup|grep 1194
udp UNCONN 0 0 *:1194 *:* users:(("openvpn",pid=12176,fd=6))
## 查看进程
0 ✓ 15:09:04 root@gouwo,172.25.0.1:/opt/easy-rsa # ps -ef | grep openvpn
root 24895 1 0 15:08 ? 00:00:00 /usr/sbin/openvpn --cd /etc/openvpn/ --config server.conf
root 25371 13539 0 15:09 pts/0 00:00:00 grep --color=auto openvpn
OpenVPN客户端搭建部署(windows端)
安装OpenVPN软件
## 安装openvpn
0 ✓ 15:05:48 root@gouwo,172.25.0.1:/opt/easy-rsa # yum install -y openvpn
## 修改配置文件
0 ✓ 15:07:05 root@gouwo,172.25.0.1:/opt/easy-rsa # cat /etc/openvpn/server.conf
port 1194 #端口
proto udp #协议
dev tun #采用路由隧道模式
ca /opt/easy-rsa/pki/ca.crt #ca证书的位置
cert /opt/easy-rsa/pki/issued/server.crt #服务端公钥的位置
key /opt/easy-rsa/pki/private/server.key #服务端私钥的位置
dh /opt/easy-rsa/pki/dh.pem #证书校验算法
server 10.8.0.0 255.255.255.0 #给客户端分配的地址池
push "route 10.0.16.16 255.255.252.0" #允许客户端访问的内网网段
ifconfig-pool-persist ipp.txt #地址池记录文件位置,未来让openvpn客户端固定ip地址使用的
keepalive 10 120 #存活时间,10秒ping一次,120秒如果未收到响应则视为短线
max-clients 100 #最多允许100个客户端连接
status openvpn-status.log #日志位置,记录openvpn状态
log /var/log/openvpn.log #openvpn日志记录位置
verb 3 #openvpn版本
client-to-client #允许客户端与客户端之间通信
persist-key #通过keepalive检测超时后,重新启动VPN,不重新读取
persist-tun #检测超时后,重新启动VPN,一直保持tun是linkup的,否则网络会先linkdown然后再linkup
duplicate-cn #客户端密钥(证书和私钥)是否可以重复
comp-lzo #启动lzo数据压缩格式
## 启动
0 ✓ 15:08:14 root@gouwo,172.25.0.1:/opt/easy-rsa # systemctl restart openvpn@server
## 加入开机自启
0 ✓ 15:08:37 root@gouwo,172.25.0.1:/opt/easy-rsa # systemctl enable openvpn@server
Created symlink from /etc/systemd/system/multi-user.target.wants/openvpn@server.service to /usr/lib/systemd/system/openvpn@.service.
## 查看网段
0 ✓ 15:08:42 root@gouwo,172.25.0.1:/opt/easy-rsa # ip a s tun0
74: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::c9b5:21e6:24ee:bc34/64 scope link flags 800
valid_lft forever preferred_lft forever
## 检测端口
0 ✓ 16:50:36 root@gouwo,172.25.0.1:/etc/nginx/ssl # ss -lntup|grep 1194
udp UNCONN 0 0 *:1194 *:* users:(("openvpn",pid=12176,fd=6))
## 查看进程
0 ✓ 15:09:04 root@gouwo,172.25.0.1:/opt/easy-rsa # ps -ef | grep openvpn
root 24895 1 0 15:08 ? 00:00:00 /usr/sbin/openvpn --cd /etc/openvpn/ --config server.conf
root 25371 13539 0 15:09 pts/0 00:00:00 grep --color=auto openvpn
OpenVPN客户端搭建部署(windows端)
安装OpenVPN软件
https://download.wodeyumengouwo.com/other/openvpn-install-2.4.6-I601.exe
https://download.wodeyumengouwo.com/other/tap-windows-9.21.1.exe
配置OpenVPN
将ca根证书、client.key、client.crt放入config目录
0 ✓ 15:09:28 root@gouwo,172.25.0.1:/opt/easy-rsa # sz pki/ca.crt
0 ✓ 15:11:11 root@gouwo,172.25.0.1:/opt/easy-rsa # sz pki/private/client.key
0 ✓ 15:11:33 root@gouwo,172.25.0.1:/opt/easy-rsa # sz pki/issued/client.crt
创建client.ovpn
client
dev tun
proto udp
remote 服务器ip 1194 #注意此处更改为openvpn服务端ip
resolv-retry infinite
nobind
ca ca.crt
cert wp.crt
key wp.key
verb 3
persist-key
comp-lzo
目录最终状态(因为这里有同名的client文件了所以改名了)
连接测试
以管理员身份运行后连接
连接成功
Comments | NOTHING