一、更新系统
确保你的系统是最新的,打开终端并运行以下命令:
sudo yum update y
二、安装EPEL源并安装OpenVPN和EasyRSA

EPEL(Extra Packages for Enterprise Linux)源提供了许多额外的软件包,安装EPEL源和OpenVPN:
sudo yum install epelrelease y sudo yum install openvpn easyrsa y
三、初始化EasyRSA环境
创建OpenVPN的目录,并将EasyRSA文件复制到指定位置:
mkdir p ~/openvpnca cp r /usr/share/easyrsa/3/* ~/openvpnca/ cd ~/openvpnca
然后初始化EasyRSA环境:
./easyrsa initpki
四、生成CA和服务器证书
完成初始化后,生成CA证书和服务器证书:
./easyrsa buildca ./easyrsa buildserverfull server nopass
生成DiffieHellman参数:
./easyrsa gendh
五、生成客户端证书
为每个客户端生成一个唯一的证书和密钥,例如client1:

./easyrsa buildclientfull client1 nopass
六、复制证书和密钥到OpenVPN配置目录
将生成的证书和密钥文件复制到OpenVPN配置目录中:
mkdir p /etc/openvpn/server sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /etc/openvpn/server
对于客户端证书,可以复制到/etc/openvpn/clients/或其他合适的位置:
mkdir p ~/clientconfigs/keys cp pki/ca.crt pki/issued/client1.crt pki/private/client1.key ~/clientconfigs/keys/
七、生成ta.key文件
sudo openvpn genkey secret /etc/openvpn/server/ta.key
八、配置OpenVPN服务器
复制默认的配置文件并进行修改:
sudo cp /usr/share/doc/openvpn*/sample/sampleconfigfiles/server.conf /etc/openvpn/server/server.conf
编辑/etc/openvpn/server/server.conf,修改以下关键参数:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem 开启客户端之间的通信 clienttoclient 启用NAT push "redirectgateway def1 bypassdhcp" push "dhcpoption DNS 208.67.222.222" push "dhcpoption DNS 208.67.220.220" duplicatecn keepalive 10 120 tlscrypt ta.key cipher AES256GCM auth SHA256 persistkey persisttun status /var/log/openvpn/openvpnstatus.log verb 3 explicitexitnotify 1
如果路径不存在,请创建日志目录:

sudo mkdir p /var/log/openvpn/
九、配置防火墙
确保防火墙允许OpenVPN流量:
sudo systemctl enable firewalld sudo systemctl start firewalld sudo firewallcmd zone=public addservice=openvpn permanent sudo firewallcmd zone=public addmasquerade permanent sudo firewallcmd reload
检查NAT转发是否成功启用:
sudo firewallcmd zone=public querymasquerade
如果返回yes,则NAT转发已成功启用。
十、启动OpenVPN服务
在CentOS 7及以上版本,OpenVPN可能会使用openvpnserver@服务单元:
sudo systemctl start openvpnserver@server sudo systemctl enable openvpnserver@server
检查服务状态:
sudo systemctl status openvpnserver@server
检查系统日志:
sudo journalctl xe
你也可以手动运行OpenVPN来直接查看错误信息:
sudo openvpn config /etc/openvpn/server/server.conf
OpenVPN客户端配置示例
创建一个名为client1.ovpn的客户端配置文件:
client dev tun proto udp remote YOUR_SERVER_IP 1194 resolvretry infinite nobind persistkey persisttun remotecerttls server complzo verb 3 <ca>root>crt>pki/ca.crt</ca>root>crt>pki/ca.crt<cert>root>crt>pki/issued/client1.crt</cert>root>crt>pki/issued/client1.crt<key>root>crt>pki/private/client1.key</key>root>crt>pki/private/client1.key<tlscrypt>root>crt>pki/ta.key</tlscrypt>root>crt>pki/ta.key<nscerttype>root>crt>server</nscerttype>root>crt>server
将此文件保存到客户端计算机上的适当位置,并使用OpenVPN客户端连接到服务器。
通过以上步骤,你应该能够在CentOS 7上成功安装和配置OpenVPN服务器,并能够从客户端进行连接,如果在过程中遇到任何问题,可以参考下面的FAQ部分。
