0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在远程服务器上搭建一个OpenVPN服务端

冬至子 来源:星海安全实验室 作者:XingZhe 2023-05-26 15:03 次阅读

前言

公司要求需要在一台远程服务器上搭建一个OpenVPN服务端,在公司本地服务器上搭建一个OpenVPN客户端,实现公司内网可以访问远程服务器的内网资产。

图片

客户端与服务端环境介绍

  • • 服务器:
    • • 外网:111.6.XXX.XXX
    • • 内网:172.XX.XX.23/25
    • • 系统:CentOS 7
  • • 客户端:
    • • 外网:1.192.XX.XX
    • • 内网:10.10.XX.XX
    • • CentOS 7

开始搭建:

1、准备OpenVPN证书、密钥等文件

1.1、从github上下载easy-rsa并传到服务器上。

然后解压并进入该文件目录。

1.2、安装easy-rsa和openvpn,执行如下命令:

yum install easy-rsa openvpn -y

1.3、下载好的easy-rsa文件里面内容如下:

图片

刚下载好的是没有vars文件的,我们复制一下并重命名

cp vars.example vars

然后编辑vars文件,找到如下位置并修改为你自己对应的信息

图片

然后使文件生效

source vars
./clean-all

1.4、生成根证书和根密钥

执行命令

./easyrsa build-ca

图片

1.5、生成server证书和server密钥

执行命令

./easyrsa build-server-full server

随后会生成3个文件:

server.crt
server.req
server.key

生成server.key的时候会要求输入密码,该密码用于启动openvpn服务时的认证(如果不填写即启动服务时不需要输入密码)

图片

1.6、生成client的根证书和根密钥

类似服务端,客户端也要生成证书和密钥。client.key文件的密码,用于客户端的密码认证。执行命令:

./easyrsa build-client-full client

图片

1.7、生成密钥交换文件dh.pem

执行命令:

./easyrsa gen-dh

执行完毕后,文件生成在/usr/share/easy-rsa/pki/dh.pem

1.8、最后整理生成的证书和密钥

把服务端的证书和密钥放入/etc/openvpn/server/下,把客户端的证书和密钥放入/etc/open/client/下:

cp ca.crt /etc/openvpn/server/
cp dh.pem /etc/openvpn/server/
cp server.crt /etc/openvpn/server/
cp server.key /etc/openvpn/server/

cp ca.crt /etc/openvpn/client/
cp client.crt /etc/openvpn/client/
cp client.key /etc/openvpn/client/

图片

2、修改服务器配置文件

执行命令

cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn

将server.conf文件复制到openvpn的配置目录下,这里可能每个人的目录都不一样,但是肯定是在doc目录下有一个openvpn的目录 编辑server.conf文件,找到如下位置并修改:

图片

图片

注意:这里不能有错误,有一个错误都会导致服务启动不起来

端口可以自己设定,但设定后要与待会客户端的保持一致
使用tcp或者udp协议,自己根据情况考虑
四个证书的位置,根据自己的路径设置好
server那一行,是服务端给客户端分配的IP地址默认是10.8.0.0段
第一个push,与自己上面的配置对应起来
第二个push,与自己服务器的内网IP对应起来,注意子网掩码不要错
修改加密方式为AES-256-GCM
最后保存文件

3、启动OpenVPN服务

到此就可以启动OpenVPN服务了,执行命令

openvpn --daemon --config server.conf

最后查看端口是否开启:

netstat -lntup | grep 1194

这里端口根据自己的配置输入

图片

4、启动路由转发

最后为服务器开启路由转发,这样客户端才可以访问服务器内网中的其他服务器。输入如下命令:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

5、客户端配置

5.1、证书及配置文件

先在服务端上找到client.conf,复制到openvpn目录下:

cp /usr/share/doc/openvpn/sample/sample-config-files/client.conf /etc/openvpn/client/

然后编辑client.conf文件 cipher AES-256-CBC 改为 cipher AES-256-GCM 找到 remote my-server-1 1194 改为 remote 111.6.XX.XX 1194

图片

此处IP为OpenVPN服务端的外网IP 最后将/etc/openvpn/client文件传输到客户端上。

5.2、安装OpenVPN,根据自己的情况在Windows或Linux下安装

  • Windows直接去下载安装包:
https://openvpn.net/community-downloads/
  • Linux输入命令:
yum -y install openvpn

5.3、连接服务端

5.3.1、Windows

Windows下找到你的OpenVPN的安装目录,打开config文件,将服务端的/etc/openvpn/client目录下的文件放到客户端的config目录下, 把client.conf重命名为client.ovpn

图片

最后,打开OpenVPN的设置,选高级,查看路径是否为你OpenVPN的正确路径。

图片

确认无误后直接连接即可。

图片

可以看到成功连接并获取到了服务端分配的IP。

图片

图片

5.3.2 Linux Linux下把服务端的/etc/openvpn/client目录传输到客户端上

图片

然后在客户端上运行client.conf

openvpn client.conf

可以看到连接成功

图片

查看IP地址

图片

可以看到客户端成功获取到服务端的分配的地址。

6、验证网络连通性

在客户端分别ping服务端地址,服务端内网其他地址。

ping 10.8.0.1
ping 111.6.xx.xx
ping 172.xx.xx.23
ping 172.xx.xx.60

可以看到网络全部都是连通的。

图片

图片

图片

图片

7、总结

至此已经完成了OpenVPN客户端与服务端的搭建,客户端也能成功与服务端内网进行通信,整个过程比较复杂,可以自己多配几遍,多理解一下,切记配置文件中的内容不能有一点错误,否则就会导致客户端连不上。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux系统
    +关注

    关注

    4

    文章

    567

    浏览量

    26913
  • UDP协议
    +关注

    关注

    0

    文章

    67

    浏览量

    12576
  • CentOS
    +关注

    关注

    0

    文章

    75

    浏览量

    13626
  • TCP通信
    +关注

    关注

    0

    文章

    144

    浏览量

    4138
收藏 人收藏

    评论

    相关推荐

    TCP服务端测试工具

    本帖最后由 小子 于 2024-3-20 22:58 编辑 该TCP服务端工具可以理解为 “TCP服务端” 或者 “服务器” ,目的是帮助大家
    发表于 06-29 09:22

    服务器远程服务器怎么办?服务器无法远程的原因是什么?

    解封。 2.远程端口没有添加到防火墙策略中 很多人可能对这个不是很理解,在这解释下:端口没有防火墙策略中允许所有人链接,那么这个端口就无法被访问, 同理,远程端口没有加入防火墙策略
    发表于 02-27 16:21

    【NanoPi M2试用体验】使用***搭建***服务器

    。总的来说主要是有两种作用:一个是加密通信,一个远程访问。下面介绍如何在NanoPi M2使用***搭建***服务器:1.下载安装:sud
    发表于 05-29 02:26

    4412开发板学习笔记-NFS服务器搭建

    文件系统,而RPC是负责负责信息的传输。NFS分服务器和客户机,当使用远端文件时只要用mount命令就可把远端NFS服务器的文件系统挂载
    发表于 06-20 14:29

    Linux下视频流媒体直播服务器搭建详解

    目标: 搭建网络直播流媒体服务器系统(Linux操作系统) 背景:用于OTT-TV大并发的直播和点播的套流媒体服务器系统。支持N x 24小时录制回看和直播的
    发表于 06-02 14:35

    服务端视角看高并发难题

    `所谓服务器大流量高并发指的是:同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈。 从服务端
    发表于 11-02 15:11

    linux下怎么搭建服务器

    e、点击云服务器进入服务器管理界面:f、此时可以看到你的服务器的公网ip,比如我的(118.89.32.60),之后的所有服务器访问都是通过公网ip进行访问的,为了测试本地计算机是否能
    发表于 07-08 07:02

    Linux系统搭建 Web 服务器

    服务器,并在其配置项目所需服务端;如果电脑主机是Linux 系统,则直接在其配置服务端即可。虚拟机VMware(收费,不过可以用破解版
    发表于 07-09 07:56

    BTC设备服务器的系统搭建

    ________________________________________以上是设备服务?客户服务端的介绍,?此,?相对简单的设备服务
    发表于 09-24 09:05

    寻找!嵌入式linux利用web服务器升级

    利用http搭建服务器,通过web操作,+后台服务端+终端升级嵌入式linux通过
    发表于 06-24 11:11

    监控系统客户服务端设计

    项目开发报告1 项目简介1.1 概述1.2 开发环境1.3 其他支持1.4 应用界面1.4.1 服务器端1.4.2 客户1.5 程序使用2 项目开发2.1 搭建基于实验平台数据库2.1.1 数据库
    发表于 12-21 07:02

    Ubuntu利用Flask搭建简单的服务器的方法

    首先在Ubuntu利用Flask搭建简单的服务器,并且打开利用配置好ESP32的Arduino开发环境后自带的"WiFi.h"
    发表于 02-15 06:04

    ARM服务器准备如何解决服务端渲染的问题

    针对云手机、视频流云游戏行业,ARM服务器准备如何解决服务端渲染的问题?目前的状况了解,PCIE显卡对安卓游戏的支持还不够成熟
    发表于 09-13 14:58

    如何使用Raspberry Pi搭建VPN服务器

    想要搭建一个VPN?用月费来租一个很容易,但是如果您有Raspberry Pi,并且了解一些专业知识,就可以搭建自己的VPN服务器了!
    的头像 发表于 02-24 16:59 2391次阅读
    如何使用Raspberry Pi<b class='flag-5'>搭建</b><b class='flag-5'>VPN</b><b class='flag-5'>服务器</b>

    ORB305连接Linux搭建OpenVPN服务器操作手册

    1、网络拓扑用户服务器部署再云服务器,系统采用Linux系统,用户需要Linux系统搭建一套openVPN服务器,实现与终端路由器建立
    的头像 发表于 11-07 10:09 505次阅读
    ORB305连接Linux<b class='flag-5'>搭建</b>的<b class='flag-5'>OpenVPN</b><b class='flag-5'>服务器</b>操作手册