HCRM博客

如何在CentOS 7上配置OpenVPN?

一、安装前的准备

1、更新系统:确保系统软件包是最新的。

sudo yum update y

2、安装 EPEL 源:EPEL(Extra Packages for EnterPRise Linux)提供了一些额外的软件包,包括 OpenVPN。

如何在CentOS 7上配置OpenVPN?-图1
(图片来源网络,侵权删除)
sudo yum install epelrelease y

3、安装 OpenVPN 和 EasyRSA:OpenVPN 是一个开源的 VPN 解决方案,EasyRSA 用于生成证书。

sudo yum install openvpn easyrsa y

二、生成证书和密钥

1、创建并进入证书目录

mkdir p ~/openvpnca
cd ~/openvpnca
cp r /usr/share/easyrsa/3/* ~/openvpnca/

2、初始化 EasyRSA 环境

./easyrsa initpki

3、生成 CA 证书

./easyrsa buildca

4、生成服务器证书和密钥

./easyrsa buildserverfull server nopass

5、生成 DiffieHellman 参数

如何在CentOS 7上配置OpenVPN?-图2
(图片来源网络,侵权删除)
./easyrsa gendh

6、生成客户端证书和密钥:以client1 为例,每个客户端都需要一个唯一的证书和密钥。

./easyrsa buildclientfull client1 nopass

三、配置 OpenVPN 服务器

1、复制证书和密钥到 OpenVPN 配置目录

sudo mkdir p /etc/openvpn/server
sudo cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem /etc/openvpn/server/

2、生成 ta.key 文件:用于 TLS 认证。

sudo openvpn genkey secret /etc/openvpn/ta.key

3、编辑配置文件:复制默认配置文件并进行修改。

sudo cp /usr/share/doc/openvpn*/sample/sampleconfigfiles/server.conf /etc/openvpn/server/server.conf
sudo nano /etc/openvpn/server/server.conf

4、修改关键参数

port 1194监听端口。

如何在CentOS 7上配置OpenVPN?-图3
(图片来源网络,侵权删除)

proto udp协议类型。

dev tun设备类型。

ca ca.crtCA 证书路径。

cert server.crt服务器证书路径。

key server.key服务器私钥路径。

dh dh.pemDiffieHellman 参数路径。

server 10.8.0.0 255.255.255.0分配给客户端的地址池。

push "redirectgateway def1 bypassdhcp"强制所有流量通过 VPN,设置 DNS 服务器。

keepalive 10 120保活时间。

tlscrypt ta.key启用 TLS 认证。

cipher AES256GCM加密算法。

auth SHA256认证算法。

persistkeypersisttun重启后保持连接。

status /var/log/openvpn/openvpnstatus.log状态日志路径。

verb 3日志级别。

clienttoclient允许客户端之间通信。

explicitexitnotify 1明确退出通知。

四、配置防火墙和网络转发

1、启动并启用 firewalld

sudo systemctl start firewalld
sudo systemctl enable firewalld

2、添加防火墙规则:允许 OpenVPN 流量和 IP 伪装。

sudo firewallcmd zone=public addservice=openvpn permanent
sudo firewallcmd zone=public addmasquerade permanent
sudo firewallcmd reload

3、检查 NAT 转发是否生效

sudo firewallcmd zone=public querymasquerade

如果返回yes,则 NAT 转发已成功启用。

五、启动 OpenVPN 服务

1、启动并启用 OpenVPN 服务:在 CentOS 7 及以上版本,OpenVPN 可能会使用openvpnserver@ 服务单元。

sudo systemctl start openvpnserver@server
sudo systemctl enable openvpnserver@server

2、检查服务状态

sudo systemctl status openvpnserver@server

3、查看错误信息(如果有):可以通过以下命令直接运行 OpenVPN 来查看错误信息:

sudo openvpn config /etc/openvpn/server/server.conf

六、配置 OpenVPN 客户端

1、准备客户端配置文件:创建一个名为client1.ovpn 的文件,内容如下:

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolvretry infinite
nobind
persistkey
persisttun
remotecerttls server
complzo
verb 3
<ca>path to your ca.crt>
<cert>path to your client1.crt>
<key>path to your client1.key>
<tlscrypt>path to your ta.key>

YOUR_SERVER_IP 替换为你的 OpenVPN 服务器的 IP 地址,并将证书和密钥的路径替换为实际路径。

2、连接客户端:使用 OpenVPN 客户端连接到服务器,可以使用以下命令:

sudo openvpn config client1.ovpn

七、FAQs问答环节

Q1: OpenVPN 服务器无法启动,应该如何排查问题?A1: 首先检查 OpenVPN 服务的状态和日志,运行sudo systemctl status openvpnserver@server 查看服务状态,运行sudo journalctl xe 查看系统日志,或者手动运行 OpenVPN 来直接查看错误信息:sudo openvpn config /etc/openvpn/server/server.conf,确保防火墙规则正确,NAT 转发已启用,并且证书和配置文件没有错误。

Q2: 如何在 CentOS 7 上更改 OpenVPN 服务器的监听端口?A2: 要更改 OpenVPN 服务器的监听端口,只需编辑服务器配置文件/etc/openvpn/server/server.conf,找到port 行并将其值更改为所需的端口号(例如port 2022),然后保存文件并重启 OpenVPN 服务:sudo systemctl restart openvpnserver@server,确保防火墙规则也相应地更新,以允许新的端口通过。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/19253.html

分享:
扫描分享到社交APP
上一篇
下一篇