CentOS 7 VPN搭建完整教程

目录

  1. 前言
  2. VPN 服务简介
  3. 安装 OpenVPN
  4. 配置 OpenVPN 服务
  5. 防火墙设置
  6. 启动 OpenVPN 服务
  7. 客户端连接 VPN
  8. FAQ

前言

CentOS 7 是一款广受欢迎的开源操作系统,在服务器领域有着广泛的应用。在很多场景下,我们需要通过 VPN 来访问内网资源或者加强网络安全性。本文将详细介绍如何在 CentOS 7 系统上搭建 OpenVPN 服务,并提供常见问题的解答。

VPN 服务简介

VPN(Virtual Private Network) 即虚拟专用网络,是一种通过公共网络建立安全连接的技术。VPN 可以为用户提供以下功能:

  • 数据加密: 确保数据在传输过程中不被窃取或篡改
  • IP 地址隐藏: 隐藏用户的真实 IP 地址,提高上网安全性
  • 访问限制: 仅允许授权用户访问内网资源

在本教程中,我们将使用开源的 OpenVPN 软件来搭建 VPN 服务。

安装 OpenVPN

  1. 更新系统软件包:

    bash yum update -y

  2. 安装 OpenVPN 及其依赖包:

    bash yum install -y openvpn easy-rsa

配置 OpenVPN 服务

4.1 生成 CA 证书

  1. 进入 easy-rsa 目录:

    bash cd /usr/share/easy-rsa/

  2. 复制 easy-rsa 配置文件:

    bash cp -rf vars.example vars

  3. 编辑 vars 文件,修改相关参数:

    set_var EASYRSA_REQ_COUNTRY “CN” set_var EASYRSA_REQ_PROVINCE “Beijing” set_var EASYRSA_REQ_CITY “Beijing” set_var EASYRSA_REQ_ORG “Your Organization” set_var EASYRSA_REQ_EMAIL “your@email.com” set_var EASYRSA_REQ_OU “your-organization-unit”

  4. 初始化 easy-rsa 环境:

    bash ./easyrsa init-pki

  5. 生成 CA 证书:

    bash ./easyrsa build-ca nopass

    此步骤会生成 pki/ca.crtpki/private/ca.key 文件。

4.2 创建服务端配置文件

  1. 进入 OpenVPN 配置目录:

    bash cd /etc/openvpn/

  2. 复制服务端配置文件模板:

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

  3. 编辑 server.conf 文件,修改以下参数:

    port 1194 proto udp dev tun ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/server.crt key /etc/openvpn/pki/private/server.key dh /etc/openvpn/pki/dh.pem server 10.8.0.0 255.255.255.0 push “redirect-gateway def1 bypass-dhcp” push “dhcp-option DNS 8.8.8.8” push “dhcp-option DNS 8.8.4.4” keepalive 10 120 comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3

4.3 创建客户端配置文件

  1. 生成客户端证书和密钥:

    bash ./easyrsa build-client-full client1 nopass

    此步骤会生成 pki/issued/client1.crtpki/private/client1.key 文件。

  2. 复制客户端配置文件模板:

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

  3. 编辑 client.ovpn 文件,修改以下参数:

    remote your-server-ip 1194 ca /etc/openvpn/pki/ca.crt cert /etc/openvpn/pki/issued/client1.crt key /etc/openvpn/pki/private/client1.key

防火墙设置

  1. 开放 OpenVPN 端口:

    bash firewall-cmd –permanent –add-port=1194/udp firewall-cmd –reload

启动 OpenVPN 服务

  1. 启动 OpenVPN 服务:

    bash systemctl start openvpn@server systemctl enable openvpn@server

客户端连接 VPN

  1. client.ovpn 文件发送给客户端。
  2. 客户端使用 OpenVPN 客户端软件连接 VPN 服务器。

FAQ

如何查看 OpenVPN 服务状态?

可以使用以下命令查看 OpenVPN 服务的状态:

bash systemctl status openvpn@server

如何查看 OpenVPN 日志?

OpenVPN 的日志文件位于 /var/log/openvpn/openvpn.log。可以使用以下命令查看日志:

bash tail -n 50 /var/log/openvpn/openvpn.log

如何管理 OpenVPN 客户端?

可以使用以下命令查看当前连接的 OpenVPN 客户端:

bash tail -n 50 /var/log/openvpn/openvpn-status.log

此命令会显示当前已连接的客户端 IP 地址和连接时间等信息。

如何撤销客户端证书?

如果需要撤销某个客户端的证书,可以执行以下步骤:

  1. 进入 easy-rsa 目录:

    bash cd /usr/share/easy-rsa/

  2. 撤销客户端证书:

    bash ./easyrsa revoke client1 ./easyrsa gen-crl

  3. pki/crl.pem 文件复制到 /etc/openvpn 目录下。

  4. server.conf 文件中添加以下配置:

    crl-verify /etc/openvpn/crl.pem

  5. 重启 OpenVPN 服务:

    bash systemctl restart openvpn@server

现在,已被撤销的客户端将无法再连接到 VPN 服务。

希望本教程对您有所帮助。如果您还有其他问题,欢迎随时与我们联系。

正文完