当前位置:   article > 正文

OpenVPN部署_easyrsa

easyrsa

OpenVPN简介

OpenVPN是一个开源的虚拟私人网络(VPN)软件包,可以用于创建加密的网络通道。它使用OpenSSL库中的SSL/TLS协议来保证数据的安全性和完整性。OpenVPN支持多种身份验证方式,包括共享密钥、电子证书、或者用户名/密码。OpenVPN可以运行在多种操作系统上,如Windows、Linux、Mac OS、Android等

本次实验拓扑图及机器环境

主机名系统网络备注
vpnserverubuntu22.04ens33:192.168.46.11/24
ens37:192.168.10.10/24
OpenVPN服务器
nw1ubuntu22.04ens33:192.168.10.12/24内网机器,nginx
Windows clientWindows 11192.168.2.2/24客户端

安装OpenVPN服务

下载openvpn-x.x.x.tar.gz压缩包

GitHub链接:https://github.com/OpenVPN/openvpn/releases
我选择的版本为:v2.6.8

下载EasyRSA-x.x.x.tgz压缩包

GitHub链接:https://github.com/OpenVPN/easy-rsa/releases

解压安装包

tar -xvf EasyRSA-3.1.7.tgz
tar -xvf openvpn-2.6.8.tar.gz
  • 1
  • 2

编译安装OpenVPN服务

# 安装编译工具及编译环境(根据实际报错信息安装对应的编译环境)
apt -y install gcc make libnl-genl-3-dev libnl-3-dev libpkgconf-dev pkg-config libcap-ng-dev openssl libssl-dev liblz4-dev liblzo2-dev libpam0g-dev
  • 1
  • 2
cd openvpn-2.6.8/
./configure
make
make install
  • 1
  • 2
  • 3
  • 4

创建/usr/local/openvpn文件夹

mkdir -p /usr/local/openvpn
  • 1

把解压后的EasyRSA-3.1.7的文件复制到/usr/local/openvpn

cp -r EasyRSA-3.1.7/ /usr/local/openvpn/easyrsa
  • 1

编辑vars文件

cd /usr/local/openvpn/easyrsa
  • 1
cp vars.example vars
  • 1
vim vars
  • 1
# 把注释取消并修改
set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "BeiJing"
set_var EASYRSA_REQ_CITY        "BeiJing"
set_var EASYRSA_REQ_ORG "BeiJing co"
set_var EASYRSA_REQ_EMAIL       "test@gmail.com"
set_var EASYRSA_REQ_OU          "BeiJing"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

初始化PKI

./easyrsa init-pki
  • 1

创建新的CA证书

./easyrsa build-ca nopass
  • 1

创建vpn服务器的私钥和证书

./easyrsa build-server-full vpnserver nopass
  • 1

创建客户端的私钥和证书

./easyrsa build-client-full vpnclient nopass
  • 1

创建Diffie Hellman参数

./easyrsa gen-dh
  • 1

创建keys文件夹存在证书和密钥

mkdir -p /usr/local/openvpn/keys
  • 1
cp /usr/local/openvpn/easyrsa/pki/{ca.crt,dh.pem} /usr/local/openvpn/
cp /usr/local/openvpn/easyrsa/pki/private/{vpnclient.key,vpnserver.key} /usr/local/openvpn/keys
cp /usr/local/openvpn/easyrsa/pki/issued/{vpnclient.crt,vpnserver.crt} /usr/local/openvpn/keys
  • 1
  • 2
  • 3

使用OpenVPN命令创建密钥

openvpn --genkey secret /usr/local/openvpn/keys/ta.key
  • 1

复制配置文件并修改

cp openvpn-2.6.8/sample/sample-config-files/server.conf /usr/local/openvpn
  • 1
vim /usr/local/openvpn/server.conf
  • 1
port 1194   # 端口号
proto udp   # 连接协议
dev tun     # 模拟三层VPN
ca /usr/local/openvpn/ca.crt  # 调用ca证书
cert /usr/local/openvpn/keys/vpnserver.crt  # 调用服务证书文件
key /usr/local/openvpn/keys/vpnserver.key   # 调用服务器私钥文件
dh /usr/local/openvpn/dh.pem  # 调用Diffie Hellman文件
topology subnet # 定义网络拓扑为子网
server 10.8.0.0 255.255.255.0 # 设置客户端可获取的IP地址池
ifconfig-pool-persist ipp.txt # 客户端IP虚拟IP地址记录文件
push "route 192.168.10.0 255.255.255.0" # 客户端获取的内网信息
push "dhcp-option DNS 114.114.114.114" # 客户端获取的DNS信息
tls-auth /usr/local/openvpn/keys/ta.key 0 # 调用密钥
cipher AES-256-GCM # 网络通信加密算法
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

创建service文件

vim /usr/lib/systemd/system/openvpn-server.service
  • 1
[Unit]
Description=OpenVPN server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/sbin/openvpn --daemon --config /usr/local/openvpn/server.conf
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

开启路由转发

vim /etc/sysctl.d/10-net.conf
  • 1
net.ipv4.ip_forward = 1
  • 1
sysctl -p /etc/sysctl.d/10-net.conf
  • 1

windows安装OpenVPN客户端

官方链接:https://openvpn.net/community-downloads/
下载安装即可

创建/usr/local/openvpn/client

mkdir -p /usr/local/openvpn/client
  • 1

复制客户端配置文件并修改

cp openvpn-2.6.8/sample/sample-config-files/client.conf /usr/local/openvpn/client/client.ovpn
  • 1
vim /usr/local/openvpn/client/client.ovpn
  • 1
client
dev tun
proto udp
remote 192.168.46.11 1194
ca ca.crt
cert vpnclient.crt
key vpnclient.key
tls-auth ta.key 1
cipher AES-256-GCM
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

复制所需文件到client文件夹下然后打包供客户端使用

cp /usr/local/openvpn/ca.crt /usr/local/openvpn/client/
cp /usr/local/openvpn/keys/{vpnclient.crt,vpnclient.key,ta.key} /usr/local/openvpn/client/
  • 1
  • 2
cd /usr/local/openvpn/client
zip client.zip ./*
  • 1
  • 2

导入配置文件

在这里插入图片描述

再次修改client.ovpn

这次修改是要把那些证书文件修改为绝对路径(根据你自己的路径修改)
  • 1

成功截图

在这里插入图片描述同时可以访问OpenVPN服务器的内网地址

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/620291
推荐阅读
相关标签
  

闽ICP备14008679号