多种业务场景存在私网的情况下需要对网络的互联互通,视情况使用以下多种网络工具进行互联,以下使用的工具都是跨平台的,适用大多数操作系统
Openvpn
前言:
操作系统:Centos6、Centos7、Centos8
openvpn的虚拟网卡是tun/tap驱动程序实现的,也就是说基于 tun/tap 虚拟网卡驱动了隧道包封装。其中,tap表示虚拟的是以太网设备(2层),tun表示虚拟的是点对点设备(3层),这两种设备针对网络包实施不同的封装。
OpenVPN 之 TUN
安装服务端(需有公网IP):
安装openvpn
yum -y install epel-release #添加其它源
yum -y install openssl openvpn easy-rsa
安装最新的easy-rsa
不同的版本yum的easy-rsa 目录不一定,请用locate easyrsa查找后copy到工作目录
mkdir -p /etc/openvpn/server/easyrsa && mkdir -p /etc/openvpn/client && cd /etc/openvpn/server/easyrsa
cp -rf /usr/share/easy-rsa/3.0.8/* .
制作证书文件
我们将创建CA密钥,server端、client端密钥,DH和CRL PEM, TLS认证钥匙ta.key:
./easyrsa init-pki #初始化
./easyrsa build-ca nopass #建立CA证书
./easyrsa gen-req server1 nopass #创建服务器密钥 输入回车
./easyrsa sign-req server server1 #用CA证书签署server1密钥 输入yes
./easyrsa gen-req client1 nopass #创建客户端密钥 输入回车
./easyrsa sign-req client client1 #用CA证书签署client1密钥 输入yes
./easyrsa gen-dh #创建DH密钥
openvpn --genkey --secret ta.key #创建TLS认证密钥
./easyrsa gen-crl #生成CRL密钥
再来个客户端:
./easyrsa gen-req client2 nopass #创建客户端密钥 输入回车
./easyrsa sign-req client client2 #用CA证书签署client1密钥 输入yes
服务端证书:
复制ca证书,ta.key和server端证书及密钥到/etc/openvpn/server文件夹里:
\cp -p pki/ca.crt /etc/openvpn/server/
\cp -p pki/issued/server1.crt /etc/openvpn/server/
\cp -p pki/private/server1.key /etc/openvpn/server/
\cp -p ta.key /etc/openvpn/server/
复制dh.pem , crl.pem到/etc/openvpn/server文件夹里:
\cp pki/dh.pem /etc/openvpn/server/
\cp pki/crl.pem /etc/openvpn/server/
客户端证书:
复制ca证书,ta.key和client端证书及密钥到/etc/openvpn/client文件夹里:
\cp -p pki/ca.crt /etc/openvpn/client/
\cp -p pki/issued/client1.crt /etc/openvpn/client/
\cp -p pki/private/client1.key /etc/openvpn/client/
\cp -p pki/issued/client2.crt /etc/openvpn/client/
\cp -p pki/private/client2.key /etc/openvpn/client/
\cp -p ta.key /etc/openvpn/client/
配置服务端:
添加openvpn服务
# 创建启动文件
root# vim /etc/systemd/system/openvpn.service
[Unit]
Description=OpenVPN Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
ExecStart=/usr/sbin/openvpn --config /etc/openvpn/server/server.conf
#加载系统服务
root# systemctl daemon-reload
#开机启动
root# systemctl enable openvpn.service
#启动服务
root# systemctl start openvpn.service
#查看服务运行状态
root# systemctl status openvpn.service
创建服务端配置文件(/etc/openvpn/service/service.conf)内容:
local 0.0.0.0 #监听地址
port 1194 #监听端口
proto udp #监听协议
dev tun #采用路由隧道模式
ca /etc/openvpn/server/ca.crt #ca证书路径
cert /etc/openvpn/server/server1.crt #服务器证书
key /etc/openvpn/server/server1.key # This file should be kept secret 服务器秘钥
dh /etc/openvpn/server/dh.pem #密钥交换协议文件
server 11.11.0.0 255.255.255.0 #给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
ifconfig-pool-persist ipp.txt
#push "redirect-gateway def1 bypass-dhcp" #给网关
push "dhcp-option DNS 8.8.8.8" #dhcp分配dns
client-to-client #客户端之间互相通信
keepalive 10 120 #存活时间,10秒ping一次,120 如未收到响应则视为断线
comp-lzo #传输数据压缩
max-clients 100 #最多允许 100 客户端连接
user nobody #用户
group nobody