云服务器搭建VPN:安全组、防火墙与密钥管理的实战配置
5/30/2026 · 3 min
一、安全组配置:云环境的第一道防线
在云服务器上搭建VPN,安全组是网络访问控制的核心。首先,登录云服务商控制台,找到实例所属的安全组。添加入站规则时,仅开放必要端口:
- SSH端口(22):限制源IP为管理员IP,避免暴力破解。
- VPN协议端口:
- OpenVPN:UDP 1194(默认)
- WireGuard:UDP 51820(默认)
- IPsec IKEv2:UDP 500、4500
- ICMP协议:可选开启,用于网络连通性测试。
出站规则通常保持默认允许所有流量,但可进一步限制仅允许VPN隧道流量。
二、防火墙规则:操作系统层面的精细控制
云服务器内部防火墙(如iptables/nftables)提供第二层防护。以Ubuntu 22.04为例:
- 启用UFW:
sudo ufw enable - 设置默认策略:
sudo ufw default deny incoming,sudo ufw default allow outgoing - 开放VPN端口:
sudo ufw allow 1194/udp - 允许SSH:
sudo ufw allow from <管理员IP> to any port 22 - 启用IP转发:编辑
/etc/sysctl.conf,取消net.ipv4.ip_forward=1注释,执行sysctl -p。
对于WireGuard,还需配置PostUp/PostDown脚本添加NAT规则:
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
三、密钥管理:保障通信安全
VPN依赖加密密钥确保数据传输安全。
3.1 生成强密钥
- OpenVPN:使用
easy-rsa生成CA证书、服务端证书和客户端证书。建议密钥长度2048位以上。 - WireGuard:
wg genkey | tee privatekey | wg pubkey > publickey,私钥权限设为600。
3.2 密钥存储与轮换
- 私钥存储在
/etc/wireguard/或/etc/openvpn/,权限600。 - 定期轮换密钥:WireGuard支持
wg set动态更新,无需重启服务。 - 使用硬件安全模块(HSM)或密钥管理服务(KMS)保护关键密钥。
3.3 客户端证书吊销
- OpenVPN:使用
easy-revoke吊销证书,并更新CRL。 - WireGuard:删除客户端配置中的公钥,或重启服务端。
四、实战验证与监控
配置完成后,进行以下验证:
- 从客户端连接VPN,检查IP地址是否变为服务器IP。
- 使用
tcpdump抓包确认流量加密。 - 配置日志监控:
journalctl -u wg-quick@wg0查看WireGuard日志。
定期审查安全组和防火墙规则,移除未使用的端口。