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.crt、user1.key和ca.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.crtcert server.crtkey server.keydh dh.pem(需运行./build-dh生成)user nobodygroup nobodyserver 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服务,兼顾安全性与易用性,适用于中小型企业和远程办公需求。

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






