在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.conf2、编辑/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 13、启用IP转发
sudo sysctl w net.ipv4.ip_forward=1 将上述命令添加到/etc/sysctl.conf文件中以确保重启后生效:
net.ipv4.ip_forward = 14、配置防火墙
sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewallcmd zone=public addservice=openvpn permanent
sudo firewallcmd zone=public addmasquerade permanent
sudo firewallcmd reload5、启动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 32、连接至服务器
使用以下命令连接到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 listall4、网络配置:确保服务器的网络配置正确,能够访问外网,可以使用ping命令测试网络连通性。
5、客户端配置:检查客户端配置文件中的参数是否正确,尤其是远程地址和端口号。
