企业信息化不等于各类软硬件的堆砌,企业信息化建设的核心是企业领导者们重视信息收集、重视信息管理、重视信息使用。
"人精钱少有限公司"发展数年,企业已初具规模,高层领导们意识到了信息化的重要性,奈何钱太少,但有幸人精明,开源技术用起来,花小钱办大事。
前几篇文章我们部署好了OA系统,并开启了https访问。"人精钱少有限公司"是一个跨城公司,全国很多地方分布着办公人员,目前员工都是通过互联网访问公司OA,安全风险依然存在。
今天就来加一层安全防护罩-VPN。
一,技术选型
1. 企业VPN构建平台:WireGuard
【选择理由】WireGuard 是一种极其简单但快速且现代的 VPN,它利用了最先进的加密技术。它的目标是比 IPsec 更快、更简单、更精简和更有用,同时避免令人头疼的问题。旨在提供比 OpenVPN 更高的性能。WireGuard 被设计为在嵌入式接口和超级计算机等上运行的通用 VPN,适用于许多不同的环境。最初仅支持 Linux 平台,现在可以进行跨平台(Windows、macOS、BSD、iOS、Android)的广泛部署。目前仍然在大力开发中,但已经被认为是业内最安全、最容易使用和最简单的 VPN 解决方案。
WireGuard 是由Jason Donenfeld等人用C语言编写的一个开源三层网络隧道工具,被视为下一代 VPN 协议,从 2020 年 1 月开始,它已经并入了 Linux 内核的 5.6 版本,被Linux之父称其为艺术品。
2. VPN可视化管理平台:WireGuard-UI
【选择理由】WireGuard-UI 是一个开源的 Web 可视化管理工具,用于简化 WireGuard VPN 的配置和管理。它通过直观的图形界面,帮助用户快速创建、管理和分发 WireGuard 配置文件。
二,详细步骤
本次实践依然选择Rockylinux9.5操作环境
(一). 安装和配置WireGuard
1.安装 WireGuard
sudo dnf install epel-release -y
sudo dnf install wireguard-tools -y
2.配置 WireGuard
(1). 创建配置文件目录
sudo mkdir -p /etc/wireguard
(2). 生成密钥对
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key /etc/wireguard/server_public.key
(3). 创建 WireGuard 配置文件wg0.conf
sudo vi /etc/wireguard/wg0.conf
添加以下内容:
[Interface]
PrivateKey = <server_private_key>
Address = 10.255.255.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s3 -j MASQUERADE
注意:
替换 <server_private_key> 为 /etc/wireguard/server_private.key 文件中的内容;
替换PostUp和PostDown中的enp0s3为自己服务器的真实网络连接
(4). 启用 IP 转发
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
(5). 启动 WireGuard
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
(二). 安装和配置WireGuard-UI
1.安装 WireGuard-UI
sudo mkdir -p /opt/wireguard-ui
cd /opt/wireguard-ui
sudo curl -L -o wireguard-ui.tar.gz https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.6.2/wireguard-ui-v0.6.2-linux-amd64.tar.gz
sudo tar -xzf wireguard-ui.tar.gz
sudo rm wireguard-ui.tar.gz
2.部署 WireGuard-UI
(1). 创建配置文件
sudo vi /opt/wireguard-ui/config.ini
添加以下内容
[wireguard]
conf = /etc/wireguard/wg0.conf
[webui]
listen = :5000
username = admin
password = admin
(2). 修改 WireGuard 配置文件权限,允许 WireGuard-UI 访问
sudo chmod 755 /etc/wireguard
sudo chmod 644 /etc/wireguard/wg0.conf
(1). 创建 systemd 服务文件
sudo vi /etc/systemd/system/wireguard-ui.service
添加以下内容
[Unit]
Description=WireGuard-UI
After=network.target
[Service]
ExecStart=/opt/wireguard-ui/wireguard-ui
Restart=always
User=root
[Install]
WantedBy=multi-user.target
(2). 启动wireguard-ui服务
sudo systemctl enable wireguard-ui
sudo systemctl start wireguard-ui
(三). 配置服务器防火墙和公网IP端口映射
sudo firewall-cmd --permanent --add-port=51820/udp
sudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --reload
登录防火墙管理界面,添加以下规则:
- 允许 UDP 51820 端口入站到VPN服务器内网IP
- 允许 TCP 5000 端口入站到VPN服务器内网IP
- 配置NAT规则将公网IP 的51820/udp和5000/tcp映射到VPN服务器内网IP
(四). 配置WireGuard-UI客户端
http://VPN服务器IP:5000
使用 admin/admin 登录
Name: Client1
AllowedIPs: 10.255.255.0/24 (限定访问虚拟子网)
客户端配置文件创建完毕后,点击“Apply Config”,将配置信息更新到服务器的配置文件中
在“WireGuard Clients”中选需要的客户端配置文件导出。
注意:
当VPN服务器配置文件有变更时,一定要重启WireGuard服务器,命令如下:
sudo systemctl restart wg-quick@wg0
(五). 登录客户端及验证(以Windows为例)
https://www.wireguard.com/install/
下载不了的,请在本文后留言,提供安装包
4.验证连接
ping 10.255.255.1
如有网络响应,说明vpn搭建成功!
阅读原文:原文链接
该文章在 2025/3/24 17:07:18 编辑过