返回顶部
首页 > 资讯 > 服务器 >如何在Cent OS 7上设置和配置OpenVPN服务器
  • 457
分享到

如何在Cent OS 7上设置和配置OpenVPN服务器

服务器运维linuxcentos 2023-10-08 06:10:11 457人浏览 独家记忆
摘要

介绍 虚拟专用网络(VPN)允许您像在专用网络上一样穿越不受信任的网络。当您的智能手机或笔记本电脑连接到不受信任的网络(如酒店或咖啡店的WiFi)时,它可以让您自由安全地访问互联网。当与https连接结合使用时,此设置允许您保护您的无线登录

介绍

虚拟专用网络(VPN)允许您像在专用网络上一样穿越不受信任的网络。当您的智能手机或笔记本电脑连接到不受信任的网络(如酒店或咖啡店的WiFi)时,它可以让您自由安全地访问互联网。当与https连接结合使用时,此设置允许您保护您的无线登录和交易。您可以规避地理限制和审查,保护您的位置和任何未加密的Http流量不受不可信网络的影响。OpenVPN是一个全功能、开源的安全套接字层(SSL) VPN解决方案,支持多种配置。在本教程中,您将在Centos 7服务器上设置OpenVPN,然后将其配置为可从客户端机器访问。

前提

要学习本教程,您需要:

一台CentOS 7服务器,一个sudo非root用户,一个用firewalld设置的防火墙,您可以通过我们的CentOS 7服务器初始设置指南和新CentOS 7服务器的其他建议步骤来实现。

解析到您的服务器并可用于证书的域或子域。要进行设置,您首先需要注册一个域名,然后通过DigitalOcean控制面板添加一个DNS记录。注意,只要添加一条A记录就可以满足本教程的要求。

您将用来连接到OpenVPN服务器的客户机。出于本教程的目的,建议您使用本地机器作为OpenVPN客户端。

步骤1 —安装OpenVPN

首先,我们将在服务器上安装OpenVPN。我们还将安装Easy RSA,这是一个公钥基础设施管理工具,它将帮助我们建立一个内部证书颁发机构(CA ),用于我们的VPN。稍后,我们还将使用Easy RSA来生成SSL密钥对,以保护VPN连接。

以非根sudo用户的身份登录到服务器,并更新包列表以确保您拥有所有最新版本。

sudo yum update -y

Enterprise linux (EPEL)存储库的额外软件包是由Fedora项目管理的一个额外的存储库,包含非标准但流行的软件包。OpenVPN在默认的CentOS存储库中不可用,但在EPEL可用,所以安装EPEL:

sudo yum install epel-release -y

然后再次更新您的套餐列表:

sudo yum update -y

接下来,安装OpenVPN和wget,我们将使用它们来安装Easy RSA:

sudo yum install -y openvpn wget

使用wget,下载简易RSA。出于本教程的目的,我们建议使用easy-rsa-2,因为这个版本有更多可用的文档。您可以在项目的发布页面上找到easy-rsa-2最新版本的下载链接:

wget -O /tmp/easyrsa https://GitHub.com/OpenVPN/easy-rsa-old/arcHive/2.3.3.tar.gz

接下来,用tar提取压缩文件:

tar xfz /tmp/easyrsa

这将在您的服务器上创建一个名为easy-rsa-old-2.3.3的新目录。在/etc/openvpn下新建一个子目录,命名为easy-rsa:

sudo mkdir /etc/openvpn/easy-rsa

将提取的Easy RSA文件复制到新目录:

sudo cp -rf easy-rsa-old-2.3.3/easy-rsa/2.0/* /etc/openvpn/easy-rsa

 然后将目录的所有者更改为您的非根sudo用户:

sudo chown sammy /etc/openvpn/easy-rsa/

一旦安装了这些程序并将其移动到系统上的正确位置,下一步就是定制OpenVPN的服务器端配置。

步骤2 —配置OpenVPN

像许多其他广泛使用的开源工具一样,有许多配置选项可供您选择。在本节中,我们将提供如何设置基本OpenVPN服务器配置的说明。

OpenVPN的文档目录中有几个示例配置文件。首先,复制示例server.conf文件作为您自己的配置文件的起点。

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

使用您选择的文本编辑器打开新文件进行编辑。我们将在我们的示例中使用nano,如果您的服务器上还没有它,您可以使用yum install nano命令下载它:

sudo nano /etc/openvpn/server.conf

这个文件中有几行我们需要修改,其中大部分只需要通过删除分号来取消注释;,在行首。这些行的功能,以及本教程中没有提到的其他行,在每一行上面的注释中有深入的解释。

首先,找到并取消注释包含push“redirect-gateway de f1 bypass-DHCP”的行。这样做将告诉您的客户端通过您的OpenVPN服务器重定向其所有流量。请注意,启用此功能可能会导致与其他网络服务(如ssh)的连接问题:

因为您的客户端将无法使用ISP提供的默认DNS服务器(因为它的流量将被重新路由),所以您需要告诉它可以使用哪些DNS服务器连接到OpenVPN。你可以选择不同的DNS服务器,但这里我们将使用谷歌的公共DNS服务器,它们拥有8.8.8.8和8.8.4.4的IP地址。

通过取消对“dhcp-option DNS ...”的注释来进行设置线路和更新IP地址: 

我们希望OpenVPN在启动后运行时没有特权,所以我们需要告诉它使用一个用户和一组nobody来运行。为此,取消对user nobody和group nobody行的注释:

接下来,取消对拓扑子网行的注释。这与它下面的server 10.8.0.0 255.255.255.0行一起,将您的OpenVPN安装配置为作为子网运行,并告诉客户机应该使用哪个IP地址。在这种情况下,服务器将变成10.8.0.1,第一个客户机将变成10.8.0.2:

还建议您将下面一行添加到服务器配置文件中。这双重检查任何传入的客户端证书是否确实来自客户端,强化了我们将在后面的步骤中建立的安全参数:

最后,OpenVPN强烈建议用户启用TLS认证,这是一种确保计算机网络安全通信的加密协议。为此,您将需要生成一个静态加密密钥(在我们的示例中命名为myvpn.tlsauth,尽管您可以选择自己喜欢的任何名称)。在创建此密钥之前,通过在包含tls-auth ta.key 0的配置文件中添加分号来注释该行。然后,将tls-crypt myvpn.tlsauth添加到它下面的行中:

保存并退出OpenVPN服务器配置文件(在nano中,按CTRL - X,Y,然后按ENTER键执行此操作),然后使用以下命令生成静态加密密钥:

sudo openvpn --genkey --secret /etc/openvpn/myvpn.tlsauth

现在您的服务器已经配置好了,您可以继续设置安全连接到VPN连接所需的SSL密钥和证书。

步骤3 —生成密钥和证书

Easy RSA使用一组随程序安装的脚本来生成密钥和证书。为了避免每次需要生成证书时都要重新配置,您可以修改Easy RSA的配置,以定义它将用于证书字段的默认值,包括您的国家、城市和首选电子邮件地址。

我们将通过创建一个目录来开始生成密钥和证书的过程,Easy RSA将在该目录中存储您生成的任何密钥和证书:

sudo mkdir /etc/openvpn/easy-rsa/keys

默认证书变量是在/etc/openvpn/easy-rsa中的vars文件中设置的,因此打开该文件进行编辑:

sudo nano /etc/openvpn/easy-rsa/vars

 滚动到文件底部,并更改以export KEY_开头的值以匹配您的信息。最重要的是:

 KEY_CN:在这里,输入解析到您的服务器的域或子域。 KEY_NAME:您应该在这里输入服务器。如果输入其他内容,还必须更新引用server.key和server.crt的配置 文件。

该文件中您可能希望更改的其他变量有:

KEY_COUNTRY:对于该变量,输入您居住的国家的两个字母的缩写。KEY_PROVINCE:这应该是您居住的州的名称或缩写。KEY_CITY:在这里,输入您居住的城市名称。KEY_ORG:这应该是您的组织或公司的名称。KEY_EMaiL:输入您希望连接到安全证书的电子邮件地址。KEY_OU:这应该是您所属的“组织单位”的名称,通常是您的部门或团队的名称。

除了特定的用例之外,其余的变量可以安全地忽略。完成更改后,文件应该如下所示:

保存并关闭文件。

要开始生成密钥和证书,请转到easy-rsa目录,并在vars文件中设置新变量:

cd /etc/openvpn/easy-rsasource ./vars

运行Easy RSA的全部清除脚本,删除文件夹中已有的任何密钥和证书,并生成证书颁发机构:

./clean-all

接下来,用build-ca脚本构建证书颁发机构。系统会提示您为证书字段输入值,但是如果您之前在vars文件中设置了变量,那么您的所有选项都将被设置为默认值。您可以按ENTER键接受每个选项的默认值:

./build-ca

此脚本生成一个名为ca.key的文件。这是用于签署服务器和客户端证书的私钥。如果该文件丢失,您就不能再信任来自该证书颁发机构的任何证书,如果任何人能够访问该文件,他们就可以签署新的证书并在您不知情的情况下访问您的VPN。为此,OpenVPN建议将ca.key存储在一个尽可能可以脱机的位置,只有在创建新证书时才应激活它。

接下来,使用build-key-server脚本为服务器创建一个密钥和证书:

./build-key-server server

与构建CA一样,您将看到您设置为默认值的值,因此您可以在这些提示下按ENTER键。此外,系统会提示您输入挑战密码和可选的公司名称。如果您输入一个挑战密码,当从您的客户端连接到VPN时,您将被要求输入。如果您不想设置挑战密码,只需将此行留空并按ENTER键。最后,输入Y提交更改。

创建服务器密钥和证书的最后一部分是生成Diffie-Hellman密钥交换文件。使用build-dh脚本来完成此操作:

./build-dh

这可能需要几分钟才能完成。

一旦您的服务器完成生成密钥交换文件,将服务器密钥和证书从keys目录复制到openvpn目录:

cd /etc/openvpn/easy-rsa/keyssudo cp dh2048.pem ca.crt server.crt server.key /etc/openvpn

每个客户端还需要一个证书,以便OpenVPN服务器对其进行认证。这些密钥和证书将在服务器上创建,然后您必须将它们复制到您的客户端,这将在后面的步骤中完成。建议您为打算连接到VPN的每个客户端生成单独的密钥和证书。

因为我们在这里只设置一个客户端,所以我们称它为客户端,但是如果您愿意,您可以将其更改为更具描述性的名称:

cd /etc/openvpn/easy-rsa./build-key client

最后,将版本化的openssl配置文件openssl-1.0.0.cnf复制到无版本名称openssl.cnf。否则可能会导致错误,即OpenSSL无法加载配置,因为它无法检测其版本:

cp /etc/openvpn/easy-rsa/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

现在已经为您的服务器和客户机生成了所有必需的密钥和证书,您可以继续设置两台机器之间的路由。

第4步—路由

到目前为止,您已经在服务器上安装了OpenVPN,对其进行了配置,并生成了客户端访问VPN所需的密钥和证书。但是,您还没有向OpenVPN提供任何关于将来自客户端的输入WEB流量发送到哪里的指令。您可以通过建立一些防火墙规则和路由配置来规定服务器应该如何处理客户端流量。

假设您遵循了本教程开始时的先决条件,那么您应该已经在您的服务器上安装并运行了firewalld。要允许OpenVPN通过防火墙,您需要知道您的活动防火墙区域是什么。使用以下命令找到它:

sudo firewall-cmd --get-active-zones

接下来,将openvpn服务添加到活动区域内firewalld允许的服务列表中,然后通过再次运行该命令并添加- permanent选项来使该设置永久化:

sudo firewall-cmd --zone=trusted --add-service openvpnsudo firewall-cmd --zone=trusted --add-service openvpn --permanent

您可以使用以下命令检查服务是否已正确添加:

sudo firewall-cmd --list-services --zone=trusted

接下来,将伪装添加到当前运行时实例,然后使用- permanent选项再次添加它,以将伪装添加到所有未来的实例:

sudo firewall-cmd --add-masqueradesudo firewall-cmd --permanent --add-masquerade

您可以使用以下命令检查伪装是否已正确添加:

sudo firewall-cmd --query-masquerade

接下来,将路由转发到您的OpenVPN子网。为此,您可以首先创建一个变量(在我们的示例中为SHARK ),它将代表您的服务器使用的主网络接口,然后使用该变量永久添加路由规则:

SHARK=$(ip route get 8.8.8.8 | awk 'NR==1 {print $(NF-2)}')sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $SHARK -j MASQUERADE

请务必通过重新加载firewalld来实现对防火墙规则的这些更改:

sudo firewall-cmd --reload

接下来,启用IP转发。这将把所有的网络流量从你的客户端路由到你的服务器的IP地址,你的客户端的公共IP地址将被有效地隐藏。

打开sysctl.conf进行编辑:

sudo nano /etc/sysctl.conf

然后在文件顶部添加以下行:

最后,重新启动网络服务,使IP转发生效:

sudo systemctl restart network.service

有了路由和防火墙规则,我们就可以在服务器上启动OpenVPN服务了。

步骤5 —启动OpenVPN

使用systemctl将OpenVPN作为systemd服务进行管理。我们将配置OpenVPN在启动时启动,这样只要您的服务器在运行,您就可以随时连接到您的VPN。为此,通过将OpenVPN服务器添加到systemctl:

sudo systemctl -f enable openvpn@server.service

然后启动OpenVPN服务:

sudo systemctl start openvpn@server.service

使用以下命令仔细检查OpenVPN服务是否处于活动状态。您应该在输出中看到active(正在运行):

sudo systemctl status openvpn@server.service

我们现在已经完成了OpenVPN的服务器端配置。接下来,您将配置您的客户机并连接到OpenVPN服务器。

步骤6 —配置客户端

不管您的客户端机器的操作系统是什么,它都需要CA证书和在步骤3中生成的客户端密钥和证书的本地保存副本,以及您在步骤2结束时生成的静态加密密钥。

在您的服务器上找到下列文件。如果您生成了多个具有唯一的描述性名称的客户端密钥,那么密钥和证书名称将会不同。在本文中,我们使用客户端。

将这些文件复制到您的客户机上。你可以使用SFTP或你喜欢的方法。您甚至可以在文本编辑器中打开文件,将内容复制并粘贴到客户机上的新文件中。无论您使用哪种方法,请务必记下保存这些文件的位置。

接下来,在客户机上创建一个名为client.ovpn的文件。这是一个OpenVPN客户端的配置文件,告诉它如何连接到服务器:

sudo nano client.ovpn

然后将以下行添加到client.ovpn中。请注意,这些行中的许多行反映了我们取消注释或添加到server.conf文件中的行,或者默认情况下已经存在的行:

添加这些行时,请注意以下几点:

您需要更改第一行,以反映您在密钥和证书中提供给客户端的名称;在我们的例子中,这只是client您还需要将ip地址从your_server_ip更新为您的服务器的IP地址;端口1194可以保持不变确保您的密钥和证书文件的路径是正确的

现在,任何OpenVPN客户端都可以使用该文件连接到您的服务器。以下是有关如何连接客户端的特定于操作系统的说明:

windows:在Windows上,您将需要官方的OpenVPN社区版二进制文件,它带有一个GUI。把你的.ovpn配置文件放到正确的目录C:\Program Files\OpenVPN\config中,然后在GUI中单击Connect。Windows上的OpenVPN GUI必须以管理权限执行。MacOS:在macOS上,开源应用Tunnelblick提供了一个类似于Windows上的OpenVPN GUI的界面,并附带了OpenVPN和所需的TUN/TAP驱动程序。与Windows一样,唯一需要的步骤是将您的.ovpn配置文件放到~/Library/Application Support/Tunnelblick/configuration s目录中。或者,您可以双击您的.ovpn文件。Linux:在Linux上,您应该从发行版的官方存储库中安装OpenVPN。然后,您可以通过执行以下命令来调用OpenVPN:sudo openvpn --config ~/path/to/client.ovpn在您成功建立客户端连接之后,您可以通过检查Google显示您的公共IP来验证您的流量是通过VPN路由的。

来源地址:https://blog.csdn.net/zq13646205435/article/details/132040121

--结束END--

本文标题: 如何在Cent OS 7上设置和配置OpenVPN服务器

本文链接: https://www.lsjlt.com/news/425108.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Cent OS 7上设置和配置OpenVPN服务器
    介绍 虚拟专用网络(VPN)允许您像在专用网络上一样穿越不受信任的网络。当您的智能手机或笔记本电脑连接到不受信任的网络(如酒店或咖啡店的WiFi)时,它可以让您自由安全地访问互联网。当与HTTPS连接结合使用时,此设置允许您保护您的无线登录...
    99+
    2023-10-08
    服务器 运维 linux centos
  • 如何在Fedora上安装和配置Web服务器
    在Fedora上安装和配置Web服务器可以通过以下步骤实现: 安装Apache HTTP服务器:在终端中运行以下命令安装Apach...
    99+
    2024-04-02
  • 如何在CentOS上安装和配置Zabbix服务器
    在CentOS上安装和配置Zabbix服务器的步骤如下: 1.更新系统:首先,使用以下命令更新系统软件包到最新版本: sudo yu...
    99+
    2024-04-02
  • 如何在CentOS上配置和优化Nginx服务器
    在CentOS上配置和优化Nginx服务器有以下几个步骤: 安装Nginx 首先要安装Nginx,可以通过以下命令进行安装: s...
    99+
    2024-04-25
    CentOS
  • 如何在CentOS上安装和配置NFS服务器
    要在CentOS上安装和配置NFS服务器,您可以按照以下步骤进行操作: 安装NFS服务器软件包: sudo yum instal...
    99+
    2024-04-25
    CentOS
  • 如何在 CentOS 7 上安装和配置 MS SQL(测试版)
    在本文中,我们将学习如何在CentOS 7上安装和配置MS SQL。微软最近宣布他们计划发布适用于Linux的MS SQL。特别是适用于RedHat企业版Linux、CentOS和Ubuntu的beta版本,但仅适用于64位版本。先决条件一...
    99+
    2023-10-22
  • 如何在CentOS服务器上配置NTP服务器
    这篇文章主要讲解了“如何在CentOS服务器上配置NTP服务器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在CentOS服务器上配置NTP服务器”吧!网络时间协议(NTP)用来同步网络...
    99+
    2023-06-10
  • 如何在 Ubuntu 18.04 上安装和配置 NFS 服务器
    网络文件系统(NFS)是一种分布式文件系统协议,允许您通过网络共享远程目录。 使用 NFS ,您可以在系统上安装远程目录,并使用远程计算机上的文件,就像它们是本地文件一样。 默认情况下,NFS 协议未...
    99+
    2023-09-15
    服务器 ubuntu linux 运维
  • 如何在ubuntu 15.04服务器上配置SNMPv3
    这篇文章主要介绍“如何在ubuntu 15.04服务器上配置SNMPv3”,在日常操作中,相信很多人在如何在ubuntu 15.04服务器上配置SNMPv3问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在...
    99+
    2023-06-17
  • 在服务器上配置Pytorch
    目录 1、安装Anaconda3 2、将Anaconda3的安装包上传至服务器  3、在服务器上安装Anaconda 4、配置清华源镜像(加速后续下载) 5、在Anaconda中配置虚拟环境 5.1 创建虚拟环境 5.2 激活虚拟环境 5...
    99+
    2023-10-26
    pytorch python 深度学习 服务器
  • 云服务器如何配置路由器上网功能设置
    首先,需要选择一款路由器来连接到Internet。可以使用路由器自带的“路由器设置”功能,或使用第三方路由器的“连接和配置”功能。 在路由器上设置上网参数。可以使用路由器自带的“网络参数”功能设置路由器的IP地址、子网掩码、网关等参数。...
    99+
    2023-10-27
    路由器 功能 服务器
  • 如何在阿里云服务器上安装和配置Nginx
    阿里云服务器是一款高性能的服务器产品,能够满足各种企业级应用的部署需求。本文将详细介绍如何在阿里云服务器上安装和配置Nginx。 一、准备阶段在开始安装Nginx之前,首先需要准备以下几项工作:创建阿里云服务器:在阿里云官方网站上创建一个阿...
    99+
    2023-11-10
    阿里 器上 如何在
  • 如何在FreeBSD系统上安装和配置Web服务器
    在FreeBSD系统上安装和配置Web服务器可以通过以下步骤实现: 安装Apache HTTP服务器: 在终端中运行以下命令安装...
    99+
    2024-04-09
    FreeBSD
  • 如何在华为云服务器上设置上网
    步骤一:登录服务器 首先,您需要登录到您的华为云服务器。您可以使用 SSH 客户端,如 PuTTY 或 Xshell,通过 IP 地址和用户名进行登录。 步骤二:检查网络连接 在登录到服务器后,您需要检查服务器的网络连接是否正常。您可以使...
    99+
    2023-10-26
    华为 器上 如何在
  • 如何在FreeBSD系统上配置和启动服务
    在FreeBSD系统上配置和启动服务可以通过以下步骤完成: 配置服务:首先,需要在配置文件中指定服务的设置。通常,服务的配置文件...
    99+
    2024-04-02
  • 在CentOS服务器上如何安装配置LEMP
    本篇内容介绍了“在CentOS服务器上如何安装配置LEMP”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LEMP 组合包是一款日益流行的网站...
    99+
    2023-06-10
  • 如何在Ubuntu系统上配置PXE服务器
    本篇内容主要讲解“如何在Ubuntu系统上配置PXE服务器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Ubuntu系统上配置PXE服务器”吧!PXE概述PXE(preboot execu...
    99+
    2023-06-13
  • 如何在阿里云上配置Web服务器
    随着互联网的快速发展,Web服务器的配置和管理变得越来越重要。阿里云作为国内领先的云服务提供商,提供了丰富的Web服务器配置服务。本文将详细介绍如何在阿里云上配置Web服务器。 一、阿里云的Web服务器服务阿里云提供了丰富多样的Web服务器...
    99+
    2023-11-02
    阿里 服务器 如何在
  • 如何设置和配置云服务器(苹果系统)
    1. 选择云服务器提供商 选择一个可靠的云服务器提供商,如亚马逊AWS、谷歌云或微软Azure。这些提供商都有适用于苹果系统的云服务器选项。 2. 创建云服务器实例 在提供商的控制台中,创建一个新的云服务器实例。选择适合你需求的实例类型和...
    99+
    2023-10-27
    如何设置 苹果 服务器
  • 如何在CentOS 7上安装并配置Python 3.6环境
    这期内容当中小编将会给大家带来有关如何在CentOS 7上安装并配置Python 3.6环境,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当前***的 CentOS 7.3 默认安装的是 Python 2...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作