如何在 CentOS 8/7 中安装和配置 OpenVPN 服务器?如何在 CentOS 8/7 中安装和配置 OpenVPN 服务器?如何在 CentOS 8/7 中安装和配置 OpenVPN 服务器?如何在 CentOS 8/7 中安装和配置 OpenVPN 服务器?
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 CentOS 8/7 中安装和配置 OpenVPN 服务器?

OpenVPN 是一种流行的开源 VPN 协议,允许通过互联网进行安全且私密的通信。借助 OpenVPN,您可以创建可从任何地方访问的虚拟专用网络,为远程用户提供安全且加密的连接。

在本文中,我们将讨论如何在流行的 Linux 发行版 CentOS 8/7 上安装和配置 OpenVPN。

先决条件

在继续安装之前,我们需要确保满足以下先决条件 -

  • 具有 root 访问权限的 CentOS 8/7 服务器。

  • 静态公共 IP 地址。

  • 安装在本地计算机上的 SSH 客户端。

第1步:安装OpenVPN服务器

第一步是在 CentOS 8/7 服务器上安装 OpenVPN 服务器。为此,请以 root 用户身份登录到服务器并运行以下命令 -

CentOS 8

dnf install -y openvpn

操作系统7

yum install -y epel-release
yum install -y openvpn

这将安装 OpenVPN 服务器和所有必要的依赖项。

第2步:配置OpenVPN服务器

安装 OpenVPN 后,下一步就是对其进行配置。 OpenVPN 的配置文件位于 /etc/openvpn 目录中。

步骤2.1:生成服务器证书和密钥

在开始配置之前,我们需要生成服务器证书和密钥。为此,我们将使用 EasyRSA 工具。

首先,通过运行以下命令在 CentOS 8/7 服务器上安装 EasyRSA -

dnf install -y easy-rsa

接下来,我们需要创建一个目录来存储 EasyRSA 文件。为此,请运行以下命令 -

mkdir /etc/openvpn/easy-rsa

现在,我们需要将 EasyRSA 文件从包复制到新创建的目录中。为此,请运行以下命令 -

cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

接下来,我们需要编辑 vars 文件来设置证书的默认值。为此,请运行以下命令 -

nano /etc/openvpn/easy-rsa/vars

在此文件中,您将找到一些可以修改以满足您的需要的变量。例如,您可以更改默认国家/地区、组织和电子邮件地址。

编辑 vars 文件后,保存并退出。

现在,我们需要为 EasyRSA 初始化 PKI(公钥基础设施)。为此,请运行以下命令 -

cd /etc/openvpn/easy-rsa/
./easyrsa init-pki

接下来,我们需要生成CA(证书颁发机构)证书和密钥。为此,请运行以下命令 -

./easyrsa build-ca nopass

这将生成没有密码的 CA 证书和密钥。

接下来,我们需要生成服务器证书和密钥。为此,请运行以下命令 -

./easyrsa build-server-full server nopass

这将生成没有密码的服务器证书和密钥。

步骤2.2:配置OpenVPN服务器

现在我们已经生成了必要的证书和密钥,下一步是配置 OpenVPN 服务器。

为此,我们需要为 OpenVPN 服务器创建一个配置文件。为了简单起见,我们将在 /etc/openvpn 目录中创建一个名为 server.conf 的文件。为此,请运行以下命令 -

nano /etc/openvpn/server.conf

在此文件中,粘贴以下配置 -

# OpenVPN server configuration file

# Set port number
port 1194

# Set protocol
proto udp

# Set server mode and network
dev tun
server 10.8.0.0 255.255.255.0

# Set server certificates and keys
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem

# Set DNS server(s)
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

# Set cipher and HMAC digest
cipher AES-256-CBC
auth SHA256

# Set keepalive time
keepalive 10 120

# Set logging level
verb 3

让我们逐一浏览一下这些选项 -

  • port - 此选项设置 OpenVPN 将侦听的端口号。默认值为 1194。

  • proto - 此选项设置 OpenVPN 使用的协议。我们将使用 UDP,它比 TCP 更快、更高效。

  • dev - 此选项设置 OpenVPN 使用的网络设备。我们将使用tun。

  • 服务器 - 此选项设置 OpenVPN 客户端将使用的网络。我们将使用 10.8.0.0/24。

  • ca, cert, key, dh - 这些选项设置我们之前生成的服务器证书和密钥。

  • push "dhcp-option DNS" - 此选项设置 OpenVPN 客户端将使用的 DNS 服务器。

  • cipher, auth - 这些选项设置 OpenVPN 将用于加密的密码和 HMAC 摘要。

  • keepalive - 此选项设置 OpenVPN 连接的保持活动时间。

  • verb - 此选项设置 OpenVPN 的日志记录级别。

保存并退出文件。

接下来,我们需要创建一个目录来存储客户端证书和密钥。为此,请运行以下命令 -

mkdir /etc/openvpn/client

现在,我们需要创建一个脚本来生成客户端证书和密钥。为此,请运行以下命令 -

nano /etc/openvpn/easy-rsa/gen-client.sh

在此文件中,粘贴以下脚本 -

#!/bin/bash

# Generate a client certificate and key
if [ $# -ne 1 ]; then
   echo "Usage: $0 <client_name>"
   exit 1
fi

CLIENT_NAME=$1

cd /etc/openvpn/easy-rsa/
./easyrsa build-client-full $CLIENT_NAME nopass

# Generate client configuration file
cat > /etc/openvpn/client/$CLIENT_NAME.ovpn << EOF
client
dev tun
proto udp
remote `curl -s https://ipinfo.io/ip` 1194
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
<ca>
   $(cat /etc/openvpn/easy-rsa/pki/ca.crt)
</ca>
<cert>
   $(cat /etc/openvpn/easy-rsa/pki/issued/$CLIENT_NAME.crt)
</cert>
<key>
   $(cat /etc/openvpn/easy-rsa/pki/private/$CLIENT_NAME.key)
</key>
EOF

# Set permissions on client configuration file
chmod 600 /etc/openvpn/client/$CLIENT_NAME.ovpn

该脚本使用 EasyRSA 工具生成客户端证书和密钥,然后创建客户端配置文件 (.ovpn),其中包含客户端连接到 OpenVPN 服务器所需的配置。

配置文件包含以下选项 -

  • client - 此选项设置 OpenVPN 客户端模式。

  • dev - 此选项设置 OpenVPN 使用的网络设备。我们将使用tun。

  • proto - 此选项设置 OpenVPN 使用的协议。我们将使用 UDP。

  • remote - 此选项设置 OpenVPN 服务器的 IP 地址或域名以及端口号。

  • resolv-retry - 此选项设置 OpenVPN 重试解析服务器地址的次数。

  • nobind - 此选项阻止 OpenVPN 绑定到特定的本地 IP 地址和端口号。

  • persist-key, persist-tun - 这些选项使密钥和隧道设备在连接之间保持活动状态。

  • comp-lzo - 此选项启用 LZO 压缩,从而减少通过 VPN 发送的数据大小。

  • verb - 此选项设置 OpenVPN 的日志记录级别。

  • ca, cert, key - 这些选项设置我们之前生成的客户端证书和密钥。

保存并退出文件。

接下来,我们需要使 gen-client.sh 脚本可执行。为此,请运行以下命令 -

chmod +x /etc/openvpn/easy-rsa/gen-client.sh

第 3 步:启动并启用 OpenVPN 服务器

现在我们已经配置了 OpenVPN 服务器,下一步是启动并启用它。为此,请运行以下命令 -

  • 启动 OpenVPN 服务

systemctl start openvpn@server
  • 启用 OpenVPN 服务在开机时启动

systemctl enable openvpn@server

这将启动 OpenVPN 服务并使其在启动时自动启动。

第 4 步:生成客户端证书和密钥

要生成客户端证书和密钥,请运行我们之前创建的 gen-client.sh 脚本。为此,请运行以下命令 -

/etc/openvpn/easy-rsa/gen-client.sh client1

这将为名为“client1”的客户端生成客户端证书和密钥。您可以将“client1”替换为您想要用于客户端的任何名称。

该脚本还将创建一个客户端配置文件 (/etc/openvpn/client/client1.ovpn),您可以使用该文件连接到 OpenVPN 服务器。

第 5 步:连接到 OpenVPN 服务器

要从客户端计算机连接到 OpenVPN 服务器,您需要安装 OpenVPN 客户端。有许多适用于不同平台的 OpenVPN 客户端,例如 OpenVPN Connect、Tunnelblick 和 OpenVPN GUI。

安装 OpenVPN 客户端后,您需要导入我们之前创建的客户端配置文件 (/etc/openvpn/client/client1.ovpn)。导入配置文件的具体过程取决于您使用的 OpenVPN 客户端。

导入配置文件后,您可以通过单击“连接”按钮连接到 OpenVPN 服务器。如果一切配置正确,您应该能够与 OpenVPN 服务器建立安全且加密的连接。

结论

在本文中,我们讨论了如何在 CentOS 8/7 上安装和配置 OpenVPN 服务器。我们还讨论了如何生成服务器和客户端证书和密钥,以及如何从客户端计算机连接到 OpenVPN 服务器。

OpenVPN 是一种功能强大且灵活的 VPN 协议,可以通过互联网提供安全且私密的通信。通过本文概述的步骤,您应该能够在 CentOS 8/7 服务器上设置 OpenVPN 服务器,并开始使用它安全、私密地连接到互联网。

©2015-2025 艾丽卡 support@alaica.com