openVPN服务端搭建

2023-10-26

# 搭建步骤

云服务器(Ubuntu 20.04.1 LTS)搭建服务端 公网IP:47.*.215.*
测试客户端:
部门内部成员的windows10 或者windows11 及mac电脑 还有现场linux环境
最后目标是实现所有客户端之间能够互联,并且已经成功应用

## 安装OpenVPN服务端

RedHat系

yum install -y openvpn


Debian系

apt install openvpn

## 安装Easy RSA套件(用于生成服务端和客户端所需的证书和密钥)

  • 下载Easy RSA源码包;

  • Easy RSA下载官网:https://github.com/OpenVPN/easy-rsa/releases 

    [root@localhost ~]wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.1.2/EasyRSA-3.1.2.tgz

  • 下载完后解压,在/etc/openvpn目录下创建目录easy-rsa,将刚才解压缩的所有文件复制到这个目录下
[root@localhost ~]#tar -zxvf EasyRSA-3.1.2.tgz
[root@localhost ~]#mkdir /etc/openvpn/easy-rsa
[root@localhost ~]#cp -r EasyRSA-3.1.2/* /etc/openvpn/easy-rsa

## 在服务端生成私钥和证书

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

  • 清理原有证书和私钥并初始化
[root@localhost easy-rsa]# ./easyrsa clean-all

  •  生成CA根证书
[root@localhost easy-rsa]# ./easyrsa build-ca

CA根证书生成位置:

/etc/openvpn/easy-rsa/pki/ca.crt

  • 为OpenVPN服务端生成server证书和私钥

备注:这里使用nopass参数设置不需要密码,那么在启动OpenVPN服务的时候就不提示输入密码。

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

 服务端证书路径:/etc/openvpn/easy-rsa/pki/issued/server.crt
服务端私钥路径:/etc/openvpn/easy-rsa/pki/private/server.key

  • 生成Diffie-Hellman算法需要的密钥文件
[root@localhost easy-rsa]# ./easyrsa gen-dh

等待一段时间即可生成成功

  •  生成tls-auth Key用于防止DDOS和TLS攻击
[root@localhost easy-rsa]# openvpn --genkey --secret ta.key

ta.key路径:`/etc/openvpn/easy-rsa/ta.key

# OpenVPN服务端配置

  • 修改OpenVPN服务端配置文件
    vim /etc/openvpn/server/server.conf

    目录下如果没有服务端配置文件的话,可以先从其他地方下载 

  • 拷贝私钥、公钥和证书等文件到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 

 

## 启动服务端服务

[root@uos server]#openvpn --config server.conf

## OpenVPN Server服务自动开启

  •  创建systemd服务文件用于管理OpenVPN Server服务自动开启
cp   /usr/lib/systemd/system/openvpn-server@.service /etc/systemd/system/openvpn-server@server.service

  • -设置OpenVPN Server服务开机自启并立即启动
systemctl enable --now openvpn-server@server.service
  • -使用命令查看启动状态
systemctl status openvpn-server@server.service

## 在云服务器上配置安全组

之前启动客户端怎么也没法连上服务器,折腾半天最后发现是服务器上的端口没有放行,这条非常重要!!!

## 在服务端下配置CCD功能,指定客户端固定IP

配置步骤

  • 首先,在服务端开启CCD功能,在 OpenVPN 服务器的配置文件中,添加以下行:
#修改配置
vim /etc/openvpn/server/server.conf 
#打开这个配置, ccd文件夹,相对路径,和配置server.conf同一路径
#client-config-dir ccd

#绝对路径 /etc/openvpn/ccd
client-config-dir /etc/openvpn/ccd


其中,ccd 是一个文件夹路径,用于存放客户端 CCD 配置文件,我这里CCD文件夹创建的路径在`/etc/openvpn/`下。

  • 在 ccd 文件夹中,为 client-24 客户端创建一个名为 client-24 的文件,文件内容为
ifconfig-push 10.8.1.6 255.255.255.0

其中,这里的文件名一定要和客户端的文件名字一样

这将为 client-24 客户端分配一个固定的 IP 地址(例如 10.8.1.6)。


完成上述步骤后,即可完成配置

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openVPN服务端搭建 的相关文章

随机推荐

  • Java RSA加密解密及签名验证

    一 简介 RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥 在公开密钥密码体制中 加密密钥 即公开密钥 PK是公开信息 而解密密钥 即秘密密钥 SK是需要保密的 加密算法E和解密算法D也都是公开的 虽然解密密钥SK是由公开密钥PK决
  • opengl的纹理过滤

    和纹理映射相关的另一个重要概念是 过滤 我们已经讨论了怎样将纹理坐标 这是个0到1之间的分数 映射到纹素上 纹理贴图中纹素的坐标总是以整数定义的 但是如果纹理坐标映射到纹素上的坐标为 152 34 745 14 怎么办 不明智的方案是将这个
  • css的三种引入方式

    目录 三种引入方式 1 行内样式 2 内部样式 内嵌式 3 外部样式 3 1外链式 3 2导入式 引入方式的优先级 三种引入方式 1 行内样式 行内样式就是直接把css样式添加在HTML标签中 作为style样式的属性值
  • DDR4 设计概述以及分析仿真案例(硬件学习)

    转载 DDR4 设计概述以及分析仿真案例 硬件设计讨论 EDA365电子论坛网 引言 随着计算机 服务器的性能需求越来越高 DDR4开始应用在一些高端设计中 然而目前关于DDR4的资料非常少 尤其是针对SI 信号完整性 部分以及相关中文资料
  • ODBC 各种数据库连接串

    Overview Generally one of the first steps when you are trying to work with databases is open it You can find several typ
  • 查看及配置交换机管理地址

    查看及配置交换机管理地址 问题 交换机是目前用于组建局域网的主要设备 交换机根据MAC地址表实现数据帧的转发 通过查看MAC地址表更加有利于交换机工作原理的理解 通过查看CISCO设备邻居信息来了解网络拓扑 通过telnet方式远程访问 配
  • Selenium+python之隐藏浏览器的“Chrome正在受到自动软件的控制“提示语

    在执行测试用例 细心的人都会发现 浏览器的title部分 有一句提示语 Chrome正在受到自动软件的控制 那么 能不能去掉这句提示语呢 也是没问题的 同样的 使用 headless 在浏览器中加入 disable infobars 这个参
  • pyecharts学习小总结——Bar(柱状图)、Pie(饼图)、Line(线图)、Page(页面组件)、Tab(分页组件)、Grid(组合组件)

    目录 pyecharts常用模块总结 Bar 柱状图 1 旋转x轴标签 2 添加工具箱 3 柱状图与折线图混合 4 标注x轴名称 5 设置垂直的一天时间线 6 旋转x和y轴 Pie 饼图 1 设置位置和半径大小 Line 线图 1 设置平滑
  • pip install scipy时发生zipfile.BadZipFile: File is not a zip file解决办法

    应该是下载时发生了丢包 我在官网下载时 只有14M 切换到豆瓣源有30M 附上地址 https pypi doubanio com simple scipy
  • java程序移植_java JDBC 提高程序可移植性

    介绍jdbc一般的程序 程序编程相关 jb oracle weblogic c 很多java初学者在开始接触jdbc编程的时候 在网上与大部分的教材上都是这样 推荐阅读 Java线程入门 什么是线程 import java sql 扩展信息
  • 预训练语言模型(PLMs)综述

    预训练语言模型 PLMs 内容来自AACL 2022 Tutorial https d223302 github io AACL2022 Pretrain Language Model Tutorial https d223302 gith
  • Mysql进阶索引篇02——InnoDB存储引擎的数据存储结构

    前言 前面我们已经剖析了mysql中InnoDB与MyISAM索引的数据结构 了解了B 树的设计思想 原理 并且介绍了B 树与Hash结构 平衡二叉树 AVL树 B树等的区别和实际应用场景 页和页之间并不一定在物理上相连 只是在逻辑上使用双
  • java内存

    在java视频中 一直强调java内存的重要性 如果真正理解 了java内存的分配情况和程序运行时的java内存 那么你会对 java编程的思想 会更加深刻 Java内存分配与管理是Java的核心技术之一 Java的内存分配有三种 一 静态
  • 使用WPD API操作MTP设备一些总结

    使用WPD API操作MTP设备总结 本文分为两部分 1 WPD基本架构和概念的理解 2 使用WPD API操作MTP 拷贝 删除 设备 1 WPD基本架构和概念 1 1 WPD架构 原文 https docs microsoft com
  • Vue脚手架的安装配置以及使用

    安装Vue脚手架 1 需要安装nodejs支持 去nodejs官网下载对应版本的nodejs 可以使用installer 选择安装目录点击安装 也可以使用binary文件 直接选择文件夹解压缩 安装完成后如上图所示 然后配置环境变量 1 添
  • C++中指针和应用有哪些区别?

    a 指针是一个新的变量 存储了另一个变量的地址 我们可以通过访问这个地址来修改另一个变量 引用只是一个别名 还是变量本身 对引用的任何操作就是对变量本身进行操作 以达到修改变量的目的 b 引用只有一级 而指针可以有多级 c 指针传参的时候
  • show processlist 命令执行结果解释

    show full processlist show processlist 显示哪些线程正在运行 也可以通过 INFORMATION SCHEMA PROCESSLIST 表或 mysqladmin processlit 获取这些信息 如
  • 设计模式-状态模式(State)

    文章目录 前言 状态模式的核心概念 状态模式的用途 示例 状态模式的Java实现 状态模式优缺点 总结 前言 当我们需要在对象的生命周期中管理不同状态时 状态模式 State Pattern 是一种有用的设计模式 在这篇博客中 我们将介绍状
  • 免费的 PPT 模版资源

    1 第一 PPT 第一PPT站内资源以免费下载为基础 本着开放的共享为原则 服务于国内广大国内PPT爱好者 目前第一PPT站内的所有PowerPoint资源 PPT模板 PPT背景 PPT 素材 PPT教程 PPT软件 均是免费下载 所以请
  • openVPN服务端搭建

    搭建步骤 云服务器 Ubuntu 20 04 1 LTS 搭建服务端 公网IP 47 215 测试客户端 部门内部成员的windows10 或者windows11 及mac电脑 还有现场linux环境 最后目标是实现所有客户端之间能够互联