在CentOS系统中使用脚本自动化部署OpenVPN服务详解

在当今远程办公和分布式团队日益普及的背景下,安全、稳定且易于管理的虚拟私人网络(VPN)已成为企业与个人用户的重要基础设施,OpenVPN作为一款开源、跨平台、功能强大的VPN解决方案,广泛应用于Linux服务器环境,尤其是基于CentOS的操作系统,为了简化部署流程、减少人为配置错误并提高运维效率,编写一个自动化脚本(如centos.sh)来一键安装和配置OpenVPN变得尤为关键。

本文将详细介绍如何通过一个完整的Shell脚本(centos.sh),在CentOS 7/8或更高版本上自动完成OpenVPN服务的安装、证书生成、配置文件设置以及防火墙规则配置,整个过程无需手动干预,适合用于快速搭建测试环境或批量部署生产服务器。

确保你的CentOS主机已连接互联网,并具备root权限,执行以下步骤前,请备份重要数据,以防意外中断造成配置丢失。

第一步:准备脚本环境
创建一个名为centos.sh的文件,内容如下(可直接复制粘贴):


echo "正在更新系统..."
yum update -y
echo "安装EPEL仓库..."
yum install -y epel-release
echo "安装OpenVPN和Easy-RSA..."
yum install -y openvpn easy-rsa
echo "初始化PKI密钥目录..."
make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
echo "配置PKI参数..."
sed -i 's/^set_var EASYRSA_KEY_SIZE 2048/set_var EASYRSA_KEY_SIZE 4096/' vars
sed -i 's/^set_var EASYRSA_CA_EXPIRE 3650/set_var EASYRSA_CA_EXPIRE 7300/' vars
sed -i 's/^set_var EASYRSA_CERT_EXPIRE 3650/set_var EASYRSA_CERT_EXPIRE 7300/' vars
echo "生成CA证书..."
./easyrsa init-pki
./easyrsa build-ca nopass
echo "生成服务器证书和密钥..."
./easyrsa gen-req server nopass
./easyrsa sign-req server server
echo "生成客户端证书模板..."
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
echo "生成Diffie-Hellman参数..."
./easyrsa gen-dh
echo "复制证书到OpenVPN目录..."
cp pki/ca.crt pki/private/server.key pki/issued/server.crt pki/dh.pem /etc/openvpn/
echo "配置OpenVPN服务端..."
cat > /etc/openvpn/server.conf << EOF
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh 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
tls-auth ta.key 0
cipher AES-256-CBC
auth SHA256
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
EOF
echo "生成TLS密钥..."
openvpn --genkey --secret /etc/openvpn/ta.key
echo "启用IP转发..."
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
echo "配置防火墙(firewalld)..."
firewall-cmd --permanent --add-port=1194/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
echo "启动并启用OpenVPN服务..."
systemctl enable openvpn@server
systemctl start openvpn@server
echo "部署完成!客户端配置文件位于 /etc/openvpn/client.ovpn"

该脚本涵盖从系统更新、软件包安装、证书签发、配置生成到服务启动的全流程,运行时只需执行:

chmod +x centos.sh
./centos.sh

完成后,你可在/etc/openvpn/目录下找到客户端配置文件(如client.ovpn),用以连接到服务器,此方法极大提升了部署效率,特别适用于DevOps自动化流程、云服务器批量初始化等场景。

通过这一脚本,网络工程师可以快速构建安全可靠的OpenVPN服务,为远程访问提供坚实基础,同时降低维护成本,提升整体网络架构的稳定性与可控性。

!bin/bash  第1张

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