在CentOS上安装和配置OpenVPN是一项复杂但非常有用的任务,特别是对于需要远程访问公司内网或在不同地区之间建立安全通信的用户,下面将详细介绍如何在CentOS系统上安装和配置OpenVPN,包括服务器端和客户端的设置。

一、安装OpenVPN Server
1、更新系统

sudo yum update y
2、安装EPEL源并安装OpenVPN和EasyRSA
sudo yum install epelrelease y sudo yum install openvpn easyrsa y
3、创建OpenVPN目录并复制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 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.key11、配置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 # This file should be kept secret
dh none
server 10.8.0.0 255.255.255.0
ifconfigpoolpersist 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 112、配置防火墙
确保防火墙允许OpenVPN流量:
sudo systemctl enable firewalld
sudo systemctl start firewalld
sudo firewallcmd zone=public addservice=openvpn permanent
sudo firewallcmd zone=public addmasquerade permanent
sudo firewallcmd reload13、启动OpenVPN服务
sudo systemctl start openvpn@server二、配置OpenVPN Client
1、下载OpenVPN客户端
sudo yum install openvpn y2、复制证书和密钥到客户端计算机
将以下文件从服务器复制到客户端计算机:
/etc/openvpn/ca.crt
~/clientconfigs/keys/client1.crt
~/clientconfigs/keys/client1.key3、创建客户端配置文件
在客户端计算机上创建一个名为client.ovpn 的文件,并将以下内容复制到该文件中:
client
dev tun
proto udp
remote your_server_ip 1194
resolvretry infinite
nobind
ca ca.crt
cert client1.crt
key client1.key
nscerttype server
verb 3 将your_server_ip 替换为OpenVPN服务器的IP地址。
4、连接到OpenVPN服务器
sudo openvpn config client.ovpn三、FAQs
Q1: OpenVPN无法连接怎么办?
A1: 如果OpenVPN无法连接,首先检查以下几点:
确保服务器和客户端的防火墙规则正确配置,允许OpenVPN流量。
确认服务器上的OpenVPN服务已经启动并且正在运行。
检查服务器和客户端的日志文件(如/var/log/openvpn/openvpnstatus.log),查找错误信息。
确保客户端的配置文件中的服务器IP和端口正确。
确保网络连接正常,可以通过ping命令测试服务器的连通性。
Q2: 如何更改OpenVPN的端口号?
A2: 要更改OpenVPN的端口号,只需在服务器和客户端的配置文件中修改port 参数即可,将默认的1194端口改为其他端口:
在服务器的配置文件/etc/openvpn/server/server.conf 中,将port 1194 改为port 2000。
在客户端的配置文件中,将remote your_server_ip 1194 改为remote your_server_ip 2000。
