Skip to main content

OpenVPN + AD 域账号集成部署教程

👌 好的,你想要 OpenVPN + AD 域账号集成的完整部署方案。
下面我给你整理一个基于 Windows Server 2025 + AD 域的 OpenVPN 部署教程(也可放在 Linux 上,方法类似)。


🛠 OpenVPN + AD 域账号集成部署教程

一、准备工作

  1. 一台 Windows Server 2025(可作为 VPN Server)。

    • 建议安装在 非 DC 服务器 上,避免和 AD 冲突。

    • 如果你愿意,也可以用 Linux(CentOS/Ubuntu)作为 VPN Server,思路一样。

  2. 已有 AD 域环境(例如 shuncom.local)。

  3. 域用户账号若干(VPN 登录将使用 AD 账号)。

  4. 公网 IP 或 NAT 映射端口。


二、安装 OpenVPN Server

  1. 下载 OpenVPN 社区版(免费):
    👉 https://openvpn.net/community-downloads/

  2. 安装时勾选:

    • EasyRSA(用于证书生成)

    • OpenVPN Service(安装为服务)

  3. 确认 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.

九、加固建议

  1. 启用 MFA(可配合 AD FS + Azure MFA 或 Duo)。

  2. 只允许 VPN 用户组成员访问 → 在 auth-ldap.conf 里启用 RequireGroup true

  3. 考虑使用 IKEv2 或 WireGuard 替代 OpenVPN,性能更好。


要不要我帮你写一份 auth-ldap.conf 示例(带指定 AD 安全组控制 VPN 登录权限)?这样你可以限制只有某个 AD 组的成员才能连 VPN。