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),避免硬编码密码,此方案适合小型团队测试或教学用途。

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






