H3C 防火墙对接 AD 域完整教程 - LDAP/Radius 认证配置实战

前言

在企业网络环境中,将防火墙与 Active Directory(AD)域对接,可以实现统一的用户认证和管理,简化运维工作。本文详细介绍 H3C 防火墙通过 LDAP 和 Radius 两种方式对接 AD 域的完整配置流程,包括单点登录(SSO)、组策略映射、审计日志等企业级功能。

一、AD 域对接方案对比

1.1 LDAP vs Radius

对比项 LDAP Radius
协议类型 轻量级目录访问协议 远程认证拨号用户服务
端口 TCP 389/636(LDAPS) UDP 1812/1813
主要用途 用户信息查询、认证 认证、授权、计费
配置复杂度 简单 需要 NPS 服务器
支持 MFA 不支持 支持
推荐场景 简单认证、用户同步 企业级认证、MFA

1.2 对接架构

                    企业网络架构
    
    ┌─────────────────────────────────────────┐
    │           Active Directory 域            │
    │  ┌───────────┐    ┌───────────┐         │
    │  │ 主域控制器 │    │ 备域控制器 │         │
    │  │  192.168.1.10 │  │  192.168.1.11 │    │
    │  │   (PDC)   │    │   (BDC)   │         │
    │  └─────┬─────┘    └─────┬─────┘         │
    │        │                │               │
    │        └────────┬───────┘               │
    │                 │ LDAP/Radius           │
    └─────────────────┼───────────────────────┘
                      │
              ┌───────┴───────┐
              │  H3C 防火墙    │
              │  192.168.1.1  │
              │  (认证客户端)  │
              └───────┬───────┘
                      │
         ┌────────────┼────────────┐
         │            │            │
   ┌─────┴─────┐ ┌─────┴─────┐ ┌─────┴─────┐
   │ SSL VPN   │ │  Portal   │ │  管理员   │
   │  用户     │ │  用户     │ │  登录     │
   └───────────┘ └───────────┘ └───────────┘

二、AD 服务器配置

2.1 创建专用服务账号

在 AD 域控制器上创建用于防火墙认证的专用账号:

# 打开 PowerShell(管理员权限)

# 创建服务账号
New-ADUser -Name "h3c_firewall" `
    -SamAccountName "h3c_firewall" `
    -UserPrincipalName "h3c_firewall@example.com" `
    -DisplayName "H3C Firewall Service Account" `
    -Description "Service account for H3C firewall AD integration" `
    -AccountPassword (ConvertTo-SecureString "Firewall@2024!" -AsPlainText -Force) `
    -Enabled $true `
    -PasswordNeverExpires $true `
    -CannotChangePassword $true

# 将账号添加到"Domain Users"组(默认已添加)
# 如需特殊权限,可添加到其他组

# 验证账号
Get-ADUser -Identity h3c_firewall -Properties *

2.2 创建用户组(可选)

# 创建 VPN 用户组
New-ADGroup -Name "VPN_Users" `
    -GroupScope Global `
    -GroupCategory Security `
    -DisplayName "VPN Users" `
    -Description "Users allowed to access VPN"

# 创建管理员组
New-ADGroup -Name "Firewall_Admins" `
    -GroupScope Global `
    -GroupCategory Security `
    -DisplayName "Firewall Administrators" `
    -Description "Firewall administrator group"

# 添加用户到组
Add-ADGroupMember -Identity "VPN_Users" -Members "user01","user02","user03"
Add-ADGroupMember -Identity "Firewall_Admins" -Members "admin01","admin02"

# 查看组成员
Get-ADGroupMember -Identity "VPN_Users"

2.3 配置 NPS 服务器(Radius 方式需要)

安装 NPS 角色

# 在 Windows Server 上安装 NPS(Network Policy Server)
Install-WindowsFeature NPAS -IncludeManagementTools

# 或使用服务器管理器 GUI 安装
# 服务器管理器 → 添加角色和功能 → 网络策略和访问服务 → 网络策略服务器

配置 RADIUS 客户端

  1. 打开 NPS 控制台(nps.msc)
  2. 展开"RADIUS 客户端和服务器"
  3. 右键"RADIUS 客户端" → 新建
  4. 配置客户端信息:
    • 友好名称:H3C-Firewall
    • 地址(IP 或 DNS):192.168.1.1
    • 供应商:RADIUS Standard
    • 共享密钥:Firewall@Radius2024!(与防火墙配置一致)

配置网络策略

  1. 在 NPS 控制台,右键"网络策略" → 新建
  2. 策略名称:H3C_SSL_VPN_Access
  3. 添加条件:
    • Windows 组:VPN_Users
    • NAS 端口类型:Virtual
  4. 添加约束:
    • 认证方法:MS-CHAP v2
  5. 添加设置:
    • RADIUS 属性:Service-Type = Authenticate Only
  6. 完成配置

三、H3C 防火墙 LDAP 认证配置

3.1 基础网络配置

# 进入系统视图
<H3C> system-view
[H3C] sysname H3C-FW

# 配置接口 IP
[H3C-FW] interface GigabitEthernet 0/1
[H3C-FW-GigabitEthernet0/1] ip address 192.168.1.1 255.255.255.0
[H3C-FW-GigabitEthernet0/1] quit

# 配置默认路由
[H3C-FW] ip route-static 0.0.0.0 0.0.0.0 192.168.1.254

# 测试与 AD 服务器连通性
[H3C-FW] ping 192.168.1.10

3.2 配置 LDAP 方案

# 创建 LDAP 方案
[H3C-FW] ldap scheme ldap-ad

# 配置 AD 服务器地址
[H3C-FW-ldap-ldap-ad] primary-server-ip 192.168.1.10

# 配置备用服务器(可选)
[H3C-FW-ldap-ldap-ad] secondary-server-ip 192.168.1.11

# 配置服务器端口(389=LDAP, 636=LDAPS)
[H3C-FW-ldap-ldap-ad] server-port 389

# 配置管理员 DN(绑定账号)
[H3C-FW-ldap-ldap-ad] admin-dn "CN=h3c_firewall,CN=Users,DC=example,DC=com"

# 配置管理员密码
[H3C-FW-ldap-ldap-ad] admin-password cipher Firewall@2024!

# 配置用户搜索基础 DN
[H3C-FW-ldap-ldap-ad] user-search-base "DC=example,DC=com"

# 配置用户搜索过滤器
[H3C-FW-ldap-ldap-ad] user-search-filter "(sAMAccountName=%s)"

# 配置用户 DN 格式(可选,用于直接绑定)
[H3C-FW-ldap-ldap-ad] user-dn-format "CN=%s,CN=Users,DC=example,DC=com"

# 配置连接超时(秒)
[H3C-FW-ldap-ldap-ad] timeout 5

# 启用 LDAP 方案
[H3C-FW-ldap-ldap-ad] enable

[H3C-FW-ldap-ldap-ad] quit

3.3 配置 LDAPS(加密连接)

# 导入 AD 证书(从 AD 服务器导出)
[H3C-FW] pki import certificate ad-cert pem filename "flash:/ad_cert.cer"

# 配置 LDAPS 方案
[H3C-FW] ldap scheme ldap-ad-ssl

# 配置服务器地址和端口(636)
[H3C-FW-ldap-ldap-ad-ssl] primary-server-ip 192.168.1.10
[H3C-FW-ldap-ldap-ad-ssl] server-port 636

# 配置管理员信息
[H3C-FW-ldap-ldap-ad-ssl] admin-dn "CN=h3c_firewall,CN=Users,DC=example,DC=com"
[H3C-FW-ldap-ldap-ad-ssl] admin-password cipher Firewall@2024!

# 配置用户搜索基础
[H3C-FW-ldap-ldap-ad-ssl] user-search-base "DC=example,DC=com"
[H3C-FW-ldap-ldap-ad-ssl] user-search-filter "(sAMAccountName=%s)"

# 引用证书
[H3C-FW-ldap-ldap-ad-ssl] certificate ad-cert

# 启用
[H3C-FW-ldap-ldap-ad-ssl] enable
[H3C-FW-ldap-ldap-ad-ssl] quit

3.4 配置认证域

# 创建认证域
[H3C-FW] domain ad-domain

# 配置 SSL VPN 认证使用 LDAP
[H3C-FW-domain-ad-domain] authentication sslvpn ldap-scheme ldap-ad

# 配置授权(可选)
[H3C-FW-domain-ad-domain] authorization sslvpn ldap-scheme ldap-ad

# 配置计费(可选)
[H3C-FW-domain-ad-domain] accounting sslvpn none

# 配置默认域(可选)
[H3C-FW] domain default enable ad-domain

[H3C-FW-domain-ad-domain] quit

3.5 配置用户组映射

# 创建本地用户组
[H3C-FW] user-group vpn-users

# 配置 LDAP 组映射
[H3C-FW-user-group-vpn-users] ldap-group "CN=VPN_Users,CN=Users,DC=example,DC=com"

# 添加组描述
[H3C-FW-user-group-vpn-users] description "AD VPN Users Group"

[H3C-FW-user-group-vpn-users] quit

# 创建管理员组
[H3C-FW] user-group firewall-admins
[H3C-FW-user-group-firewall-admins] ldap-group "CN=Firewall_Admins,CN=Users,DC=example,DC=com"
[H3C-FW-user-group-firewall-admins] quit

四、H3C 防火墙 Radius 认证配置

4.1 配置 Radius 方案

# 创建 Radius 方案
[H3C-FW] radius scheme radius-ad

# 配置主 Radius 服务器(NPS)
[H3C-FW-radius-radius-ad] primary authentication 192.168.1.10
[H3C-FW-radius-radius-ad] primary accounting 192.168.1.10

# 配置备用服务器(可选)
[H3C-FW-radius-radius-ad] secondary authentication 192.168.1.11
[H3C-FW-radius-radius-ad] secondary accounting 192.168.1.11

# 配置共享密钥(与 NPS 配置一致)
[H3C-FW-radius-radius-ad] key authentication cipher Firewall@Radius2024!
[H3C-FW-radius-radius-ad] key accounting cipher Firewall@Radius2024!

# 配置用户名格式
# without-domain - 不包含域名(如:username)
# with-domain - 包含域名(如:username@example.com)
[H3C-FW-radius-radius-ad] user-name-format without-domain

# 配置服务器类型
[H3C-FW-radius-radius-ad] server-type extended

# 配置重传次数
[H3C-FW-radius-radius-ad] retry 3

# 配置超时时间(秒)
[H3C-FW-radius-radius-ad] timer response-timeout 5

# 启用计费(可选)
[H3C-FW-radius-radius-ad] accounting optional

[H3C-FW-radius-radius-ad] quit

4.2 配置认证域

# 创建认证域
[H3C-FW] domain radius-domain

# 配置 SSL VPN 认证使用 Radius
[H3C-FW-domain-radius-domain] authentication sslvpn radius-scheme radius-ad

# 配置授权
[H3C-FW-domain-radius-domain] authorization sslvpn radius-scheme radius-ad

# 配置计费
[H3C-FW-domain-radius-domain] accounting sslvpn radius-scheme radius-ad

[H3C-FW-domain-radius-domain] quit

4.3 测试 Radius 连接

# 测试 Radius 认证
[H3C-FW] test aaa-scheme radius radius-ad username user01 password User@2024!

# 输出示例:
# Authentication succeeded
# User: user01
# Scheme: radius-ad
# Server: 192.168.1.10:1812

# 查看详细结果
[H3C-FW] display radius scheme radius-ad

五、SSL VPN 集成配置

5.1 配置 SSL VPN 网关

# 启用 SSL VPN
[H3C-FW] ssl vpn enable

# 创建 SSL VPN 网关
[H3C-FW] ssl vpn gateway gateway1
[H3C-FW-ssl-vpn-gateway-gateway1] listen-ip 192.168.1.1
[H3C-FW-ssl-vpn-gateway-gateway1] port 443
[H3C-FW-ssl-vpn-gateway-gateway1] domain vpn.example.com
[H3C-FW-ssl-vpn-gateway-gateway1] enable
[H3C-FW-ssl-vpn-gateway-gateway1] quit

5.2 配置地址池

# 创建 IP 地址池
[H3C-FW] ssl vpn ip-pool pool1
[H3C-FW-ssl-vpn-ip-pool-pool1] network 10.10.10.0 mask 255.255.255.0
[H3C-FW-ssl-vpn-ip-pool-pool1] start-ip 10.10.10.100 end-ip 10.10.10.200
[H3C-FW-ssl-vpn-ip-pool-pool1] dns-server 192.168.1.10
[H3C-FW-ssl-vpn-ip-pool-pool1] domain example.com
[H3C-FW-ssl-vpn-ip-pool-pool1] quit

5.3 配置策略组(LDAP 认证)

# 创建策略组
[H3C-FW] ssl vpn policy-group policy-ldap

# 关联地址池
[H3C-FW-ssl-vpn-policy-group-policy-ldap] ip-pool pool1

# 配置认证方式为 LDAP
[H3C-FW-ssl-vpn-policy-group-policy-ldap] authentication-method ldap

# 引用 LDAP 方案
[H3C-FW-ssl-vpn-policy-group-policy-ldap] ldap-scheme ldap-ad

# 关联认证域
[H3C-FW-ssl-vpn-policy-group-policy-ldap] domain ad-domain

# 配置隧道模式
[H3C-FW-ssl-vpn-policy-group-policy-ldap] tunnel-mode full-tunnel

# 配置分割隧道
[H3C-FW-ssl-vpn-policy-group-policy-ldap] split-include 192.168.1.0 255.255.255.0

# 关联网关
[H3C-FW-ssl-vpn-policy-group-policy-ldap] gateway gateway1

# 启用
[H3C-FW-ssl-vpn-policy-group-policy-ldap] enable
[H3C-FW-ssl-vpn-policy-group-policy-ldap] quit

5.4 配置策略组(Radius 认证)

# 创建策略组
[H3C-FW] ssl vpn policy-group policy-radius

# 关联地址池
[H3C-FW-ssl-vpn-policy-group-policy-radius] ip-pool pool1

# 配置认证方式为 Radius
[H3C-FW-ssl-vpn-policy-group-policy-radius] authentication-method radius

# 引用 Radius 方案
[H3C-FW-ssl-vpn-policy-group-policy-radius] radius-scheme radius-ad

# 关联认证域
[H3C-FW-ssl-vpn-policy-group-policy-radius] domain radius-domain

# 配置隧道模式
[H3C-FW-ssl-vpn-policy-group-policy-radius] tunnel-mode full-tunnel

# 关联网关
[H3C-FW-ssl-vpn-policy-group-policy-radius] gateway gateway1

# 启用
[H3C-FW-ssl-vpn-policy-group-policy-radius] enable
[H3C-FW-ssl-vpn-policy-group-policy-radius] quit

六、管理员登录认证配置

6.1 配置管理员使用 AD 认证

# 创建管理员账号(引用 AD 用户)
[H3C-FW] local-user admin01 class manage
[H3C-FW-luser-manage-admin01] authentication-mode ldap
[H3C-FW-luser-manage-admin01] service-type ssh telnet http https
[H3C-FW-luser-manage-admin01] authorization-attribute user-role network-admin
[H3C-FW-luser-manage-admin01] quit

# 配置登录认证方案
[H3C-FW] line aux 0
[H3C-FW-line-aux0] authentication-mode scheme
[H3C-FW-line-aux0] quit

[H3C-FW] line vty 0 63
[H3C-FW-line-vty0-63] authentication-mode scheme
[H3C-FW-line-vty0-63] protocol inbound ssh telnet
[H3C-FW-line-vty0-63] quit

# 配置 Web 认证
[H3C-FW] ip http authentication-mode scheme
[H3C-FW] ip https authentication-mode scheme

6.2 配置管理员角色映射

# 创建角色
[H3C-FW] role name firewall-admin

# 配置角色权限
[H3C-FW-role-firewall-admin] rule 1 permit read write
[H3C-FW-role-firewall-admin] rule 2 permit execute

# 关联 AD 组
[H3C-FW] user-group firewall-admins
[H3C-FW-user-group-firewall-admins] role firewall-admin
[H3C-FW-user-group-firewall-admins] quit

七、单点登录(SSO)配置

7.1 配置 Kerberos 认证

# 配置 Kerberos realm
[H3C-FW] kerberos realm EXAMPLE.COM

# 配置 KDC 服务器
[H3C-FW-kerberos-realm-EXAMPLE.COM] kdc 192.168.1.10
[H3C-FW-kerberos-realm-EXAMPLE.COM] kdc 192.168.1.11

# 导入密钥表文件(从 AD 导出)
[H3C-FW] kerberos keytab flash:/firewall.keytab

# 配置 SSO
[H3C-FW] sso kerberos enable
[H3C-FW] sso kerberos realm EXAMPLE.COM
[H3C-FW] sso kerberos keytab flash:/firewall.keytab

7.2 在 AD 上配置 SPN

# 在 AD 服务器上设置 SPN(Service Principal Name)

# 为防火墙服务账号设置 SPN
setspn -S HTTP/firewall.example.com h3c_firewall
setspn -S HTTP/192.168.1.1 h3c_firewall

# 验证 SPN
setspn -L h3c_firewall

# 导出密钥表文件(需要第三方工具)
# 使用 ktpass 工具:
ktpass -princ HTTP/firewall.example.com@EXAMPLE.COM \
    -mapuser h3c_firewall \
    -pass Firewall@2024! \
    -out C:\firewall.keytab \
    -ptype KRB5_NT_PRINCIPAL \
    -crypto AES256-SHA1

八、验证与测试

8.1 测试 LDAP 连接

# 测试 LDAP 服务器连通性
[H3C-FW] ping 192.168.1.10

# 测试 LDAP 认证
[H3C-FW] test aaa-scheme ldap ldap-ad username user01 password User@2024!

# 查看 LDAP 方案状态
[H3C-FW] display ldap scheme ldap-ad

# 查看 LDAP 服务器状态
[H3C-FW] display ldap server-status ldap-ad

8.2 测试用户登录

# 测试 SSL VPN 登录
# 1. 访问 https://192.168.1.1 或 https://vpn.example.com
# 2. 使用 AD 账号登录(格式:username 或 username@example.com)
# 3. 验证是否成功获取虚拟 IP

# 查看在线用户
[H3C-FW] display ssl vpn session

# 查看用户详细信息
[H3C-FW] display ssl vpn session username user01 verbose

8.3 查看认证日志

# 查看认证日志
[H3C-FW] display logbuffer | include AAA

# 查看 LDAP 日志
[H3C-FW] display logbuffer | include LDAP

# 查看 Radius 日志
[H3C-FW] display logbuffer | include RADIUS

# 查看 SSL VPN 登录日志
[H3C-FW] display ssl vpn log login

# 导出日志
[H3C-FW] display logbuffer > flash:/auth_log.txt

8.4 查看组映射

# 查看用户组配置
[H3C-FW] display user-group

# 查看 LDAP 组映射
[H3C-FW] display user-group vpn-users

# 查看用户角色
[H3C-FW] display local-user admin01

九、故障排查

9.1 LDAP 连接失败

问题 1:无法连接 LDAP 服务器

# 检查步骤:

# 1. 检查网络连通性
[H3C-FW] ping 192.168.1.10

# 2. 检查端口是否开放
[H3C-FW] telnet 192.168.1.10 389

# 3. 检查 LDAP 配置
[H3C-FW] display ldap scheme ldap-ad

# 4. 检查管理员 DN 和密码
# 确认 DN 格式正确:CN=h3c_firewall,CN=Users,DC=example,DC=com

# 5. 查看 LDAP 调试信息
[H3C-FW] debugging ldap all
[H3C-FW] terminal monitor
[H3C-FW] terminal debugging

问题 2:认证失败

# 检查步骤:

# 1. 验证 AD 账号状态
# 在 AD 上检查账号是否被锁定或禁用

# 2. 检查用户搜索过滤器
[H3C-FW] display ldap scheme ldap-ad
# 确认过滤器:(sAMAccountName=%s)

# 3. 检查用户搜索基础 DN
# 确认:DC=example,DC=com

# 4. 测试认证
[H3C-FW] test aaa-scheme ldap ldap-ad username user01 password User@2024!

# 5. 查看 AD 事件日志
# 在域控制器上查看 Security 日志

9.2 Radius 认证失败

# 检查步骤:

# 1. 检查共享密钥
[H3C-FW] display radius scheme radius-ad
# 确认与 NPS 配置的密钥一致

# 2. 测试 Radius 连接
[H3C-FW] test aaa-scheme radius radius-ad username user01 password User@2024!

# 3. 检查 NPS 策略
# 在 NPS 控制台检查网络策略配置

# 4. 查看 NPS 日志
# 事件查看器 → 应用程序和服务日志 → Microsoft → Windows → NPS

# 5. 检查防火墙规则
# 确保 UDP 1812/1813 端口开放

9.3 用户组映射失败

# 检查步骤:

# 1. 验证 AD 组 DN
# 使用 ADSI Edit 查看正确的组 DN

# 2. 检查组映射配置
[H3C-FW] display user-group vpn-users

# 3. 测试组成员查询
[H3C-FW] debugging ldap all

# 4. 检查用户是否在组内
# 在 AD 上:Get-ADGroupMember -Identity "VPN_Users"

9.4 常用调试命令

# 开启 LDAP 调试
[H3C-FW] debugging ldap all
[H3C-FW] terminal monitor
[H3C-FW] terminal debugging

# 开启 Radius 调试
[H3C-FW] debugging radius all

# 开启 AAA 调试
[H3C-FW] debugging aaa all

# 查看调试信息
[H3C-FW] display debugging

# 关闭所有调试(重要!)
[H3C-FW] undo debugging all

十、安全加固建议

10.1 使用加密连接

协议 推荐配置 避免使用
LDAP LDAPS(TCP 636) 明文 LDAP(TCP 389)
Radius Radius over TLS 明文 Radius
密码 cipher 加密存储 simple 明文

10.2 服务账号安全

# AD 服务账号安全配置

# 1. 设置强密码(至少 16 位)
# 包含大小写、数字、特殊字符

# 2. 密码永不过期(服务账号需要)
Set-ADUser -Identity h3c_firewall -PasswordNeverExpires $true

# 3. 限制账号权限(最小权限原则)
# 只给予必要的读取权限

# 4. 定期审计账号使用情况
Get-ADUser -Identity h3c_firewall -Properties LastLogonDate

# 5. 启用账号保护(AD 回收站)
Enable-ADOptionalFeature -Identity 'Recycle Bin Feature' \
    -Scope ForestOrConfigurationSet -Target 'example.com'

10.3 访问控制

# 配置登录时间限制
[H3C-FW] domain ad-domain
[H3C-FW-domain-ad-domain] access-limit max 100

# 配置失败锁定
[H3C-FW] local-user-policy
[H3C-FW-luser-policy] login-fail-lock enable
[H3C-FW-luser-policy] login-fail-times 5
[H3C-FW-luser-policy] lock-time 30

# 配置密码策略
[H3C-FW-luser-policy] password-complexity enable
[H3C-FW-luser-policy] password-length 8
[H3C-FW-luser-policy] password-history 5

10.4 审计日志

# 配置日志服务器
[H3C-FW] info-center loghost 192.168.1.100

# 启用 AAA 审计
[H3C-FW] info-center source AAA channel 0 log level informational

# 启用 LDAP 审计
[H3C-FW] info-center source LDAP channel 0 log level informational

# 配置日志导出
[H3C-FW] info-center logfile size 10240
[H3C-FW] info-center logfile number 10

总结

本文详细介绍了 H3C 防火墙对接 AD 域的完整流程:

  1. 方案对比:LDAP vs Radius 优缺点分析
  2. AD 配置:服务账号、用户组、NPS 服务器
  3. LDAP 认证:LDAP 方案、LDAPS 加密、认证域
  4. Radius 认证:Radius 方案、NPS 配置、测试验证
  5. SSL VPN 集成:策略组、地址池、隧道模式
  6. 管理员登录:AD 认证、角色映射
  7. 单点登录:Kerberos 配置、SPN 设置
  8. 验证测试:连接测试、用户登录、日志查看
  9. 故障排查:常见问题和调试方法
  10. 安全加固:加密连接、账号安全、访问控制、审计日志

通过 AD 域对接,您可以实现:

  • ✅ 统一用户管理,减少运维工作量
  • ✅ 单点登录,提升用户体验
  • ✅ 集中审计,满足合规要求
  • ✅ 组策略映射,精细化权限控制

建议在生产环境部署前,先在测试环境充分验证配置。如有问题,欢迎留言讨论!🚀


附:配置脚本下载

完整的配置文件和 PowerShell 脚本可在评论区留言获取。

发表回复

后才能评论