!bin/bash

dfbn6 2026-05-11 VPN翻墙 10 0

CentOS系统中配置OpenVPN服务并设置用户密码认证详解

在企业网络或远程办公场景中,使用虚拟私人网络(VPN)建立安全的通信通道是常见需求,CentOS作为一款稳定、开源的操作系统,广泛应用于服务器环境中,本文将详细介绍如何在CentOS 7/8系统上部署OpenVPN服务,并通过用户名和密码进行身份验证,实现安全的远程访问。

确保你已准备好一台运行CentOS的服务器,并具备root权限,建议先更新系统软件包:

sudo yum update -y

安装OpenVPN及相关依赖组件,OpenVPN通常需要Easy-RSA工具来管理证书和密钥,因此一并安装:

sudo yum install epel-release -y
sudo yum install openvpn easy-rsa -y

安装完成后,复制OpenVPN配置模板到/etc/openvpn目录:

sudo cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf /etc/openvpn/
sudo systemctl enable openvpn@server

我们开始配置证书颁发机构(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@example.com"
export KEY_OU="IT Department"

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

./clean-all
./build-ca

接着生成服务器证书和密钥:

./build-key-server server

为客户端生成证书和密钥(每个用户需单独生成):

./build-key client1

生成Diffie-Hellman参数以增强加密强度:

./build-dh

修改OpenVPN主配置文件 /etc/openvpn/server.conf,关键配置如下:

port 1194
proto udp
dev tun
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
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
auth-user-pass-verify /etc/openvpn/auth-script.sh via-env

auth-user-pass-verify 指令用于调用自定义脚本进行用户名密码验证,创建该脚本(如 /etc/openvpn/auth-script.sh如下:

PASSWORD=$password
if [ "$USERNAME" = "testuser" ] && [ "$PASSWORD" = "mypassword" ]; then
    exit 0
else
    exit 1
fi

赋予脚本执行权限:

chmod +x /etc/openvpn/auth-script.sh

重启OpenVPN服务:

sudo systemctl restart openvpn@server

在防火墙上开放UDP端口1194:

sudo firewall-cmd --add-port=1194/udp --permanent
sudo firewall-cmd --reload

至此,一个基于用户名密码认证的OpenVPN服务已在CentOS上成功部署,客户端可使用OpenVPN图形客户端导入证书和配置文件连接,注意:生产环境中应使用更安全的身份验证方式(如LDAP或RADIUS),避免硬编码密码,此方案适合小型团队测试或教学用途。

!bin/bash

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