在 CentOS 系统中配置 VPN(虚拟专用网络)可以通过多种方式实现,包括使用 OpenVPN、PPTP、L2TP/IPsec 等协议,以下是如何在 CentOS 8 上配置 OpenVPN 服务器的详细步骤:
准备工作
1、系统要求:确保你有一台启用了 sudo 非 root 用户和防火墙的 CentOS 8 服务器。
2、安装 EPEL 库:CentOS 8 默认不包含 OpenVPN 和 EasyRSA,需要先安装 EPEL 库。
sudo dnf install epelrelease y
二、安装 OpenVPN 和 EasyRSA
1、安装 OpenVPN 和 EasyRSA:
sudo dnf install openvpn easyrsa firewalld y
2、创建 EasyRSA 目录:
mkdir ~/easyrsa cd ~/easyrsa
3、初始化 PKI(公钥基础设施):
/usr/share/easyrsa/3/easyrsa initpki
4、生成 CA 证书:
./easyrsa buildca nopass
5、生成服务端密钥:
./easyrsa buildserverfull vpnserver nopass
6、生成客户端密钥:
./easyrsa gendh ./easyrsa buildclientfull vpnclient nopass
7、生成 TLS Auth 密钥:
openvpn genkey secret pki/ta.key
配置 OpenVPN 服务端
1、复制证书到配置目录:
cp pki/ca.crt pki/private/vpnserver.key pki/issued/vpnserver.crt pki/dh.pem pki/ta.key ~/easyrsa/pki/
2、编辑 OpenVPN 配置文件:
vim /etc/openvpn/server.conf
3、添加以下配置:
dev tun proto udp port 1194 keepalive 10 120 maxclients 5 ca ca.crt cert server.crt key server.key dh dh.pem tlsauth ta.key 0 cipher AES256CBC auth SHA512 tlsversionmin 1.2 cipher AES256CBC auth SHA256 tlscipher TLSDHERSAWITHAES256GCMSHA384:TLSDHERSAWITHAES256CBCSHA256:TLSDHERSAWITHAES128GCMSHA384:TLSDHERSAWITHAES128CBCSHA256 user nobody group nobody persistkey persisttun complzo push "redirectgateway def1 bypassdhcp" push "dhcpoption DNS 8.8.8.8" push "dhcpoption DNS 8.8.4.4" logappend /var/log/openvpn.log verb 3
4、启动并启用 OpenVPN 服务:
systemctl start openvpn@server systemctl enable openvpn@server
配置防火墙与流量转发
1、放行 OpenVPN 入网流量:
sudo firewallcmd permanent addservice=openvpn sudo firewallcmd reload
2、开启 IP 转发:
sudo sysctl w net.ipv4.ip_forward=1 sudo sysctl p net.ipv4.ip_forward
3、检查 IP 转发状态:
sudo sysctl net.ipv4.ip_forward
常见问题与FAQ
1、如何生成客户端配置文件?:在 OpenVPN 服务器上,可以使用easyrsa
工具生成客户端配置文件,具体步骤如下:
cd ~/easyrsa/pki cp openvpn.cnf openvpnclient.cnf vim openvpnclient.cnf # Uncomment the following lines and set the appropriate paths: ca ca.crt cert client.crt key client.key # Add any additional configuration options as needed.
2、如何导入客户端配置文件到客户端机器?:将生成的客户端配置文件(如client.ovpn
)复制到客户端机器上,然后使用 OpenVPN 客户端软件导入该配置文件,即可连接到 VPN 服务器。
3、如何解决连接问题?:如果客户端无法连接到 VPN 服务器,请检查以下几个方面:
确保 VPN 服务器上的防火墙规则已正确配置,允许 OpenVPN 流量通过。
确保 VPN 服务器上的 OpenVPN 服务正在运行,并且配置文件中的设置正确无误。
确保客户端使用的是正确的客户端配置文件,并且该文件未损坏或被篡改。
如果使用的是自签名证书,请确保客户端信任该证书,可以将证书导入到客户端的受信任证书存储中,或者在客户端配置文件中添加相应的选项来信任该证书。