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

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

3天内不再提示

如何在Linux上设置OpenVPN服务器和客户端

马哥Linux运维 来源:huaweicloud 2024-08-05 15:10 次阅读

VPN 代表虚拟专用网络

虚拟专用网络使计算机能够将数据从一个专用网络发送和接收到另一个通过公共网络(Internet)连接的专用网络。

这对于那些在公司内网之外,并且喜欢安全地连接到办公网络以访问内部服务器的人来说是有帮助的。当您将多个分支机构连接在一起时,VPN 也很有帮助。

即使您没有将多个分支机构连接在一起,您仍然可以使用 VPN 设置让您的员工从他们的笔记本电脑远程连接到数据中心并访问系统。

569efe2c-4fa4-11ef-b8af-92fbcf53809c.png

有时公司会购买专线组成WAN(广域网),并与分支机构进行通信。专线虽然安全可靠,但价格昂贵。

VPN 通过通过公共网络提供点对点虚拟连接来填补这一空白。VPN 可以扩展以轻松容纳不同地理位置的更多用户。

VPN的类型

概括地说,以下是两种类型的 VPN:

远程访问

站点到站点

远程访问是通过 VPN 将个人计算机连接到网络。“站点到站点”通过 VPN 将两个网络连接在一起。

什么是 OpenVPN

来自 OpenVPN 人:

OpenVPN 是 James Yonan 的开源 VPN 守护程序。OpenVPN 是一个强大且高度灵活的 VPN 守护程序。OpenVPN 支持 SSL/TLS 安全性、以太网桥接、通过代理或 NAT 的 TCP 或 UDP 隧道传输、对动态 IP 地址和 DHCP 的支持、对成百上千用户的可扩展性以及对大多数主要操作系统平台的可移植性。

教程解释了为远程访问设置和配置 OpenVPN 服务器和客户端的过程。

一、配置OpenVPN——服务器端

1. 安装 OpenVPN

在服务器和客户端机器上安装 openvpn 包。

$ sudo apt-get install openvpn

使用您正在使用的发行版的相应包管理器。如果您使用的是 yum,请执行以下操作

$ yum install openvpn

2.创建目录并设置Env变量

在/etc/openvpn中创建一个目录并将easy-rsa内容复制到其中。这样做是为了确保在升级包时对脚本所做的更改不会丢失。将所有者更改为当前用户,以便当前用户具有创建文件的权限。

$ sudo mkdir /etc/openvpn/easy-rsa 

$ sudo cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa 

$ sudo chown -R $USER /etc/ openvpn/easy-rsa/

接下来,编辑/etc/openvpn/easy-rsa/vars以适应您的环境。

export KEY_COUNTRY="IN" 
export KEY_PROVINCE="TN" 
export KEY_CITY="CHN" 
export KEY_ORG="tgs" 
export KEY_EMAIL="admin@hgst.com.cn"

3. 创建 CA – 证书颁发机构(根证书)

构建 openvpn 服务器的下一步是建立一个公钥基础设施,以便服务器和客户端可以相互验证。

$ cd /etc/openvpn/easy-rsa/

$ source vars

$ ./clean-all

$ ln -s openssl-1.0.0.cnf openssl.cnf

$ ./build-ca

Generating a 1024 bit RSA private key
........++++++
......++++++
unable to write 'random state'
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [IN]:
State or Province Name (full name) [TN]:
Locality Name (eg, city) [CHN]:
Organization Name (eg, company) [tgs]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]:
Name [changeme]:lakshmanan
Email Address [mail@host.domain]:admin@hgst.com.cn

./build-ca完成后,您将在/etc/openvpn/easy-rsa/keys/中看到一个名为“ca.key”和“ca.crt ”的文件

请记住,“.key”文件必须保密。

4. 为服务器创建证书

下一步是为我们的 Openvpn 服务器创建一个证书。

$ /etc/openvpn/easy-rsa/build-key-server vpnserver
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

请注意,vpnserver 是服务器的 HOSTNAME。该命令将接受用户的输入,类似于前一个命令。此命令将为服务器创建证书和密钥文件。

5. 为客户创建证书

VPN 客户端还需要证书来与服务器进行身份验证。如果要配置多个客户端,则需要为每个客户端分别创建证书。

$ ./build-key vpnclient1
...
...

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

vpnclient1 是客户端的主机名。此命令将为客户端创建证书和密钥文件。

6. 创建 Diffie Hellman 参数

$ ./build-dh

成功完成上述所有步骤后,您将在/etc/openvpn/easy-rsa/keys中拥有许多密钥和证书文件。

7. 将证书复制到相应位置

我们已经创建了根证书、服务器证书和客户端证书。我们需要将它们复制到适当的位置。

$ cd /etc/openvpn/easy-rsa/keys/ 

$ sudo cp ca.crt vpnserver.crt vpnserver.key dh1024.pem /etc/openvpn/ 

$ scp ca.crt vpnclient1.key vpnclient1.crt root@vpnclient1:/etc /openvpn

现在我们已将客户端证书和密钥复制到客户端计算机。在复制密钥文件时,请记住使用 scp 之类的安全介质。

8. 配置服务器

OpenVPN 提供了一个默认的 server.conf。您可以根据需要对其进行修改。

$ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ 

$ sudo gzip -d /etc/openvpn/server.conf.gz

编辑“/etc/openvpn/server.conf”。

ca ca.crt
cert vpnserver.crt
key vpnserver.key
dh dh1024.pem

现在启动 OpenVPN 服务器:

$ sudo /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'server'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255

默认情况下,openVPN 会在 syslog 文件中记录错误。

二、配置 OpenVPN – 客户端

9. 设置客户端配置文件

现在我们将配置 openVPN 作为客户端工作。记住我们已经在客户端安装了openvpn包,我们在/etc/openvpn/中有“ca.crt”、“vpnclient1.key”、vpnclient1.crt”

将示例 client.conf 复制到/etc/openvpn。

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

编辑/etc/openvpn/client.conf。

...
# Specify that this is openvpn client
client

remote vpnserver 1194

ca ca.crt

cert vpnclient1.crt

key vpnclient1.key

现在在客户端启动 OpenVPN

$ /etc/init.d/openvpn start
 * Starting virtual private network daemon(s)... 
 * Autostarting VPN 'client'

$ ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255

10. 测试 VPN 设置

从客户端机器 ping vpnserver 以查看 VPN 是否正常工作。

$ ping 10.8.0.1

PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_req=1 ttl=64 time=2.14 ms

如果您能够 ping 通,那么您已经进行了正确的设置。

请记住以下几点:

确保客户端和服务器使用相同的协议和端口号。

客户端和服务器必须对一些参数使用相同的配置,如密钥大小、压缩等……

如果出现任何问题,请在配置中增加日志详细程度并检查 syslog 文件以进行故障排除。

链接:https://bbs.huaweicloud.com/blogs/369552

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

    关注

    87

    文章

    11120

    浏览量

    207868
  • 服务器
    +关注

    关注

    12

    文章

    8680

    浏览量

    84508
  • 客户端
    +关注

    关注

    1

    文章

    287

    浏览量

    16602

原文标题:如何在 Linux 上轻松设置 OpenVPN 服务器和客户端:完整教程与实用技巧

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如果ESP的TCP客户端服务器断开连接,如何启用自动重连?

    ESP - TCP 客户端 嵌入式 Linux 服务器 - TCP 服务器 如果ESP的TCP客户端
    发表于 07-17 06:25

    IR915作为OpenVPN服务器实现客户端子网互联的过程

    网络拓扑 1.配置openvpn server 导入相关的证书文件.(ca.cartca证书、 inhandserver.key服务器端私钥、inhandserver.crt服务器端
    发表于 07-25 08:10

    OpenVPN下载、安装、配置及使用详解

    : ca.crtclient.crtclient.key(名称client根据个人设置可能有所不同)ta.key(如果服务器端具备此文件,客户端也应具备)第二步:编写对应的配置文件上面我们已经创建了
    发表于 07-25 06:14

    基于OpenVPN技术实现InRouter与SINEMA Remote Connect建立连接

    灰色字体变为黑色字体 3. 创建并测试OpenVPN客户端 创建OpenVPN客户端: 配置服务器IP地址、端口号,点击新增
    发表于 07-25 07:52

    VPN如何配置Win7 PPTP(L2TP)客户端

    VPN—如何配置Win7 PPTP(L2TP)客户端? 1)、点击任务栏“开始”→“控制面板”→“网络和Internet”→ “网络和共享中心”,点击更改网络设置中的“设置新的连接或网
    发表于 07-26 08:02

    InRouter路由与中心OpenVPN服务器构建OpenVPN的方法

    ,使得OpenVPN成为中小型企业及个人的VPN首选产品。OpenVPN的大致工作原理就是在服务器端客户端之间搭建一个独立于当前网络环境的
    发表于 07-26 07:26

    一个服务器,多个客户端,怎么向指定的客户端发数据

    我用labview做服务器,单片机做客户端客户端几百个,怎么区分客户端,给指定的客户发发数据
    发表于 06-01 09:26

    labview-TCP多客户端服务器

    labview-TCP多客户端服务器一个服务器上位机,多个下位机客户端
    发表于 03-26 16:58

    如何同时开启服务器模式和客户端模式?

    如题,UCOSII或者FreeRtos下使用LWIP如何同时开启服务器模式和客户端模式,我这几天弄了下,单独跑其中一个,都好好的,但是同时跑,客户端连接上了,服务器就不行了,谁知道这要
    发表于 10-31 03:05

    通讯猫MQTT服务器在线客户端的问题

    我在网上找一个通讯猫MQTT服务器在线客户端。我有点糊涂,到底是服务器,还是客户端。可以连上,也可以发数据,就是不知道跟谁连。我从上面下了个WIN32
    发表于 11-19 12:17

    客户端服务器和网络技术

    基于服务器的计算代表着一种应用程序部署方法。 对以下基于服务器的计算环境而言,瘦客户端是理想的客户端设备: 借助 Windows 2000 或 Windows Server 2003
    发表于 07-02 16:46 17次下载
    瘦<b class='flag-5'>客户端</b>的<b class='flag-5'>服务器</b>和网络技术

    Linux下网络编程TCP并发服务器和TCP客户端程序免费下载

    本文档的主要内容详细介绍的是Linux下网络编程TCP并发服务器和TCP客户端程序免费下载
    发表于 01-08 15:12 9次下载
    <b class='flag-5'>Linux</b>下网络编程TCP并发<b class='flag-5'>服务器</b>和TCP<b class='flag-5'>客户端</b>程序免费下载

    Linux下TCP网络编程-创建服务器客户端

    这篇文章介绍在Linux下的socket编程,完成TCP服务器客户端的创建,实现数据通信。
    的头像 发表于 08-14 09:26 2285次阅读
    <b class='flag-5'>Linux</b>下TCP网络编程-创建<b class='flag-5'>服务器</b>与<b class='flag-5'>客户端</b>

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

    应公司要求需要在一台远程服务器搭建一个OpenVPN服务端,在公司本地服务器搭建一个
    的头像 发表于 05-26 15:03 6410次阅读
    在远程<b class='flag-5'>服务器</b><b class='flag-5'>上</b>搭建一个<b class='flag-5'>OpenVPN</b><b class='flag-5'>服务端</b>

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

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