open***隧道手动搭建流程(2)

一.两个互相能访问公网,创建点对点访问连接,不需要证书
1.下载安装(二选一)
1)网络安装

1
2
yum install -y epel-release
yum install -y openvpn openssl ca-certificates


2)下载编译安装

1
下载地址:https://github.com/OpenVPN

  

2.创建服务端配置文件(点对点的访问)

1
2
3
4
5
6
7
8
9
10
vim /etc/openvpn/server.conf
内容如下:
local 0.0.0.0
lport 1194
proto tcp
remove 192.168.206.24(对端ip)# 写客户端器端ip
rport 1194(对端port)
dev tun
ifconfig 10.8.0.1 10.8.0.2 (自己分配的ip 对端分配的ip)
secret /etc/openvpn/stock.key (对称密钥)

  


3.生成密钥

1
openvpn --genkey --secret /etc/openvpn/stock.key

  

4.密钥复制到客户端服务器的对应目录

 

5.配置客户端服务器的配置文件

1
2
3
4
5
6
7
8
9
10
vim /etc/openvpn/client/client.conf
内容如下:
local 0.0.0.0
lport 1194
proto tcp
remove 192.168.206.26(对端ip) # 写服务器端ip
rport 1194(对端port)
dev tun # 三层协议,基于ip的
ifconfig 10.8.0.2 10.8.0.2 (自己分配的ip 对端分配的ip)# 这个ip位置对调
secret /etc/openvpn/stock.key (对称密钥)

  


6.启动服务端

1
openvpn /etc/openvpn/server.conf

  

7.启动客户端

1
openvpn /etc/openvpn/client.conf

  


8.此时这两个服务器可以访问了

 

二.服务端在公网,客户端可不在公网,客户端主动找服务端, 创建点对点访问连接,不需要证书

1.修改服务端配置文件(去掉remove,rport)

1
2
3
4
5
6
7
8
vim /etc/openvpn/server.conf
内容如下:
local 0.0.0.0
lport 1194
proto tcp
dev tun
ifconfig 10.8.0.1 10.8.0.2 (自己分配的ip 对端分配的ip)
secret /etc/openvpn/stock.key (对称密钥)

  


2.配置客户端服务器的配置文件(不变)

1
2
3
4
5
6
7
8
9
10
vim /etc/openvpn/client/client.conf
内容如下:
local 0.0.0.0
lport 1194
proto tcp
remove 192.168.206.26(对端ip) # 写服务器端ip
rport 1194(对端port)
dev tun # 三层协议,基于ip的
ifconfig 10.8.0.2 10.8.0.1 (自己分配的ip 对端分配的ip)# 这个ip位置对调
secret /etc/openvpn/stock.key (对称密钥)

  


3.启动服务端

1
openvpn /etc/openvpn/server.conf

  

4.启动客户端

1
openvpn /etc/openvpn/client.conf

  

 


三.基于证书认证的连接(点对多点)(非对称加密,基于ca签名认证)
服务端,客户端都需要安装
1.证书制作(easy-rsa工具)

1
2
3
4
5
下载工具:
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.1.5/EasyRSA-3.1.5.tgz
解压
tar zxvf EasyRSA-3.1.5.tgz
cd EasyRSA-3.1.5

  


2.初始化

1
./easyrsa init-pki

  


3.创建根证书

1
2
3
4
5
./easyrsa build-ca
输入私钥密码:123456(自己确定)
输入确定密码:123456
输入证书名字:CA
此时kpi/ca.crt证书生成了

  


4.为服务器创建证书

1
2
3
4
5
./easyrsa gen-req server nopass
输入证书申请人:server
此时生成了
* req: ./pki/reqs/server.req # 证书信息
* key: ./pki/private/server.key # 证书私钥

  


5.为此证书做个签名(./easyrsa sign server [证书名字])

1
2
3
4
./easyrsa sign server server
输入确认:yes
输入ca.key的密码:123456
此时生成了server的证书./pki/issued/server.crt

  


6.生成通信协商文件

1
2
./easyrsa gen-dh
此时生成参数协商文件./pki/dh.pem

  

7.以下文件都复制到服务配置文件目录(证书,私钥,ca根证书,协商文件)

1
2
3
4
cp ./pki/issued/server.crt /etc/openvpn/server/
cp ./pki/private/server.key /etc/openvpn/server/
cp ./kpi/ca.crt /etc/openvpn/server/
cp ./pki/dh.pem /etc/openvpn/server/

  

8.生成客户端私钥证书

1
2
3
4
5
./easyrsa gen-req client nopass
输入证书申请人:client
此时生成了
* req: ./pki/reqs/client.req # 证书信息
* key: ./pki/private/client.key # 证书私钥

  


9.为客户端证书做个签名(./easyrsa sign client [证书名字])

1
2
3
4
./easyrsa sign client client
输入确认:yes
输入ca.key的密码:123456
此时生成了client的证书./pki/issued/client.crt

  

10.客户端文件复制到客户端配置文件目录(ca证书,私钥,证书)

1
2
3
cp ./kpi/ca.crt /etc/openvpn/client/
cp ./pki/private/client.key /etc/openvpn/client/
cp ./pki/reqs/client.req /etc/openvpn/client/

  

11.修改服务端配置文件

1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/openvpn/server/server.conf
内容如下:
local 0.0.0.0
lport 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
cipher AES-256-CBC
server 10.8.0.0 255.255.255.0

  

12.配置客户端服务器的配置文件

1
2
3
4
5
6
7
8
9
10
11
vim /etc/openvpn/client/client.conf
内容如下:
client # 指明自己是客户端
dev tun
proto tcp
remote 服务器端ip
rport 1194
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC

  

13.启动服务端

1
openvpn /etc/openvpn/server/server.conf

  

14.启动客户端

1
openvpn /etc/openvpn/client/client.conf

  

 

四.其他需求
1)客户端之间不互通
服务端server.conf里面添加添加参数client-to-client
2)借助某个客户端去访问此客户端的所在内网的所有主机
①先给此客户端分配一个固定ip地址

1
2
3
服务端server.conf里面添加添加以下参数
topology subnet
cilent-config-dir ccd

  


②在服务端目录里面创建目录ccd,在目录创建(和此客户端配置证书相同的名字(无后缀名))文件

1
2
在文件添加如下参数(ipconfig-push 固定ip 掩码)
ipconfig-push 10.8.0.3 255.255.255.0

  


③此客户端开启路由转发功能

1
2
3
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

  


④ 服务端配置路由推送

1
2
3
在ccd目录和此客户端配置证书相同的名字(无后缀名)文件添加参数如下:(iroute 所要访问的网段 掩码)
ipconfig-push 10.8.0.3 255.255.255.0
iroute 192.168.206.0 255.255.255.0

  


⑤服务端server.conf里面添加添加以下参数

1
push "route 192.168.206.0 255.255.255.0"

  

⑥此时已能够访问此客户端服务器所在的内网ip
如果想访问此客户端的所在内网的所有主机,需要在被访问的所有主机添加一条回程路由:(route add <vpn网段> mask <掩码> <vpn客户端的内网ip>)

1
route add 10.8.0.0 mask 255.255.255.0 192.168.206.28

  

 

posted @   铿锵有力自信且坚定  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示