部署案例 - IPsec IKEv2 with AD and MFA
部署案例 - IPsec IKEv2 with AD and MFA
本文在 IPsec IKEv2 配置的基础上,部署 AD 域账号密码 + FortiToken 动态口令的远程接入方案。FortiGate 通过 LDAP 验证 AD 密码,并为指定的远程用户校验 FortiToken;FortiClient 使用 IKEv2 / EAP-TTLS 建立连接,EMS 集中下发配置。
本案例采用 FortiGate 本地管理 FortiToken、逐用户授权的方式。这里的 MFA 是用户的 AD 密码与其持有的 Token;所有人共用的 VPN 预共享密钥(PSK)不算用户的第二认证因素。
注
以下是配置示例与验收方法,未在本文对应的实际设备上执行。接口、地址、域名、账号、Token 序列号及密钥须替换为现场值;上线前备份 FortiGate 配置和 EMS Profile,并在试点终端完成正向与反向测试。
适用版本与边界
| 组件 | 要求 |
|---|---|
| FortiGate | 使用支持 EAP-TTLS Token 交互的维护版本:FortiOS 7.4 分支从 7.4.9 起、7.6 分支从 7.6.1 起具备相关支持 |
| FortiClient | 以 EMS 管理的 Windows FortiClient 7.4.4 或更高兼容版本为本文操作对象 |
| FortiClient EMS | 7.4.4 或更高兼容版本,支持从 GUI 选择 EAP-TTLS |
| AD DS | 域控制器提供 LDAP |
| FortiToken | 已在该 FortiGate 注册、可分配,用户完成激活;本文使用手工输入 OTP 验证 |
注意
- 支持 EAP-TTLS 不等于支持 EAP-TTLS 的 MFA 交互。 FortiClient/EMS 7.4.3 已引入 EAP-TTLS,但不能因此认定该版本能完成本文的 Token 提示流程。版本门槛参见 Fortinet:EAP-TTLS 无 Token 提示的处理说明。这些是功能起始版本,不是当前补丁版本推荐。
- 直接通过 LDAP 验证 AD 密码时应选择 EAP-TTLS/PAP,不能沿用默认 EAP-MSCHAPv2。iOS/Android 不支持这里的 EAP-TTLS/PAP 路径;macOS 需另按相应平台版本验证,不能直接套用 Windows 结论。参见 FortiClient EAP-TTLS 功能说明。
认证流程

- 优先使用UDP建立隧道,当UDP不可达时,使用TCP/12443端口建立隧道
- FortiClient 与 FortiGate 协商 IKEv2,使用双方配置的 PSK 完成该层认证。
- FortiGate 请求用户身份;客户端通过 EAP-TTLS 提交域用户名和密码。
- FortiGate 匹配预先创建的 LDAP 类型用户对象,通过 LDAP 向 AD 验证密码。
- FortiGate 要求第二因素,用户输入所绑定 FortiToken 的动态口令。
- 两个因素均通过后,完成 VPN 建连、地址分配,并由访问策略限制业务流量。
EAP-TTLS 保护客户端至 FortiGate 的凭据交互,LDAP 用于 FortiGate 至 AD 的目录查询和密码校验。这是两段独立链路,本文实验使用的 LDAP TCP 389 未启用 TLS,不能由前一段的 EAP-TTLS 提供加密保护。生产环境应使用 LDAPS 或 StartTLS,并验证服务器证书。EMS 不承担域密码或 OTP 校验,也不转发 VPN 业务流量。
示例环境拓扑和相关参数
示例拓扑

示例参数
| 名称 | 设备 | 项目 | 值 | 其他 |
|---|---|---|---|---|
| Client | PC | FortiClient版本 | 7.4.8 | |
| 网卡地址 | 10.234.12.200/24 | |||
| EMS | EMS | EMS版本 | 7.4.8 | 部署方式本文不涉及 |
| EMS连接域名 | emsdemo.fortiems.com.cn | 连接方式本文不涉及 | ||
| VPN Gateway | FortiGate | FortiOS版本 | 7.4.12 | 部署方式本文不涉及 |
| 面向公网接口/地址 | port1/10.234.12.30/24 | |||
| 面向内网接口/地址 | port2/10.167.12.1/24 | |||
| IPsec VPN隧道名 | RA-IKEv2-MFA | |||
| IPsec VPN Phase 1 SA | aes-256/sha-256/dh20 | |||
| IPsec VPN Phase 2 SA | aes-256/sha-256/dh20 | |||
| 预共享密钥 | Pass@123 | |||
| VPN地址池 | 10.254.0.11-10.254.0.20 | |||
| 用户组 | VPN-AD-MFA | 仅加入已绑定Token的用户 | ||
| 分流网段 | 10.167.12.0/24 | |||
| 内部DNS | 10.167.12.254 | |||
| 传输协议 | udp-fallback-tcp | 默认使用UDP传递隧道数据,在UDP不可用时使用TCP | ||
| TCP传输端口号 | 12443 | |||
| 试点用户 | zhangsan,与 AD 的 sAMAccountName 对应 | |||
| LDAP server | Windows AD DC | 网卡地址 | 10.167.12.254 | |
| AD 域 | fortiems.com | |||
| 搜索DN | DC=fortiems,DC=com | |||
| 通用名称标识符 | sAMAccountName | |||
| LDAP对象名 / 端口 | AD / TCP 389 | 实验未启用TLS | ||
| NetBIOS域名 | fortiems | 与截图一致 | ||
| 绑定账号 | fortiems\administrator | 实验账号 | ||
| SSH Server | Linux Server | 网卡地址 / 服务端口 | 10.167.12.100/24 / TCP 22 | 默认网关为10.167.12.1 |
注意
- 本实验中 Client 与 FortiGate 的
port1位于同一网段,且为模拟公网出口。客户端 Remote Gateway 填写10.234.12.30;这是模拟外部接入的实验地址,不是互联网公网地址。实际部署时替换为可达的公网 IP 或域名,并确认 UDP 500/4500、TCP/12443可达。 - 实验中的
Pass@123仅用于对应示例。生产环境应分别设置高强度 PSK 和目录查询账号密码,并用仅具备必要目录读取权限的服务账号替代 Administrator。 - 本试验默认FortiClient已经连接到EMS,并且相应分配到了对应的Policy和security Profile,只配置增加隧道等关键行为,其他配置请参考:客户端连接到EMS、客户端配置的推送。
- 本试验中AD DC和SSH Server的默认网关均为FortiGate port2的接口IP地址(10.167.12.1/24)
配置过程
配置LDAP服务器
准备LDAP服务器配置
LDAP服务配置不在本案例说明范围内。 但是需要确保:
- 确认域控制器 LDAP 服务正常。
- FortiGate能够正常访问LDAP的389端口号。
- 对应测试用户存在且有效。
配置FortiGate
1. 配置 FortiGate 的 LDAP用户
1. 进入 User & Authentication > LDAP Servers 创建对象
进入Edit LDAP Server页面,并配置以下信息:
- Name(名称):
AD。 - Server IP/Name(服务器IP/服务器名):
10.167.12.254。 - Server Port(服务器端口号):
389。 - 通用名称标识符(Common Name Identifier):
sAMAccountName。 - 识别名(Distinguished Name):
DC=fortiems,DC=com。 - 管理员绑定类型(Bind Type):
Regular。 - 用户名(Username):
fortiems\administrator。 - 密码(Password):填写绑定账号密码,与测试用户
zhangsan的密码区分。 - Secure Connection:按现有实验截图保持关闭。

相关CLI参考:
config user ldap
edit "AD"
set server "10.167.12.254"
set port 389
set secure disable
set cnid "sAMAccountName"
set dn "DC=fortiems,DC=com"
set type regular
set username "fortiems\\administrator"
set password Pass@123
next
end在 GUI 执行 Test Connectivity,并用试点账号测试用户凭据。确认AD测试用户成功。

2. 导入用户并绑定 FortiToken
- 在 User & Authentication > FortiTokens 注册或导入 Token,确认其可用且未分配给其他用户。

- 进入 User & Authentication > User Definition,单击 Create New 按钮,进入创建向导。

- 选择用户类型为 Remote LDAP User,并单击Next按钮继续向导。

- 选择LDAP服务器为上一步创建的AD,随后单击Next按钮以继续

- 右击需要添加的测试用户zhangsan,单击 Add Selected 按钮加入选择,选择完成后单击Submit按钮提交。

- 提交后会退回到User Definition页面,此时上一步导入的用户还没有启用 MFA。选择刚刚导入的用户,单击 Edit。

- 编辑用户后,打开Two-factor Authentication 完成以下配置:
- 认证类型(Authentication Type):选择FortiToken;
- 令牌(Token):选择可用的 FortiToken。

- 填写用户接收激活通知的邮箱,确认用户状态为 Enabled,单击 OK 保存。若使用尚未激活的 FortiToken Mobile,按提示发送激活通知,并由用户在手机端完成激活。
- 返回 User Definition,确认
zhangsan的类型为 LDAP,Two-factor Authentication 列显示绑定的 Token。

相关 CLI 参考(Token 序列号和邮箱使用当前环境中实际分配给该用户的值):
config user local
edit "zhangsan"
set type ldap
set ldap-server "AD"
set two-factor fortitoken
set fortitoken "<已注册并分配给zhangsan的Token序列号>"
set email-to "<用户激活邮箱>"
set username-sensitivity disable
next
end注
用户安装FortiToken并导入该令牌,在此过程不再赘述。
虽然对象位于 config user local,其类型为 ldap,密码仍交给 AD 校验,不是在 FortiGate 再创建一套用户密码。增加用户时,每个账号均需绑定自己的 Token,并加入这个专用组。
- 关闭大小写敏感。 因为FortiGate会对大小写敏感,但是LDAP不对大小写敏感,所以可能会导致认证不成功或者不触发MFA,所以需要配置大小写敏感。该配置只能在CLI中配置:
config user local
edit "zhangsan"
set username-sensitivity disable
next
end3. 配置用户组
- 进入 User & Authentication > User Groups,单击 Create New,进入新建组向导

在新建页面中完成以下设置:
- Name:
VPN-AD-MFA。 - Type:
Firewall。 - Members:选择已绑定 FortiToken 的
zhangsan。 - Remote Groups:不添加 LDAP 服务器或远程组。

单击 OK 保存。对应 CLI:
config user group
edit "VPN-AD-MFA"
set group-type firewall
set member "zhangsan"
next
end2. 配置 IPsec IKEv2 隧道
1. 配置 ike TCP端口号
在 FortiGate 上配置 IKE over TCP 监听端口,使 FortiGate 能够通过指定 TCP 端口接收客户端发起的 IKEv2 协商请求。该配置只能通过CLI配置:
config system settings
set ike-tcp-port 12443
end2. 配置相关地址对象
分别创建地址对象,需要创建用于客户端地址分配地址对象RA-MFA-POOL,以及用于作为隧道分离对象的地址组 RA-MFA-SPLIT,包括地址对象RA-MFA-LAN
注
- 使用地址对象更加方便后期运维,隧道分离配置只允许选择一个地址对象或者地址组
进入 Policy & Objects > Addresses,单击Create new按钮,创建以下地址对象:

| 名称 | 类型 | 地址 | 用途 | 配置意义和说明 |
|---|---|---|---|---|
RA-MFA-POOL | IP Range | 10.254.0.11-10.254.0.20 | 客户端地址分配、策略源地址 | 作为 Mode Config 的地址来源,并在访问策略中限定 VPN 源地址范围;仅创建对象不会自动分配地址。 |
RA-MFA-LAN | Subnet | 10.167.12.0/24 | 下发到客户端的分流路由 | 加入 RA-MFA-SPLIT 后供网关下发目标路由;本对象不直接授予访问权限。 |
相关 CLI 参考:
config firewall address
edit "RA-MFA-POOL"
set type iprange
set start-ip 10.254.0.11
set end-ip 10.254.0.20
next
edit "RA-MFA-LAN"
set subnet 10.167.12.0 255.255.255.0
next
end3. 配置相关地址组
- 在 Addresses 中点击AddressGroup选项卡,单击Create new进入地址组配置。

- 创建地址组
RA-MFA-SPLIT,加入RA-MFA-LAN,用于指定分流网段。

完成后单击OK按钮以完成创建,相关CLI命令参考
config firewall addrgrp
edit "RA-MFA-SPLIT"
set member "RA-MFA-LAN"
next
end重要
分流地址组决定哪些目标流量进入 VPN,这是路由层面的配置。实际可访问的资源和端口仍由防火墙策略控制。
4. 配置 IKEv2 隧道,阶段 1 和阶段 2
- 进入 VPN > IPsec Tunnels 单击Create new按钮,创建IPsec Tunnel进入新建隧道配置向导。

- 进入VPN配置向导后,输入名称为
RA-IKEv2-MFA,Template type为Custom。单击Next按钮进入配置模板。

- 使用以下参数配置自定义IPsec 隧道模板。

配置信息:
| 项目 | 值 | 注意 | 配置意义和说明 |
|---|---|---|---|
| Remote Gateway 类型 | Dialup User | 接受地址可能变化的远程客户端主动拨入 | |
| Interface | port1 | 指定接收 IKE 协商的网关接口,须与客户端 Remote Gateway 所在入口对应。 | |
| IKE Version | 2 | 选择 IKEv2 协议,两端版本必须一致;本文用户认证通过 EAP 完成。 | |
| Authentication Method | Pre-shared Key | 选择 IKE 对等体认证方式 | |
| Pre-shared Key | 与示例参数和 EMS 配置一致Pass@123 | 供两端证明持有相同共享密钥;不一致时无法完成该层认证。 | |
| Mode Config | Enable | 由网关向客户端提供 VPN 地址、DNS 和分流信息,避免逐终端手工设置。 | |
| Client Address Range | 10.254.0.11-10.254.0.20 | 指定客户端获得的隧道内源地址。 | |
| DNS Server | 10.167.12.254 | 指定连接后可用的内部解析服务器;下发地址本身不保证 DNS 流量可达。 | |
| Split Tunnel | RA-MFA-SPLIT | 仅将组内目标网段的流量引入 VPN;具体访问权限仍取决于策略。 | |
| EAP | Enable | 必须CLI配置 | 启用用户身份验证为EAP |
| eap-identity | send-request | 必须CLI配置 | FortiGate 在 IKEv2 认证过程中主动发送 EAP-Request/Identity,要求客户端返回 EAP 用户身份,而非直接使用 IKE IDi。适用于需要单独获取 EAP 用户名并进行后续用户认证的场景。 |
| Access Types | Specific peer ID | 限制允许建立 IKEv2 连接的客户端 Peer ID,只有客户端提交的 IKE 身份标识与指定 Peer ID 匹配时,才允许继续协商。 | |
| transport | udp-fallback-tcp | 必须CLI配置 | 默认使用UDP传递隧道数据,在UDP不可用时使用TCP |
| Peer ID | AD-MFA | 指定允许接入的客户端 IKE 身份标识为 AD-MFA,须与 FortiClient/EMS 配置的 Local ID 一致。该标识用于 IKE 对等体匹配,不代表 AD 用户名或 MFA 认证身份。 | |
| Phase 1 Proposal / DH / Lifetime | AES256-SHA256/20/ 86400 | 设定 IKE SA 的算法、密钥交换组和使用时长;86400 秒为 24 小时,不是 MFA 等待超时。 | |
| Phase 2 Proposal / PFS / Lifetime | AES256-SHA256/DH20/ 43200 | 设定业务 IPsec SA 的算法、PFS 密钥交换和使用时长;43200 秒为 12 小时,到期触发重协商。 |
GUI配置
配置网络基本信息:

配置认证信息:

配置阶段1提案(Phase 1 Propsoal)

配置阶段2提案(Phase 2 Selectors)

CLI配置eap/eap-identity/transport
config vpn ipsec phase1-interface
edit "RA-IKEv2-MFA"
set eap enable
set eap-identity send-request
set transport udp-fallback-tcp
next
end完整相关 CLI 参考:
config vpn ipsec phase1-interface
edit "RA-IKEv2-MFA"
set type dynamic
set interface "port1"
set ike-version 2
set peertype one
set net-device disable
set mode-cfg enable
set ipv4-dns-server1 10.167.12.254
set proposal aes128-sha256
set dpd on-idle
set dhgrp 20
set eap enable
set eap-identity send-request
set transport udp-fallback-tcp
set peerid "AD-MFA"
set ipv4-start-ip 10.254.0.11
set ipv4-end-ip 10.254.0.20
set ipv4-split-include "RA-MFA-SPLIT"
set psksecret Pass@123
set dpd-retryinterval 60
next
end
config vpn ipsec phase2-interface
edit "RA-IKEv2-MFA"
set phase1name "RA-IKEv2-MFA"
set proposal aes256-sha256
set dhgrp 20
set keylifeseconds 43200
next
end注意
- 如果
port1已有其他拨号式 IKEv2 隧道,应按基础案例的 Network ID 方法为本隧道指定唯一标识或使用peerid,并在 EMS 中设置相同值,避免连到旧的认证入口。本文使用了指定peerid作为隧道指定唯一标识。
5. 配置关联策略
进入 Policy & Objects > Firewall Policy,单击Create new按钮创建新策略。

进入新策略配置界面后,使用以下参数配置允许IPsec 隧道地址RA-MFA-POOL和测试用户组VPN-AD-MFA访问内网资源RA-MFA-LAN

以下是相关配置信息:
| 项目 | 值 | 配置意义和说明 |
|---|---|---|
| Name | RA-MFA-IPsec-to-LAN | 为这条防火墙策略设置一个名称,方便后续查找、管理和排查问题。 |
| Incoming Interface | RA-IKEv2-MFA | 选择 IPsec VPN 隧道接口,用于接收 VPN 客户端访问内网的流量。 |
| Outgoing Interface | port2 | 选择连接内网的接口,让 VPN 客户端的流量能够转发到内部网络。 |
| Source | RA-MFA-POOL、VPN-AD-MFA | 设置允许访问的 VPN 客户端地址范围和用户组,确保只有符合地址条件且属于指定用户组的客户端才能通过这条策略。 |
| Destination | RA-MFA-LAN | 选择 VPN 客户端可以访问的内网地址范围,避免客户端访问不需要开放的其他网络资源。 |
| Schedule | always | 设置策略始终生效,让 VPN 客户端在通过认证后可以随时访问允许的内网资源。 |
| Service | ALL | 允许 VPN 客户端使用所有服务和端口访问指定的内网资源,方便进行连通性测试和业务访问。 |
| Action | ACCEPT | 允许符合这条策略匹配条件的流量通过 FortiGate。 |
| NAT | Disable | 关闭源地址转换,让内网服务器能够看到 VPN 客户端实际分配到的虚拟 IP 地址,方便识别和排查问题。 |
| Log Allowed Traffic | All Sessions | 记录通过这条策略的会话日志,方便后续查看访问情况和排查连接问题。 |
| 完成后单击OK按钮完成配置 |
相关 CLI 参考:
config firewall policy
edit 0
set name "RA-MFA-IPsec-to-LAN"
set srcintf "RA-IKEv2-MFA"
set dstintf "port2"
set action accept
set srcaddr "RA-MFA-POOL"
set dstaddr "RA-MFA-LAN"
set schedule "always"
set service "ALL"
set logtraffic all
set groups "VPN-AD-MFA"
next
end3. 配置 EMS
1. 在对应的Endpoint Profile 中添加IKEv2隧道
- 登录 EMS,进入 Endpoint Profiles > Remote Access,编辑想要添加隧道的Profile。本例为
VPN-Profile

- 在VPN Tunnels 单击Add Tunnel按钮以添加隧道

- 在进入 VPN Tunnels,后选择 Manual,并单击Next以继续配置IPsec隧道。
- 按以下参数配置IPsec 隧道
| 配置位置 | 参数 | 值 | 注意 |
|---|---|---|---|
| Basic Settings | Name | RA-IKEv2-MFA | |
| Basic Settings | Type | IPsec VPN | |
| Basic Settings | Remote Gateway | 10.234.12.30 | |
| Basic Settings | Authentication Method | Pre-Shared Key | |
| Basic Settings | Pre-Shared Key | 与 FortiGate 一致,实验为 Pass@123 | |
| Basic Settings | Prompt for Username | Enable | |
| VPN Settings | IKE | Version 2 | |
| VPN Settings | Address Assignment | Mode Config | |
| VPN Settings | Mode Config Types | IPv4 | |
| VPN Settings | Encapsulation | Auto | |
| VPN Settings | IKE TCP Port | 12443 | |
| VPN Settings | IKE UDP Port | 500 | |
| Phase 1 | Proposal | AES256 / SHA256 | |
| Phase 1 | Proposal | AES256 / SHA256 | |
| Phase 1 | DH Group / Key Life | 20 / 86400 秒 | |
| Phase 1 | Local ID | AD-MFA | 该参数作为隧道指定唯一标识 |
| Phase 1 | EAP Authentication Method | EAP-TTLS | 请一定注意,不能使用EAP-MSCHAPv2 |
| Phase 1 | Dead Peer Detection / NAT Traversal | Enable | |
| Phase 2 | Proposal | AES256 / SHA256 | |
| Phase 2 | Proposal | AES256 / SHA256 | |
| Phase 2 | DH Group / Key Life | 20 / 43200 秒 | |
| Phase 2 | Perfect Forward Secrecy / Replay Detection | Enable |
Basic Settings配置
| 配置位置 | 参数 | 值 |
|---|---|---|
| Basic Settings | Name | RA-IKEv2-MFA |
| Basic Settings | Type | IPsec VPN |
| Basic Settings | Remote Gateway | 10.234.12.30 |
| Basic Settings | Authentication Method | Pre-Shared Key |
| Basic Settings | Pre-Shared Key | 与 FortiGate 一致,实验为 Pass@123 |

VPN Settings配置

| 配置位置 | 参数 | 值 |
|---|---|---|
| VPN Settings | IKE | Version 2 |
| VPN Settings | Address Assignment | Mode Config |
| VPN Settings | Mode Config Types | IPv4 |
| VPN Settings | Encapsulation | Auto |
| VPN Settings | IKE TCP Port | 12443 |
| VPN Settings | IKE UDP Port | 500 |
Phase 1

| 配置位置 | 参数 | 值 | 注意 |
|---|---|---|---|
| Phase 1 | Proposal | AES256 / SHA256 | |
| Phase 1 | Proposal | AES256 / SHA256 | |
| Phase 1 | DH Group / Key Life | 20 / 86400 秒 | |
| Phase 1 | Local ID | AD-MFA | 该参数作为隧道指定唯一标识 |
| Phase 1 | EAP Authentication Method | EAP-TTLS | 请一定注意,不能使用EAP-MSCHAPv2 |
注
- 因为Phase1 的Proposal必须填写两个,但本例在FortiGate上只配置一个Proposal,所以两个写成相同值,Phase 2 同理。
Phase 2

| 配置位置 | 参数 | 值 |
|---|---|---|
| Phase 2 | Proposal | AES256 / SHA256 |
| Phase 2 | Proposal | AES256 / SHA256 |
| Phase 2 | DH Group / Key Life | 20 / 43200 秒 |
| Phase 2 | Perfect Forward Secrecy / Replay Detection | Enable |
- 单击Save按钮保存隧道,再单击Remote Access Profile的Save按钮以保存Remote Access Profile配置。
注意
EAP-TTLS 是本案例与默认 EAP-MSCHAPv2 配置的关键区别。该设置在 EMS 7.4.4 起可从 GUI 配置,XML 对应值为 <eap_method>2</eap_method>。参见 FortiClient EAP-TTLS 配置说明。
4. 等待FortiClient 更新成功。
FortiClient在更新成功后,显示对应的隧道信息。

单击View按钮可以看到相关的配置。

连接与验证
1. 使用 AD 账号和 Token 建立连接
- 在测试客户端打开 FortiClient,进入 Remote Access/远程访问,选择
RA-IKEv2-MFA,单击Connect/连接按钮,尝试连接VPN。

- 输入用户名
zhangsan及其 AD 密码,单击 连接/Connect。

- 出现 Token 提示后,打开该用户绑定的 FortiToken Mobile,输入当前 OTP,并提交验证。

- 确认连接成功,客户端获得
10.254.0.11-10.254.0.20范围内的地址。

- FortiGate GUI 显示 IPSec 一二阶段均建立成功。

2. 检查客户端地址、DNS、路由
在 Windows PowerShell 中执行ipconfig /all和route print命令确认地址信息和路由:
---------------------------------ipconfig /all---------------------------------
PS C:\WINDOWS\system32> ipconfig /all
……
未知适配器 RA-IKEv2-MFA: <---ipsec VPN 网卡
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Fortinet VPN-V Network Adapter
物理地址. . . . . . . . . . . . . : 00-09-0F-FE-00-01
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . : fe80::50e8:9939:3fbe:5097%28(首选)
IPv4 地址 . . . . . . . . . . . . : 10.254.0.11(首选) <---获取到的IP地址
子网掩码 . . . . . . . . . . . . : 255.255.255.255
默认网关. . . . . . . . . . . . . : 10.254.0.12
DNS 服务器 . . . . . . . . . . . : 10.167.12.254 <---获取到的DNS
TCPIP 上的 NetBIOS . . . . . . . : 已启用
--------------------------------------------------------------------------------
---------------------------------route print------------------------------------
PS C:\WINDOWS\system32> route print
……
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 10.234.12.1 10.234.12.200 25
0.0.0.0 0.0.0.0 10.254.0.12 10.254.0.11 9001
10.167.12.0 255.255.255.0 10.254.0.12 10.254.0.11 2<-------获取到的隧道分离路由
10.234.12.0 255.255.255.0 在链路上 10.234.12.200 281
10.234.12.2 255.255.255.255 在链路上 10.234.12.200 281
10.234.12.30 255.255.255.255 在链路上 10.234.12.200 26
10.234.12.255 255.255.255.255 在链路上 10.234.12.200 281
10.254.0.11 255.255.255.255 在链路上 10.254.0.11 257
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331
224.0.0.0 240.0.0.0 在链路上 10.234.12.200 281
224.0.0.0 240.0.0.0 在链路上 10.254.0.11 257
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
255.255.255.255 255.255.255.255 在链路上 10.234.12.200 281
255.255.255.255 255.255.255.255 在链路上 10.254.0.11 257
===========================================================================
----------------------------------------------------------------------------------3. 检查目标应用是否正常
通过SSH服务尝试登录到SSH服务器,确认正常连接。
C:\Users\fortinet> ssh fortinet@10.167.12.100
fortinet@10.167.12.100's password:
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)
……
fortinet@SSHServer:~$ pwd
/home/fortinet
fortinet@SSHServer:~$4. 检查 FortiGate 隧道和流量
在 VPN > IPsec Tunnels 查看隧道状态,并结合 VPN 事件和流量日志确认用户、分配地址及策略命中。CLI 可使用以下命令:
get vpn ipsec tunnel summary
diagnose vpn ike gateway list
diagnose vpn tunnel list参考结果:
VPN-Gateway # get vpn ipsec tunnel summary
'RA-IKEv2-MFA_0' 10.234.12.200:54870 selectors(total,up): 1/1 rx(pkt,err): 566/0 tx(pkt,err): 414/0
VPN-Gateway # diagnose vpn ike gateway list
vd: root/0
name: RA-IKEv2-MFA_0
version: 2
interface: port1 3
addr: 10.234.12.30:4500 -> 10.234.12.200:54870
tun_id: 10.254.0.11/::10.0.0.3
remote_location: 0.0.0.0
network-id: 0
transport: UDP
created: 1281s ago
eap-user: zhangsan <---登录的用户名
2FA: yes <---开启了MFA
groups:
VPN-AD-MFA 1
peer-id: AD-MFA
peer-id-auth: yes
FortiClient UID: D66214E232194F449E3BB7C1CA0470A7
assigned IPv4 address: 10.254.0.11/255.255.255.255
nat: me peer
pending-queue: 0
PPK: no
IKE SA: created 1/1 established 1/1 time 16770/16770/16770 ms
IPsec SA: created 1/1 established 1/1 time 0/0/0 ms
id/spi: 19 85bdc16c62bdc18d/7a8b4c7556c65a77
direction: responder
status: established 1281-1265s ago = 16770ms
proposal: aes256-sha256
child: no
SK_ei: e16b751e74d2e5f2-3eddbad665162239-fdd801f9dfae040a-832bd0dc8c6b439c
SK_er: b9db205f131dfe07-e23ad00cc7428fe4-7ee0e9fb5afb02a1-607e5bf8f7cd98d8
SK_ai: 8a3aa0ef6784e372-80b6496022c48711-87a4260468acf385-e83933dacd2e1a27
SK_ar: a470839d4b29da7a-1b3d2ed4890e6b90-51c07ac69809e2f4-b12e51921fbf7c0f
PPK: no
message-id sent/recv: 0/77
QKD: no
lifetime/rekey: 86400/84864
DPD sent/recv: 00000000/00000000
peer-id: AD-MFA
VPN-Gateway # diagnose vpn tunnel list
list all ipsec tunnel in vd 0
------------------------------------------------------
name=RA-IKEv2-MFA ver=2 serial=1 10.234.12.30:0->0.0.0.0:0 nexthop= tun_id=10.0.0.1 tun_id6=::10.0.0.1 status=up dst_mtu=0 weight=1
bound_if=3 real_if=0 lgwy=static/1 tun=intf mode=dialup/2 encap=none/552 options[0228]=npu frag-rfc role=primary accept_traffic=1 overlay_id=0
proxyid_num=0 child_num=1 refcnt=3 ilast=43014408 olast=43014408 ad=/0
stat: rxp=606 txp=422 rxb=45679 txb=47122
dpd: mode=on-idle on=0 status=ok idle=60000ms retry=3 count=0 seqno=0
natt: mode=none draft=0 interval=0 remote_port=0
fec: egress=0 ingress=0
------------------------------------------------------
name=RA-IKEv2-MFA_0 ver=2 serial=3 10.234.12.30:4500->10.234.12.200:54870 nexthop=0.0.0.0 tun_id=10.254.0.11 tun_id6=::10.0.0.3 status=up dst_mtu=1500 weight=1
bound_if=3 real_if=3 lgwy=static/1 tun=intf mode=dial_inst/3 encap=none/74664 options[123a8]=npu rgwy-chg rport-chg frag-rfc run_state=0 role=primary accept_traffic=1 overlay_id=0
parent=RA-IKEv2-MFA index=0
proxyid_num=1 child_num=0 refcnt=6 ilast=14 olast=14 ad=/0
stat: rxp=566 txp=414 rxb=42374 txb=45781
dpd: mode=on-idle on=1 status=ok idle=60000ms retry=3 count=0 seqno=1
natt: mode=keepalive draft=0 interval=10 remote_port=54870
fec: egress=0 ingress=0
proxyid=RA-IKEv2-MFA proto=0 sa=1 ref=9 serial=1 add-route
src: 0:0.0.0.0-255.255.255.255:0
dst: 0:10.254.0.11-10.254.0.11:0
SA: ref=3 options=20682 type=00 soft=0 mtu=1422 expire=41918/0B replaywin=2048
seqno=19f esn=0 replaywin_lastseq=00000236 qat=0 rekey=0 hash_search_len=1
life: type=01 bytes=0/0 timeout=43186/43200
dec: spi=77db5823 esp=aes key=32 5ed754087760035a919d0f3a34551ea251bc47c5cd3cc0db82295c8a3bc0fe6a
ah=sha256 key=32 264f8d985376ef235d41238098b75acc72c860031f3eb40393c8d201a2612a33
enc: spi=c965b5a4 esp=aes key=32 9a47d376e591a79ec547203f8e05a735be1a9a018ec367279dc4406e573f2c48
ah=sha256 key=32 f4e5c5c9b4a7edba91939f23d17ef900d54f1db4959a6fe3e743e573a6c8751b
dec:pkts/bytes=566/42374, enc:pkts/bytes=414/77272
npu_flag=00 npu_lgwy=0.0.0.0:0 npu_rgwy=0.0.0.0:0
npu_selid=1 dec_npuid=0 enc_npuid=0
VPN-Gateway #常见问题排查
| 现象 | 检查方向 |
|---|---|
| LDAP 连通性测试失败 | port2 地址与路由、AD TCP 389、Windows 防火墙、绑定账号、DN |
| LDAP 连通但用户凭据失败 | sAMAccountName、zhangsan 密码、用户禁用/锁定/密码过期状态 |
| 客户端未显示隧道 | VPN 组件、EMS 同步、Policy 优先级、实际使用的 Profile |
| IKE 无响应 | Remote Gateway 是否为 10.234.12.30、port1 路径及 UDP 500/4500 |
| Proposal 不匹配 | IKEv2、AES256-SHA256、DH 20、Phase 2 PFS |
| AD 密码正确但 EAP 失败 | 客户端是否实际收到 EAP-TTLS、用户名格式、LDAP 类型用户对象 |
| 无 OTP 提示 | FortiOS/FortiClient 的 MFA 支持版本、Token 绑定、用户组及隧道匹配 |
| OTP 校验失败 | Token 归属与激活状态、手机和 FortiGate 时间、OTP 是否过期 |
| 已连接但 SSH 不通 | 分流路由、策略、SSH 服务监听、服务器防火墙和返回 VPN 地址池的路由 |
更新历史
| Ver | Description | Author | Rev | Date |
|---|---|---|---|---|
| 1.0 | First Complete | ysheng | tanga | 2026.10.18 |