Kali Linux 配置 OpenVPN 服务端与客户端实战指南
在网络安全渗透测试和红队演练中,Kali Linux 凭借其强大的工具集成为网络工程师和安全研究人员的首选操作系统,而 OpenVPN 作为一款开源、跨平台且高度可定制的虚拟私人网络(VPN)解决方案,常被用于构建安全的远程访问通道,本文将详细介绍如何在 Kali Linux 上搭建 OpenVPN 服务端,并配置客户端连接,为渗透测试人员提供一个加密、隐蔽、可控的网络隧道环境。
确保你的 Kali 系统已更新至最新版本(sudo apt update && sudo apt upgrade),并具备基本的网络配置权限,接下来安装 OpenVPN 及相关依赖:
sudo apt install openvpn easy-rsa -y
easy-rsa 是用于生成证书和密钥的工具包,是 OpenVPN 安全通信的核心组件。
-
生成证书颁发机构(CA)密钥对
复制 Easy-RSA 模板到/etc/openvpn/easy-rsa目录:sudo make-cadir /etc/openvpn/easy-rsa cd /etc/openvpn/easy-rsa
编辑
vars文件,设置国家、组织等信息(如 CN=YourOrg, C=CN, ST=Beijing 等),然后执行:source vars ./clean-all ./build-ca
这一步会生成 CA 的私钥(ca.key)和公钥(ca.crt),这是后续所有证书的信任根。
-
生成服务器证书与密钥
./build-key-server server
该命令会提示是否确认签名,选择 yes,生成 server.crt 和 server.key,这些文件将用于服务端认证。
-
生成客户端证书
对于每个客户端,需单独生成证书(如 client1):./build-key client1
同样,系统会要求确认签名,生成 client1.crt 和 client1.key。
-
生成 Diffie-Hellman 参数
这是用于密钥交换的安全参数:./build-dh
-
配置 OpenVPN 服务端
在/etc/openvpn/下创建server.conf文件(可从示例复制):cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ gunzip /etc/openvpn/server.conf.gz
修改关键配置项:
dev tun:使用 TUN 设备模式(推荐)proto udp:使用 UDP 协议(性能更好)port 1194:默认端口,可自定义ca ca.crt,cert server.crt,key server.key:指定证书路径dh dh.pem:指定 Diffie-Hellman 参数server 10.8.0.0 255.255.255.0:分配给客户端的 IP 段push "redirect-gateway def1 bypass-dhcp":强制客户端流量通过 VPN(适用于内网渗透场景)push "dhcp-option DNS 8.8.8.8":推送 DNS 服务器
-
启用 IP 转发与防火墙规则
编辑/etc/sysctl.conf,取消注释:net.ipv4.ip_forward=1
应用更改:
sudo sysctl -p
添加 iptables 规则以允许转发:sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT
-
启动 OpenVPN 服务
sudo systemctl enable openvpn@server sudo systemctl start openvpn@server
将 ca.crt、client1.crt、client1.key 和 ta.key(由 openvpn --genkey --secret ta.key 生成)打包发送给客户端,客户端只需配置 .ovpn 文件即可连接,实现加密隧道。
此方案适用于渗透测试中模拟合法用户身份访问目标内网资源,或在远程办公时保障数据传输安全,务必注意:非法使用 VPN 技术可能违反法律,请仅限授权测试使用。




