VPN服务器搭建

admin1年前笔记140

image.png

各位处在Linux运维潮流中的大佬们,文章不才,在这里特此分享一套VPN服务器搭建的流程及使用分享。 每个公司都或多或少的进行远程办公,有的公司会采用向日葵orTeamviewer也或者是ngrok灰鸽子等内网穿透软件,这些软件大都进行收费、限速、无法本地连接公司电脑。为了避免这种情况的发生,合理利用公司的网络带宽、实现远程办公,本地直通公司网络,每个工程师会给公司搭建一套VPN来实现人员的要求。VPN的方式有很多种,像ike、pptp、l2tp等都可以作为选择,这里我给大家分享一下OpenVPN的搭建。 首先,我们需要准备一台自己的服务器,如果使用的人非常多建议将配置提高一下来承载压力,我们先来准备一下运行环境。

openvpn运行环境

系统版本
centos77.7.1908
OpenVPN2.4.8
mysql/mariadb-server5.5.64
easyrsa3.0.6

有了前提准备,还要继续了解到OpenVPN并不在CentOS-Base源中,而是在扩展源epel中,有了这些信息那我们接下来开始正式安装,let's go!

  • 安装 epel、openvpn、mariadb-server 数据库软件

image.png

在执行完上述操作后,整个系统就已经完成了30%了,要让它正常工作还需要对它进行一下设置。在使用OpenVPN的原因就是他可以保证每个客户端使用自己的证书和服务器来建立连接(非强制)、还可以控制客户端之间能否进行通信、使用隧道模式or桥接模式、dh加密等。客户端和服务器之间的第一道安全就是证书,如果加上dh加密,那更加安全。下面我们来生成证书。 easyrsa是一个封装的openssl工具,通过几个简单命令就可以生成证书,简化了openssl的操作复杂性,这个程序可以在github上下载下来也可以使用epel源中的,这里我使用的是github上的,首先下载 easyrsa 生成证书,这里用的是3.0.6的版。

image.png

创建 CA 根证书

  • 创建证书需要将公司的信息写到配置文件里面,easyrsa默认会读取vars中的内容并利用这些内容生成CA证书

    image.png

  • 接下来需要对工作目录进行初始化,正式创建证书(瞪大眼睛,千万不要走神)

    image.png

  • 创建服务器端证书(证书无密码)

    image.png

  • 使用CA对服务器端的证书进行签名

    image.png

  • 创建 dh 秘钥(耗时稍微长一些)

    image.png

准备好证书后就可以生成我们的配置文件,由于服务器端的证书没有添加密码,所以不需要添加额外配置。准备好的配置文件如下:
  • image.png

  • 准备好配置文件就可以启动这个服务了,但在启动之前还需要将服务器的内核转发功能打开,这个功能如果不打开,VPN流量是无法到达目标服务器,拨VPN之后只能和VPN服务器进行通信;OpenVPN还依赖firewalld来实现地址路由,由于开启了防火墙在对外提供服务的时候需要允许openvpn的流量进入

  • image.png

添加了这些规则我们来看一下配置是否正确,需不需要再添加额外的规则

image.png

  • 将证书文件放在openvpn配置目录中

    image.png

  • 启动我们的VPN服务

    image.png

使用 mysql 数据库做用户名密码认证
  • 直接安装下面这个软件

    image.png

  • 准备PAM认证文件

    image.png

  • 创建数据库、表、添加用户

    image.png

  • 测试认证是否通过

  • image.png

  • 客户端配置

  • 生成客户端证书

    image.png

  • 用CA证书对客户端证书进行签名,只有签名证书客户端才能使用证书登录 vpn

    image.png

  • 准备配置文件

    image.png

通过以上的步骤和操作,相信你已经可以使用了。如果还是不行,千万不要放弃,文章中已经把该详细说的关键的全部标注出来了,请认真阅读一下。有任何问题可以进行评论留言。



相关文章

让 Linux 保持精确时间

如何保持正确的时间,如何使用 NTP 和 systemd 让你的计算机在不滥用时间服务器的前提下保持同步。它的时间是多少?让 Linux 来告诉你时间的时候,它是很奇怪的。你可能认...

具体详实给你讲什么是系统解耦

具体详实给你讲什么是系统解耦

在软件开发领域,解耦这个词相信大家都不陌生。在面向对象的语境下,我们会应用SOLID原则来构建高内聚低耦合的应用,实现模块间的解耦;在复杂业务系统分析和建模时,会通过DDD的战略和战术设计帮助划分领域...

一条线 理解SSH登录前因后果

一条线 理解SSH登录前因后果

SSH流程图根据流程图我们可以相应的看出我们的程序从最初的浏览器到最后的页面回显的过程。Hibernate层主要负责映射文件和Action和Service的注入,负责后台服务3层之间调用**JSP相当...

SSH 隧道

SSH 隧道

1. 什么是 SSH 隧道SSH 隧道是 SSH 中的一种机制,它能够将其他 TCP 端口的网络数据通过 SSH 连接来转发,并且自动提供了相应的加密及解密服务。因为 SSH 为其他 TCP 链接提供...

谷歌的原生多模态大模型Gemini来了,剑指GPT-4

谷歌的原生多模态大模型Gemini来了,剑指GPT-4

就在刚刚,谷歌扔下“震撼弹”。北京时间2月21日晚21点,美国科技巨头谷歌(Google)宣布推出全球性能最强大、轻量级的开源模型系列Gemma,分为2B(20亿参数)和7B(70亿)两种尺寸版本,2...

了解php中session垃圾回收机制

了解php中session垃圾回收机制

1、php中session的生成机制我们先来分析一下PHP中是怎么生成一个session的。设计出session的目的是保持每一个用户的各种状态来弥补HTTP协议的不足(无状态)。我们现在有一个疑问,...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。