!bin/bash

dfbn6 2026-04-16 半仙VPN下载 20 0

CentOS系统中配置OpenVPN服务并管理用户认证信息(用户名与密码)

在企业网络部署或远程办公场景中,虚拟私人网络(VPN)是保障数据传输安全的重要手段,CentOS作为广泛使用的Linux发行版之一,常被用于搭建稳定、高效的服务器环境,OpenVPN因其开源特性、灵活性和良好的安全性,成为CentOS环境下实现远程访问的首选方案,本文将详细介绍如何在CentOS系统中安装、配置OpenVPN服务,并通过用户名与密码进行用户身份验证,确保远程连接的安全性。

确保你的CentOS系统已更新至最新版本(建议使用CentOS Stream 8或CentOS 7 LTS),并具备root权限,安装OpenVPN前,需先添加EPEL仓库(Extra Packages for Enterprise Linux):

sudo yum install epel-release -y
sudo yum update -y

接着安装OpenVPN及相关工具:

sudo yum install openvpn easy-rsa -y

安装完成后,需要生成证书颁发机构(CA)、服务器证书和客户端证书,使用Easy-RSA工具可简化这一过程:

make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa

编辑vars文件,设置国家、省份、组织等基本信息,如:

export KEY_COUNTRY="CN"
export KEY_PROVINCE="Beijing"
export KEY_CITY="Beijing"
export KEY_ORG="MyCompany"
export KEY_EMAIL="admin@mycompany.com"

运行以下命令生成CA证书:

./clean-all
./build-ca

随后生成服务器证书:

./build-key-server server

为每个用户生成独立的客户端证书和密钥,例如创建名为user1的用户:

./build-key user1

每个用户的证书文件会存储在/etc/openvpn/easy-rsa/keys/目录下,包括user1.crtuser1.keyca.crt,这些文件是后续配置客户端连接的关键。

接下来配置OpenVPN服务端口监听和加密参数,编辑主配置文件:

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

修改关键配置项如下:

  • port 1194:指定监听端口(可自定义)
  • proto udp:使用UDP协议提升性能
  • dev tun:创建隧道设备
  • ca ca.crt
  • cert server.crt
  • key server.key
  • dh dh.pem(需运行./build-dh生成)
  • user nobody
  • group nobody
  • server 10.8.0.0 255.255.255.0:分配给客户端的IP段
  • push "redirect-gateway def1 bypass-dhcp":强制客户端流量走VPN

最关键的是启用用户名和密码认证,在/etc/openvpn/server.conf中添加:

auth-user-pass-verify /etc/openvpn/checkpw.sh via-env

这表示调用脚本checkpw.sh进行用户验证,该脚本内容如下:

USER=$1
PASS=$2
if [ "$USER" = "user1" ] && [ "$PASS" = "password123" ]; then
    exit 0
else
    exit 1
fi

赋予执行权限:

chmod +x /etc/openvpn/checkpw.sh

重启OpenVPN服务使配置生效:

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server

在客户端配置时,需提供用户名和密码,可通过图形界面或命令行输入,这样,只有经过身份验证的用户才能建立连接,有效防止未授权访问。

通过上述步骤,你可以在CentOS上构建一个基于用户名和密码认证的OpenVPN服务,兼顾安全性与易用性,适用于中小型企业和远程办公需求。

!bin/bash

VPN加速器|半仙VPN加速器-免费VPN梯子首选半仙VPN