OpenVPN在CentOS上的安装与配置指南
OpenVPN是一个开源的虚拟专用网(VPN)解决方案,它允许用户通过公共互联网创建一个安全的连接,本文将详细介绍如何在CentOS上安装和配置OpenVPN服务器,并包括一些常见问题的解答,以下是详细内容:

一、准备工作
1、系统要求:确保你的CentOS系统版本为7或更高,并且具备sudo权限的用户。
2、域名注册:你需要一个域名来解析到你的服务器IP地址,可以通过DigitalOcean控制面板添加DNS记录。
3、防火墙设置:关闭防火墙或者配置必要的规则以允许OpenVPN流量。
4、SELinux配置:临时或永久关闭SELinux以避免潜在的冲突。
二、安装OpenVPN

1、添加EPEL源:
wget O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel7.repo2、安装OpenVPN:
yum install openvpn y3、安装EasyRSA:
cd /opt/
wget https://github.com/OpenVPN/easyrsa/releases/download/v3.0.7/EasyRSA3.0.7.tgz
tar xf EasyRSA3.0.7.tgz
mv EasyRSA3.0.7 easyRSA3.0.7
cp r easyRSA3.0.7/ /etc/openvpn/easyrsa3
cp /etc/openvpn/easyrsa3/vars.example /etc/openvpn/easyrsa3/vars三、配置证书和密钥
1、初始化PKI目录:
cd /etc/openvpn/easyrsa3/
./easyrsa initpki2、创建根证书:

./easyrsa buildca nopass3、创建服务器密钥和证书签名请求(CSR):
./easyrsa genreq server nopass4、签署服务器证书:
./easyrsa signreq server server5、生成DiffieHellman参数文件:
./easyrsa gendh6、创建TLS认证密钥:
openvpn genkey secret /etc/openvpn/ta.key四、配置OpenVPN服务器
1、复制证书和密钥到相应目录:
cp ca.crt dh.pem /etc/openvpn/
cp private/server.key issued/server.crt /etc/openvpn/server/
cp private/client.key issued/client.crt /etc/openvpn/client/2、编辑服务器配置文件(/etc/openvpn/server.conf):
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
push "route 10.66.17.0 255.255.255.0"
ifconfigpoolpersist ipp.txt
keepalive 10 120
maxclients 100
status openvpnstatus.log
verb 3
clienttoclient
log /var/log/openvpn.log
persistkey
persisttun
tlsauth /etc/openvpn/ta.key 0
duplicatecn
scriptsecurity 3
authuserpassverify /etc/openvpn/check.sh viaenv
usernameascommonname
clientconfigdir /etc/openvpn/ccd3、启动OpenVPN服务:
systemctl start openvpn@server
systemctl enable openvpn@server五、配置OpenVPN客户端
1、拷贝证书和密钥到客户端机器:
cp /etc/openvpn/client/sampleconfigfiles/client.ovpn /path/to/client/config/directory/2、编辑客户端配置文件(client.ovpn):
client
dev tun
proto udp
remote your_server_ip 1194
resolvretry infinite
nobind
user nobody
group nobody
persistkey
persisttun
ca ca.crt
cert client.crt
key client.key
remotecerttls server
tlscrypt ta.key 1
verb 33、启动OpenVPN客户端:
openvpn config /path/to/client/config/directory/client.ovpn六、常见问题解答(FAQs)
Q1: 如何更改OpenVPN服务器的端口数?
A1: 在服务器配置文件server.conf中修改port指令的值即可,将port 1194改为port 1234。
Q2: OpenVPN连接失败时如何排查问题?
A2: 首先检查服务器和客户端的日志文件,服务器日志通常位于/var/log/openvpn.log,客户端日志则可以通过命令行参数verb设置为更高的级别来获取更多信息,确保防火墙规则允许OpenVPN使用的端口,并且SELinux已正确配置,如果使用的是基于证书的身份验证,请确保所有证书都已正确签署并放置在指定位置。
