在CentOS上配置VPN,尤其是OpenVPN,是一项涉及多个步骤的任务,以下是一个详细的指南,帮助您在CentOS 8服务器上设置和配置OpenVPN:
先决条件
1、系统要求:一台启用了sudo权限的非root用户的CentOS 8服务器,并且已配置防火墙。
2、网络要求:一个单独的CentOS 8服务器设置为私有证书颁发机构(CA),用于生成和管理证书。
3、软件要求:需要在CA服务器和OpenVPN服务器上分别安装OpenVPN和EasyRSA工具。
安装OpenVPN和EasyRSA
1、更新软件包索引:
sudo dnf update y
2、安装EPEL存储库:
sudo dnf install epelrelease y
3、安装OpenVPN和EasyRSA:
sudo dnf install openvpn easyrsa y
4、创建EasyRSA目录:
mkdir ~/easyrsa ln s /usr/share/easyrsa/3 ~/easyrsa/easyrsa
5、设置目录权限:
sudo chown sammy:sammy ~/easyrsa chmod 700 ~/easyrsa
生成证书和密钥
1、初始化PKI:
cd ~/easyrsa ./easyrsa initpki
2、设置变量文件:
nano vars
添加以下内容到文件中:
set_var EASYRSA_ALGO "ec" set_var EASYRSA_DIGEST "sha512"
3、生成CA证书:
./easyrsa buildca nopass
4、生成服务器证书和密钥:
./easyrsa genreq server nopass ./easyrsa signreq server server
5、生成DiffieHellman参数:
./easyrsa gendh
6、生成客户端证书和密钥:
./easyrsa genreq client nopass ./easyrsa signreq client client
配置OpenVPN服务端
1、拷贝证书和密钥到OpenVPN目录:
cp pki/ca.crt /etc/openvpn/ca.crt cp pki/issued/server.crt /etc/openvpn/server.crt cp pki/private/server.key /etc/openvpn/server.key cp pki/dh.pem /etc/openvpn/dh.pem
2、编辑OpenVPN配置文件:
nano /etc/openvpn/server.conf
添加以下内容:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem cipher AES256CBC persistkey persisttun status openvpnstatus.log logappend /var/log/openvpn.log verb 3
3、启动并启用OpenVPN服务:
sudo systemctl start openvpn@server sudo 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 sed i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
3、配置NAT以使VPN客户端能够访问外网:
sudo iptables t nat A POSTROUTING s 10.8.0.0/8 o eth0 j MASQUERADE sudo sh c 'echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf' sudo sysctl p
相关问答FAQs
1、如何检查OpenVPN服务的状态?:要检查OpenVPN服务的状态,可以使用以下命令:sudo systemctl status openvpn@server
,如果服务正在运行,您将看到活动状态的信息;如果服务未运行,您将看到停止状态的信息,如果服务未运行,您可以使用sudo systemctl start openvpn@server
命令来启动它。
2、如何为新的客户端生成证书?:为新的客户端生成证书,您需要回到~/easyrsa目录,然后执行以下命令:./easyrsa genreq newclient nopass
,这将生成一个新的客户端证书请求,使用./easyrsa signreq client newclient
命令签署该请求,完成后,将新生成的客户端证书(newclient.crt)和私钥(newclient.key)发送给客户端,以便他们能够连接到VPN,记得在每次添加或删除客户端后重新加载OpenVPN服务以应用更改。