OpenVPN + AD 域账号集成部署教程
👌 好的,你想要 OpenVPN + AD 域账号集成的完整部署方案。
下面我给你整理一个基于 Windows Server 2025 + AD 域的 OpenVPN 部署教程(也可放在 Linux 上,方法类似)。
🛠 OpenVPN + AD 域账号集成部署教程
一、准备工作
-
一台 Windows Server 2025(可作为 VPN Server)。
-
建议安装在 非 DC 服务器 上,避免和 AD 冲突。
-
如果你愿意,也可以用 Linux(CentOS/Ubuntu)作为 VPN Server,思路一样。
-
-
已有 AD 域环境(例如
shuncom.local
)。 -
域用户账号若干(VPN 登录将使用 AD 账号)。
-
公网 IP 或 NAT 映射端口。
二、安装 OpenVPN Server
-
下载 OpenVPN 社区版(免费):
👉 https://openvpn.net/community-downloads/ -
安装时勾选:
-
EasyRSA(用于证书生成)
-
OpenVPN Service(安装为服务)
-
-
确认 Windows 防火墙放行:
-
UDP 1194(默认 OpenVPN 端口)
-
或你自定义的端口
-
三、生成证书(CA、Server、Client)
在 C:\Program Files\OpenVPN\easy-rsa
下执行:
# 初始化 CA
EasyRSA-Start.bat
./easyrsa init-pki
./easyrsa build-ca
# 生成服务器证书
./easyrsa build-server-full server nopass
# 生成客户端证书(例如 user01)
./easyrsa build-client-full user01 nopass
证书会在 pki
目录生成,复制到 C:\Program Files\OpenVPN\config
。
四、配置 OpenVPN 服务端
在 C:\Program Files\OpenVPN\config\server.ovpn
添加:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
push "dhcp-option DNS 192.168.1.10" # 你的域控/DNS 服务器 IP
keepalive 10 120
cipher AES-256-GCM
auth SHA256
persist-key
persist-tun
verb 3
# 启用 AD 认证
plugin "C:\\Program Files\\OpenVPN\\lib\\openvpn-auth-ldap.dll" "C:\\Program Files\\OpenVPN\\config\\auth-ldap.conf"
五、配置 AD 认证插件
在 C:\Program Files\OpenVPN\config\auth-ldap.conf
写入:
<LDAP>
URL ldap://192.168.1.10:389
BindDN CN=vpnbind,OU=ServiceAccounts,DC=shuncom,DC=local
Password YourBindPassword
Timeout 15
FollowReferrals yes
</LDAP>
<Authorization>
BaseDN "OU=Users,DC=shuncom,DC=local"
SearchFilter "(sAMAccountName=%u)"
RequireGroup false
</Authorization>
📌 说明:
-
BindDN
:一个有只读权限的域账号(建议新建 vpnbind 专用用户)。 -
BaseDN
:搜索用户的路径,可以指定 OU。 -
SearchFilter
:匹配域用户登录名。
六、启动 OpenVPN 服务
services.msc
找到 OpenVPNService → 启动。
也可用命令行:
net start openvpnservice
七、配置客户端
在客户端(Windows/Linux/Mac)导入 user01.ovpn
:
client
dev tun
proto udp
remote vpn.shuncom.org 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user01.crt
key user01.key
auth-user-pass
cipher AES-256-GCM
auth SHA256
verb 3
首次连接会提示输入 AD 域账号 + 密码。
八、验证
在服务端执行:
"C:\Program Files\OpenVPN\bin\openvpn.exe" --show-status
或查看日志 C:\Program Files\OpenVPN\log\server.log
。
正常时应能看到:
LDAP: User user01 authenticated.
九、加固建议
-
启用 MFA(可配合 AD FS + Azure MFA 或 Duo)。
-
只允许 VPN 用户组成员访问 → 在
auth-ldap.conf
里启用RequireGroup true
。 -
考虑使用 IKEv2 或 WireGuard 替代 OpenVPN,性能更好。
要不要我帮你写一份 auth-ldap.conf 示例(带指定 AD 安全组控制 VPN 登录权限)?这样你可以限制只有某个 AD 组的成员才能连 VPN。
No Comments