在Rocky Linux 9系统中编译安装OpenVPN           

在Rocky Linux 9系统中编译安装OpenVPN

作者 hxwsq_华 于 2024-12-20 15:45:00.0 发表于 浙江    最近修改于 2025-02-11 14:46:11.0     本文浏览量:188人次

一、说明

1.1 操作系统版本

本文使用的操作系统版本:Rocky Linux 9.5

1.2 准备工作

1.OpenVPN-2.6.12源码包(下载

2.EasyRSA工具(下载

3.Windows版本的OpenVPN客户端(下载

二、安装OpenVPN

2.1 上传OpenVPN源码包并解压

2.2 安装所需的依赖包

dnf -y install gcc libnl3 libnl3-devel libcap-ng libcap-ng-devel openssl openssl-devel lz4 lz4-devel lzo lzo-devel pam pam-devel

2.3 配置OpenVPN

cd openvpn-2.6.12 && ./configure --prefix=/usr/local/openvpn

2.4 编译安装OpenVPN

make && make install

2.5 查看OpenVPN版本

echo "export PATH=/usr/local/openvpn/sbin:\$PATH" >> /etc/profile
source /etc/profile
openvpn --version

三、使用EasyRSA管理证书

3.1 上传EasyRSA工具包并分别解压成三个目录(CA、服务器、客户端)

tar -zxf EasyRSA-3.2.1.tgz
cp -a EasyRSA-3.2.1 easyrsa-CA
cp -a EasyRSA-3.2.1 easyrsa-Server
cp -a EasyRSA-3.2.1 easyrsa-Client

3.2 生成CA证书

cd easyrsa-CA/

3.2.1 初始化PKI(公钥基础设施框架)

./easyrsa init-pki

3.2.2 创建CA机构(证书颁发机构)

---配置组织机构信息(自定义填写)
cp -a vars.example vars
---国家
set_var EASYRSA_REQ_COUNTRY     "CN"
---省份
set_var EASYRSA_REQ_PROVINCE    "ZJ"
---城市
set_var EASYRSA_REQ_CITY        "HZ"
---机构名
set_var EASYRSA_REQ_ORG         "hxwsq"
---邮箱
set_var EASYRSA_REQ_EMAIL       "admin@hxwsq.cn"
---机构单元
set_var EASYRSA_REQ_OU          "Hxwsq_Unit"
---CA证书有效期
set_var EASYRSA_CA_EXPIRE       3650
---由CA颁发的证书有效期
set_var EASYRSA_CERT_EXPIRE     3650
---证书使用的加密算法
et_var EASYRSA_DIGEST          "sha512"

3.2.3 生成CA公钥证书和私钥文件

./easyrsa build-ca
CA公钥证书:./easyrsa-CA/pki/ca.crt
CA私钥文件:./easyrsa-CA/pki/private/ca.key

3.3 生成OpenVPN服务器证书

cd easyrsa-Server/

3.3.1 初始化PKI

./easyrsa init-pki

3.3.2 生成服务器证书请求文件和私钥文件

./easyrsa gen-req hxwsq-server nopass
---nopass表示服务器证书不需要设置密码
服务器证书请求文件:./easyrsa-Server/pki/reqs/hxwsq-server.req
服务器私钥文件:./easyrsa-Server/pki/private/hxwsq-server.key

3.3.3 使用CA私钥文件签署服务器的证书并生成服务器证书

---在CA中导入服务器证书请求文件
cd easyrsa-CA/
./easyrsa import-req /root/software/easyrsa-Server/pki/reqs/hxwsq-server.req hxwsq-server
----使用CA私钥签署服务器证书(执行过程中需要输入CA证书密码)
./easyrsa sign-req server hxwsq-server
服务器证书文件:./easyrsa-CA/pki/issued/hxwsq-server.crt

3.4 生成OpenVPN的密钥交互文件

cd easyrsa-Server/
./easyrsa gen-dh

3.5 生成OpenVPN共享密钥

openvpn --genkey secret ta.key

3.6 生成OpenVPN客户端证书

cd easyrsa-Client/

3.6.1 初始化PKI

./easyrsa init-pki

3.6.2 生成客户端证书请求文件和私钥文件

./easyrsa gen-req hxwsq-client nopass
---nopass表示客户端证书不需要设置密码
客户端证书请求文件:./easyrsa-Client/pki/reqs/hxwsq-server.req
客户端私钥文件:./easyrsa-Client/pki/private/hxwsq-server.key

3.6.3 使用CA私钥文件签署客户端的证书并生成客户端证书

---在CA中导入客户端证书请求文件
cd easyrsa-CA/
./easyrsa import-req /root/software/easyrsa-Client/pki/reqs/hxwsq-client.req hxwsq-client
----使用CA私钥签署客户端证书(执行过程中需要输入CA证书密码)
./easyrsa sign-req client hxwsq-client
客户端证书文件:./easyrsa-CA/pki/issued/hxwsq-client.crt

四、配置并启动OpenVPN服务

4.1 创建OpenVPN配置目录以存放证书文件和配置文件

---该目录可自定义
mkdir -p /etc/openvpn/server

4.2 复制所需证书文件至配置目录

---CA证书
cp -a /root/software/easyrsa-CA/pki/ca.crt /etc/openvpn/server/
---服务器证书文件
cp -a /root/software/easyrsa-CA/pki/issued/hxwsq-server.crt /etc/openvpn/server/
---服务器私钥文件
cp -a /root/software/easyrsa-Server/pki/private/hxwsq-server.key /etc/openvpn/server/
---密钥交互文件
cp -a /root/software/easyrsa-Server/pki/dh.pem /etc/openvpn/server/
---共享密钥文件
cp -a /root/software/easyrsa-Server/ta.key /etc/openvpn/server/

4.3 创建服务器配置文件server.conf

---此处示例配置文件仅为基础配置
cat << 'EOF' > /etc/openvpn/server/server.conf
# 服务端口(可自定义)
port 1194
# 端口协议(TCP或UDP都可以)
proto udp
# 使用路由模式
dev tun
# CA证书文件
ca /etc/openvpn/server/ca.crt
# 服务器证书文件
cert /etc/openvpn/server/hxwsq-server.crt
# 服务器私钥文件
key /etc/openvpn/server/hxwsq-server.key
# 密钥交互文件
dh /etc/openvpn/server/dh.pem
# 共享密钥(服务器为0,客户端为1)
tls-auth /etc/openvpn/server/ta.key 0
# 给客户端分配的虚拟IP网段(可自定义,不能和服务器实际IP同一个网段)
server 10.10.10.0 255.255.255.0
# 会话检测,每10秒检测一次,超过120秒没回应就认为对方离线
keepalive 10 120
# 加密算法
cipher AES-256-GCM
# 消息摘要算法
auth SHA256
# 压缩算法
compress lz4-v2
# 推送客户端使用lz4-v2算法
push "compress lz4-v2"
# 最大客户端连接数
max-clients 200
# 客户端和虚拟IP持久化
persist-key
persist-tun
ifconfig-pool-persist ipp.txt
# 允许多个客户端使用同一份证书文件
duplicate-cn
# 服务器状态记录日志
status /etc/openvpn/server/openvpn_status.log
# OpenVPN日志
log-append /etc/openvpn/server/openvpn.log
# 日志记录级别
verb 3
EOF

4.4 配置OpenVPN服务为系统服务

cat << 'EOF' > /usr/lib/systemd/system/openvpn_server.service
[Unit]
Description=OpenVPN Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
ExecStart=/usr/local/openvpn/sbin/openvpn --config /etc/openvpn/server/server.conf
EOF

4.5 启动OpenVPN服务并配置开机自启动

systemctl enable --now openvpn_server.service

4.6 检查OpenVPN服务状态

查看服务器上是否已有OpenVPN的虚拟网卡,是否已分配虚拟IP,检查服务器的路由信息

五、配置OpenVPN客户端并访问服务器

5.1 安装Windows版本的OpenVPN客户端

双击OpenVPN客户端安装包开始安装
安装过程中需要安装OpenVPN虚拟网卡

5.2 复制所需证书文件至配置目录

把CA证书、客户端证书文件、客户端私钥文件、密钥交互文件、共享密钥文件一起复制到OpenVPN安装目录下的config文件夹下

5.3 创建客户端配置文件client.ovpn

# 声明是客户端
client
# 远程服务器地址
remote 192.168.8.221 1194
# 端口协议
proto udp
# 使用路由模式
dev tun
# CA证书文件
ca ca.crt
# 客户端证书文件
cert hxwsq-client.crt
# 客户端私钥文件
key hxwsq-client.key
# 密钥交互文件
dh dh.pem
# 共享密钥
tls-auth ta.key 1
# 不绑定本地端口号
nobind
# 加密算法
cipher AES-256-GCM
# 消息摘要算法
auth SHA256
# 压缩算法
compress lz4-v2
# 断线自动重连
resolv-retry infinite
# 持久化
persist-key
persist-tun
# 日志记录级别
verb 3

5.4 启动OpenVPN客户端并连接

打开OpenVPN客户端,右键点击 connect
成功连接后,图标变绿,并会自动分配一个ip

5.5 验证访问服务器

客户端成功连接后,可通过虚拟IP地址来访问服务器

本站声明

本站所有文章均由作者(hxwsq_华)个人整理和发布,仅供学习和参考,严禁任何形式的复制和转载!
如有疑问,请点击此处给作者发邮件,谢谢!