• 欢迎访问显哥博客,本网站纯属学习技术,绝无商业用途,欢迎小伙伴们共同学习!研究技术!QQ:52249909 加我QQ
  • 世界75亿人,这么小的概率,能认识你,是我一生的幸运,不妨加个QQ接触一下:52249909 加我QQ

OpenVPN实现企业局域网与云服务器内网通信【显哥出品,必为精品】

技术栈 lixian 4年前 (2020-09-01) 1837次浏览 1个评论 扫描二维码
文章目录[隐藏]

1.前言

OpenVPN实现企业局域网与云服务器内网通信【显哥出品,必为精品】

在企业中,公司内局域网可以互相通信,也可以访问互联网,同时也可以访问云服务器公网IP,但是访问不了云服务器内网范围内的其他服务器。
众所周知,两个局域网之间是无法互相通信的,但是我们可以在它们之间加个openVPN,内网之间就可以互相通信啦
果然,李某才是国服第一灵魂画手!
OpenVPN实现企业局域网与云服务器内网通信【显哥出品,必为精品】

2.openVPN服务端部署

1.环境准备

2.生成证书

#下载安装生成证书工具
[root@openvpn ~]# yum install -y easy-rsa

#准备证书
[root@openvpn ~]# mkdir /opt/easy-rsa
[root@openvpn ~]# cd /opt/easy-rsa
[root@openvpn /opt/easy-rsa]# cp -a /usr/share/easy-rsa/3.0.7/* ./
[root@openvpn /opt/easy-rsa]# cp -a /usr/share/doc/easy-rsa-3.0.7/vars.example ./vars

#编辑模板文件
[root@openvpn /opt/easy-rsa]# vim vars
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "Shanghai"
set_var EASYRSA_REQ_CITY "Shanghai"
set_var EASYRSA_REQ_ORG "lx"
set_var EASYRSA_REQ_EMAIL "lixian656@qq.com"
set_var EASYRSA_NS_SUPPORT "yes"

#初始化证书
[root@openvpn /opt/easy-rsa]#  ./easyrsa init-pki

#生成根证书 
[root@openvpn /opt/easy-rsa]# ./easyrsa  build-ca
Enter New CA Key Passphrase:  #设置密码, 最多四位数
Re-Enter New CA Key Passphrase:  #确认密码
下一步回车即可

#生成服务端证书 
[root@openvpn /opt/easy-rsa]# ./easyrsa gen-req server  nopass
回车即可

#给服务端证书签名  
[root@openvpn /opt/easy-rsa]# ./easyrsa  sign server  server
根据提示输入 yes
输入跟证书密码

#生成一个算法  
[root@openvpn /opt/easy-rsa]# ./easyrsa  gen-dh

#创建客户端证书 
[root@openvpn /opt/easy-rsa]# ./easyrsa gen-req client nopass

#给客户端证书签名 
[root@openvpn /opt/easy-rsa]# ./easyrsa sign client client

#安装OpenVPN   
[root@openvpn /opt/easy-rsa]# yum install -y openvpn

#配置OpenVPN(把以下内容写入进去)
[root@openvpn /opt/easy-rsa]# vim /etc/openvpn/server.conf
port 1194 #端口
proto udp #协议
dev tun #采用路由隧道模式tun
ca ca.crt #ca证书文件位置
cert server.crt #服务端公钥名称
key server.key #服务端私钥名称
dh dh.pem #交换证书
server 10.8.0.0 255.255.255.0 #给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
push "route 172.16.1.0 255.255.255.0" #允许客户端访问内网172.16.1.0网段
ifconfig-pool-persist ipp.txt #地址池记录文件位置
keepalive 10 120 #存活时间,10秒ping一次,120 如未收到响应则视为断线
max-clients 100 #最多允许100个客户端连接
status openvpn-status.log #日志记录位置
verb 3 #openvpn版本
client-to-client #客户端与客户端之间支持通信
log /var/log/openvpn.log #openvpn日志记录位置
persist-key #通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys。
persist-tun #检测超时后,重新启动VPN,一直保持tun是linkup的。否则网络会先linkdown然后再linkup
duplicate-cn

#拷贝证书 
[root@openvpn /opt/easy-rsa]# cd /etc/openvpn/
[root@openvpn /etc/openvpn]# ll
total 4
drwxr-x--- 2 root openvpn    6 2020-04-25 05:23 client
drwxr-x--- 2 root openvpn    6 2020-04-25 05:23 server
-rw-r--r-- 1 root root    1029 2020-05-27 10:38 server.conf
[root@openvpn /etc/openvpn]# cp -a /opt/easy-rsa/pki/ca.crt ./
[root@openvpn /etc/openvpn]# cp -a /opt/easy-rsa/pki/issued/server.crt ./
[root@openvpn /etc/openvpn]# cp -a /opt/easy-rsa/pki/private/server.key  ./
[root@openvpn /etc/openvpn]# cp -a /opt/easy-rsa/pki/dh.pem  ./
[root@openvpn /etc/openvpn]# ll
total 24
-rw------- 1 root root    1172 2020-05-27 10:20 ca.crt
drwxr-x--- 2 root openvpn    6 2020-04-25 05:23 client
-rw------- 1 root root     424 2020-05-27 10:26 dh.pem
drwxr-x--- 2 root openvpn    6 2020-04-25 05:23 server
-rw-r--r-- 1 root root    1029 2020-05-27 10:38 server.conf
-rw------- 1 root root    4795 2020-05-27 10:23 server.crt
-rw------- 1 root root    1708 2020-05-27 10:22 server.key

#启动openvpn
[root@openvpn /etc/openvpn]# systemctl  -f enable   openvpn@server.service
[root@openvpn /etc/openvpn]# systemctl  start openvpn@server.service

3.导出证书到桌面

[root@openvpn /etc/openvpn]# sz /opt/easy-rsa/pki/ca.crt 
[root@openvpn /etc/openvpn]# sz /opt/easy-rsa/pki/issued/client.crt 
[root@openvpn /etc/openvpn]# sz /opt/easy-rsa/pki/private/client.key 

3.客户端部署

1.安装openVPN

[root@web01 ~]# yum install openvpn -y
[root@web01 ~]# cd /etc/openvpn/

2.创建配置文件路径

[root@web01 /etc/openvpn]# mkdir config
[root@web01 /etc/openvpn]# cd config/

3.上传证书

[root@web01 /etc/openvpn/config]# rz -E
[root@web01 /etc/openvpn/config]# ll
-rw-r--r-- 1 root root 1172 9月   1 16:00 ca.crt
-rw-r--r-- 1 root root 4668 9月   1 16:04 client.crt
-rw-r--r-- 1 root root 1704 9月   1 16:03 client.key

4.编辑client.ovpn文件

[root@web01 /etc/openvpn/config]# touch client.ovpn
[root@web01 /etc/openvpn/config]# vim client.ovpn
client #指定当前VPN是客户端
dev tun #使用tun隧道传输协议
proto udp #使用udp协议传输数据
remote 10.0.0.61 1194 #openvpn服务器IP地址端口号
resolv-retry infinite #断线自动重新连接,在网络不稳定的情况下非常有用
nobind #不绑定本地特定的端口号
ca ca.crt #指定CA证书的文件路径
cert client.crt #指定当前客户端的证书文件路径
key client.key #指定当前客户端的私钥文件路径
verb 3 #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细
persist-key #通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys
persist-tun #检测超时后,重新启动VPN,一直保持tun是linkup的。否则网络会先linkdown然后再linkup
remote-cert-tls server

5.启动openVPN客户端

后面加个 & 是后台启动
[root@web01 /etc/openvpn/config]# openvpn client.ovpn &

本站博主 , 版权所有丨如未注明 , 均为原创
转载请注明原文链接:OpenVPN实现企业局域网与云服务器内网通信【显哥出品,必为精品】
喜欢 (2)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. I don't think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article.