服务概念:
虚拟专用网络,实际就是在网络中开辟一条虚拟专用线路
应用分类:
1.主机远程访问***服务
2.企业网络之间***服务
3.互联网公司多IDC机房之间***服务
传输数据协议方式:
PPTP 终端与终端之间建立
L2TP:二层隧道协议 L2TP可以提供隧道验证,而不是PPTP则不支持隧道验证
IPsec 保证数据包加密特性 特殊封装技术
SSL 保证数据包加密通讯方式 对数据信息进行加密(公钥-证书 私钥-钥匙)
服务架构原理:
利用虚拟专用网络,实现让外网主机获取架构中内网地址信息,实现利用内网地址进行数据传递
服务架构环境
windows主机 外网主机 10.0.0.1 (模拟公网地址)
v*nserver主机 10.0.0.63(模拟公网地址) 172.16.1.41(模拟私网地址)
web01 172.16.1.7 (模拟私网地址)
PS:确保每台主机时间做好正确同步
服务部署过程
第一个历程:下载安装所需软件程序
yum install -y openv*n easy-rsa
open薇P恩: 服务程序软件包
easy-rsa: 可以用于生成证书(公钥)和秘钥信息 == 类似于 ssh-keygen 生成了私钥和公钥信息
第二个历程:创建服务端所需的证书和密钥信息
cp -r /usr/share/easy-rsa/ /etc/openv*n/
cp /usr/share/doc/easy-rsa-3.0.6/vars.example /etc/openv*n/easy-rsa/3.0.6/vars --- 企业公司信息记录文件
cd /etc/openv*n/easy-rsa/3.0.6/
./easyrsa init-pki --- 创建一个保存证书和秘钥信息目录环境
Your newly created PKI dir is: /etc/openv*n/easy-rsa/3.0.6/pki
# 创建服务端ca证书 ??公钥??
./easyrsa build-ca nopass
/etc/openv*n/easy-rsa/3.0.6/pki/ca.crt
# 创建服务端证书 类似服务端公钥和私钥
./easyrsa gen-req openv*n nopass
/etc/openv*n/easy-rsa/3.0.6/pki/private/openv*n.key --- 生成秘钥信息
./easyrsa sign server openv*n
/etc/openv*n/easy-rsa/3.0.6/pki/issued/openv*n.crt --- 生成证书文件信息
# 生成Diffie-Hellman数据文件
./easyrsa gen-dh --- 生成密钥交换文件
/etc/openv*n/easy-rsa/3.0.6/pki/dh.pem
=========================================================
总结:以上操作完毕,生成以下文件信息
cp /etc/openv*n/easy-rsa/3.0.6/pki/ca.crt /etc/openv*n/server
cp /etc/openv*n/easy-rsa/3.0.6/pki/private/openv*n.key /etc/openv*n/server
cp /etc/openv*n/easy-rsa/3.0.6/pki/issued/openv*n.crt /etc/openv*n/server
cp /etc/openv*n/easy-rsa/3.0.6/pki/dh.pem /etc/openv*n/server
=========================================================
第三个历程:编写open配置文件
cp /usr/share/doc/openvn-2.4.8/sample/sample-config-files/server.conf /etc/openvn/
vim /etc/openvn/server.conf
[root@v*n openv*n]# grep ^[a-Z] server.conf
local 10.0.0.41
port 1194
proto tcp
dev tun
ca /etc/openv*n/server/ca.crt
cert /etc/openv*n/server/openv*n.crt
key /etc/openv*n/server/openv*n.key # This file should be kept secret
dh /etc/openv*n/server/dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 172.16.1.0 255.255.255.0"
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
status /var/log/openv*n-status.log
log-append /var/log/openv*n.log
verb 3
mute 20
解释
:
25 local 10.0.0.63 --- 设置V*N服务监听地址信息
32 port 1194 --- 设置服务端口号码,默认是1194
35 proto tcp --- V*N链路通讯协议使用TCP协议,保证数据传输安全性
53 dev tun --- 使用隧道进行传输数据
78 ca /etc/openv*n/server/ca.crt
79 cert /etc/openv*n/server/openv*n.crt
80 key /etc/openv*n/server/openv*n.key
85 dh /etc/openv*n/server/dh.pem
92 topology subnet --- 识别正确掩码信息
101 server 10.8.0.0 255.255.255.0 --- 设置一个客户端和v*n服务端进行直连通讯地址
141 push "route 172.16.1.0 255.255.255.0" --- 项客户端推送一个内网网段路由条目信息
231 keepalive 10 120 --- TCP长连接超时时间
244 ;tls-auth ta.key 0 --- !!! 一定要关闭tls功能
287 status /var/log/openv*n-status.log --- 生成一个openv*n服务状态日志信息文件
297 log-append /var/log/openv*n.log --- 生成一个openv*n服务运行日志信息文件
315 ;explicit-exit-notify 1 --- !!! 一定关闭此功能
第四个历程:启动服务程序(守护进程方式启动)
# vim /usr/lib/systemd/system/openv*n.service
[Unit]
Description=openv*n service
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
User=root
Group=root
ExecStart=/usr/sbin/openv*n --daemon --config /etc/openv*n/server.conf
ExecStop=/bin/kill -9 $MAINPID
Restart=on-failure
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start openvn
systemctl enable openvn
================================================================
openv*n 服务第一个大坑:服务无法启动
第一步:利用命令测试配置文件信息是否正确
openv*n /etc/openv*n/server.conf
netstat -lntup|grep 1194
第二步:查看配置文件配置信息
第三步:确认编写启动文件是否正确
================================================================
windows主机配置部署过程(***客户端部署过程)
第一个历程:下载open 客户端软件并安装
D:\Program Files (x86)\OpenV*N\config --- 在此目录中可以进行客户端配置
提示
:是在config目录中,可以不是子目录中,只要是在config中就可以
第二个历程:生成客户端证书和密钥文件
cd /etc/openv*n/easy-rsa/3.0.6/
./easyrsa gen-req client01 nopass
/etc/openv*n/easy-rsa/3.0.6/pki/private/client01.key
./easyrsa sign client client01
/etc/openvp*n/easy-rsa/3.0.6/pki/issued/client01.crt
整理客户端目录中数据文件
cp /etc/openv*n/easy-rsa/3.0.6/pki/private/client01.key /etc/openv*n/client/
cp /etc/openv*n/easy-rsa/3.0.6/pki/issued/client01.crt /etc/openv*n/client/
cp /etc/openv*n/easy-rsa/3.0.6/pki/ca.crt /etc/openv8n/client
第三个历程:将客户端证书或者密钥文件导到Windows中
cd /etc/openv*n/client/
sz -y client01.key client01.crt ca.crt
在Windows中生成配置文件
openn程序目录下–\sample-config — 获取client.ovn 放入到 – config目录相应子目录中
复制到如下图:
其余的客户端文件是在linux中生成导出到这儿的
第四个历程:编写修改客户端配置文件
编写client.ov*n客户端配置文件
client
dev tun
proto tcp
remote 10.0.0.63 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client01.crt
key client01.key
cipher AES-256-CBC
verb 3
第五个历程:启动open 客户端程序
双击运行Windows主机上 openVNgui程序 --右下角找到运行openvn图标 — 右键进项连接
第六个历程:进行测试验证:
验证一:进行10.0.0.1地址测试
验证二:进行ping内网地址
确认01:服务端内网主机是否开启配置回指路由信息
确认02:确认openV*N是否开启内核转发功能
部署过程遇到的坑:
确认证书和私钥文件是否创建正确
如果私钥或证书文件创建有异常 --- 将pki目录删除 重新创建pki目录生成证书和私钥文件