系统环境

一、OpenVPN服务器系统配置
OS版本:银河麒麟服务器操作系统V10SP2(x86_64)
OpenVPN版本:2.4.8
Easy-RSA版本:3.1.1
网卡①:192.168.42.171,与外网连通;
网卡②:100.200.1.2,内部网络;
二、测试机系统环境配置
OpenVPN客户端:Win11系统,网卡IP地址192.168.42.1
内网测试机:银河麒麟桌面系统V10SP1,网卡IP地址100.200.1.3

搭建步骤

安装OpenVPN服务端

[root@localhost ~]# yum install -y openvpn

在这里插入图片描述

安装Easy RSA套件

  1. 下载Easy RSA源码包;
    Easy RSA下载官网:https://github.com/OpenVPN/easy-rsa/releases
[root@localhost ~]# wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.1.1/EasyRSA-3.1.1.tgz
  1. 解压Easy RSA源码包,并复制到安装目录;
[root@localhost ~]# tar -zxvf EasyRSA-3.1.1.tgz
[root@localhost ~]# mkdir /etc/openvpn/easy-rsa
[root@localhost ~]# cp -ar EasyRSA-3.1.1/* /etc/openvpn/easy-rsa/

在这里插入图片描述

生成私钥和证书

  1. 进入Easy RSA的安装目录,并配置参数;
[root@localhost ~]# cd /etc/openvpn/easy-rsa/
[root@localhost easy-rsa]# cp vars.example vars
[root@localhost easy-rsa]# vim vars

在这里插入图片描述
2. 清理原有证书和私钥并初始化;

[root@localhost easy-rsa]# ./easyrsa clean-all

在这里插入图片描述
3. 生成CA根证书;

[root@localhost easy-rsa]# ./easyrsa build-ca

在这里插入图片描述
4. 为OpenVPN服务端生成server证书和私钥;
备注:这里使用nopass参数设置不需要密码,那么在启动OpenVPN服务的时候就不提示输入密码。

[root@localhost easy-rsa]# ./easyrsa build-server-full server nopass

在这里插入图片描述
5. 生成Diffie-Hellman算法需要的密钥文件;

[root@localhost easy-rsa]# ./easyrsa gen-dh

在这里插入图片描述
6. 生成tls-auth Key用于防止DDOS和TLS攻击;

[root@localhost easy-rsa]# openvpn --genkey --secret ta.key
  1. 为OpenVPN客户端生成证书和私钥文件;
[root@localhost easy-rsa]#  ./easyrsa build-client-full kylin nopass

在这里插入图片描述

OpenVPN服务端配置

  1. 修改OpenVPN服务端配置文件/etc/openvpn/server/server.conf;
[root@localhost ~]# cd /etc/openvpn/server/
[root@localhost server]# vim server.conf

在这里插入图片描述

  1. 拷贝私钥、公钥和证书等文件到server.conf同级目录下;
    备注:需要拷贝的文件包括ca.crt、ca.key、server.crt、server.key、dh.pem、ta.key。
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/ca.crt .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/private/ca.key .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/issued/server.crt .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/private/server.key .
[root@localhost server]# cp /etc/openvpn/easy-rsa/pki/dh.pem .
[root@localhost server]# cp /etc/openvpn/easy-rsa/ta.key .

在这里插入图片描述
3. 关闭系统firewalld防火墙,并用iptables添加NAT转发规则;

[root@localhost ~]# systemctl disable --now firewalld

在这里插入图片描述

[root@localhost ~]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
[root@localhost ~]# iptables -L -n -t nat
[root@localhost ~]#service iptables save
[root@localhost ~]# systemctl enable --now iptables

在这里插入图片描述
4. 创建systemd服务文件用于管理OpenVPN Server服务自动开启;

[root@localhost ~]# cp /usr/lib/systemd/system/openvpn-server@.service /etc/systemd/system/openvpn-server@server.service

在这里插入图片描述
5. 设置OpenVPN Server服务开机自启并立即启动;

[root@localhost ~]# systemctl enable --now openvpn-server@server.service

在这里插入图片描述

OpenVPN客户端配置

  1. 安装Window版的OpenVPN客户端工具:下载地址
  2. 将上述步骤中使用Easy RSA工具生成的OpenVPN客户端证书和私钥文件拷贝到Windows客户端系统中的OpenVPN安装目录的config文件夹中;
    需要拷贝的文件包括:
/etc/openvpn/easy-rsa/pki/ca.crt
/etc/openvpn/easy-rsa/ta.key
/etc/openvpn/easy-rsa/pki/private/kylin.key
/etc/openvpn/easy-rsa/pki/issued/kylin.crt
  1. 在OpenVPN服务端/etc/openvpn/client/目录下利用OpenVPN客户端模板文件client.conf创建一个连接配置文件kylin.ovpn;
[root@localhost client]# cp -rf client.conf kylin.ovpn
[root@localhost client]# vim kylin.ovpn

在这里插入图片描述
4. 同样将上一步中的kylin.ovpn文件拷贝到Windows客户端系统中的OpenVPN安装目录的config文件夹中,最后我们在config文件夹中将会看到以下内容;
在这里插入图片描述

连接测试

  1. 在Windows客户端系统中双击打开OpenVPN GUI图标,,然后鼠标右键点击任务栏右下角的OpenVPN网络图标,并选择“connect”进行连接;
    在这里插入图片描述
  2. 查看OpenVPN连接状态,确认连接成功;
    在这里插入图片描述
  3. OpenVPN连接成功后,我们尝试从Windows客户端系统使用VNC Viewer工具远程连接“内网测试机100.200.1.3”测试;
    在这里插入图片描述
    在这里插入图片描述
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐