在CentOS 7上配置OpenVPN服务,可以通过以下几个步骤来实现,这些步骤包括安装OpenVPN和EasyRSA、生成证书、配置服务器和客户端等,以下是详细指南:
一、安装OpenVPN和EasyRSA
1、更新系统
sudo yum update y
2、安装EPEL源并安装OpenVPN和EasyRSA
sudo yum install epelrelease y sudo yum install openvpn easyrsa y
3、创建目录并复制EasyRSA文件
mkdir p ~/openvpnca cp r /usr/share/easyrsa/3/* ~/openvpnca/ cd ~/openvpnca
4、初始化EasyRSA环境
./easyrsa initpki
5、生成CA证书
./easyrsa buildca
6、生成服务器证书和密钥
./easyrsa buildserverfull server nopass
7、生成DiffieHellman参数
./easyrsa gendh
8、生成客户端证书和密钥
以client1
为例:
./easyrsa buildclientfull client1 nopass
9、复制证书和密钥到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 mkdir p ~/clientconfigs/keys sudo cp pki/ca.crt pki/issued/client1.crt pki/private/client1.key ~/clientconfigs/keys/
10、生成ta.key文件
sudo openvpn genkey secret /etc/openvpn/server/ta.key
二、配置OpenVPN服务器
1、复制默认的配置文件并进行修改
sudo cp /usr/share/doc/openvpn*/sample/sampleconfigfiles/server.conf /etc/openvpn/server/server.conf
2、编辑/etc/openvpn/server/server.conf
文件
关键参数如下:
port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key # This file should be kept secret dh none server 10.8.0.0 255.255.255.0 ifconfigpoolpersist /var/log/openvpn/ipp.txt 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
3、启用IP转发
sudo sysctl w net.ipv4.ip_forward=1
将上述命令添加到/etc/sysctl.conf
文件中以确保重启后生效:
net.ipv4.ip_forward = 1
4、配置防火墙
sudo systemctl enable firewalld sudo systemctl start firewalld sudo firewallcmd zone=public addservice=openvpn permanent sudo firewallcmd zone=public addmasquerade permanent sudo firewallcmd reload
5、启动OpenVPN服务
sudo systemctl start openvpnserver@server sudo systemctl enable openvpnserver@server
三、配置OpenVPN客户端
1、准备客户端配置文件
创建client1.ovpn
如下:
client dev tun proto udp remote YOUR_SERVER_IP 1194 resolvretry infinite nobind user nobody group nobody persistkey persisttun ca ca.crt cert client1.crt key client1.key remotecerttls server tlscrypt ta.key 1 cipher AES256GCM auth SHA256 keydirection 1 verb 3
2、连接至服务器
使用以下命令连接到OpenVPN服务器:
sudo openvpn config /path/to/client1.ovpn
四、常见问题FAQs
Q1: 如何更改OpenVPN服务器的端口号?
A1: 要更改OpenVPN服务器的端口号,只需在server.conf
文件中修改port
指令的值即可,将端口改为443:
port 443 proto tcpserver
如果使用TCP协议,还需添加proto tcpserver
指令,确保防火墙规则中允许新的端口号。
Q2: OpenVPN连接失败时如何排查问题?
A2: 如果OpenVPN连接失败,可以按照以下步骤进行排查:
1、检查服务器日志:查看/var/log/openvpn/openvpnstatus.log
和系统日志,查找错误信息。
2、验证证书和密钥:确保所有证书和密钥文件存在且路径正确,特别是ca.crt、server.crt、server.key和ta.key文件。
3、防火墙设置:确认防火墙已正确配置,允许OpenVPN流量通过,可以使用以下命令检查防火墙规则:
sudo firewallcmd listall
4、网络配置:确保服务器的网络配置正确,能够访问外网,可以使用ping
命令测试网络连通性。
5、客户端配置:检查客户端配置文件中的参数是否正确,尤其是远程地址和端口号。