此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档旨在详细说明如何为连接到由Firepower设备管理(FDM)管理的Cisco Firepower威胁防御(FTD)的AnyConnect客户端配置Active Directory(AD)身份验证。 用户身份将用于访问策略,以便将AnyConnect用户限制为特定IP地址和端口。
Cisco 建议您了解以下主题:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
Windows服务器预配置了Internet信息服务(IIS)和远程桌面协议(RDP),以测试用户身份。在本配置指南中,将创建三个用户帐户和两个组。
用户帐户:
组:
为了在FTD上正确配置AD身份验证和用户身份,需要一些值。在FDM上完成配置之前,必须在Microsoft服务器上创建或收集所有这些详细信息。主要值为:
如果管理员希望营销组织单位内的用户能够对基本DN进行身份验证,则可以将其设置为根(example.com),但这也允许财务组织单位下的用户1也登录,因为用户搜索将从根开始,并向下转到财务、营销和研究部门。
基本DN设置为example.com。
为了仅限市场营销组织单位及以下用户登录,管理员可以将基本DN设置为市场营销。现在,只有User2和User3能够进行身份验证,因为搜索将从营销部开始。
基本DN设置为“营销”:
请注意,要在FTD内进行更精细的控制,允许用户根据其AD属性连接或分配不同的授权,需要配置LDAP授权映射。
此简化的LDAP层次结构在本配置指南中使用,根example.com的DN将用于基本DN。
1.打开AD用户和计算机。
2.左键单击根域(以打开容器),右键单击根域,然后导航到“查看”并单击“高级功能”。
3.这将启用AD对象下其他属性的视图。例如,要查找根example.com的DN,请右键单击example.com,然后导航到“属性”。
4.在“属性”下,单击“属性编辑器”选项卡。在“属性”下查找distinguishedName,然后单击“查看”。
5.这将打开一个新窗口,在该窗口中,DN可以复制并粘贴到FDM中。在本例中,根DN为DC=example, DC=com。复制值。单击OK以退出“字符串属性编辑器”窗口,然后再次单击OK以退出“属性”。
这可以针对AD中的多个对象执行。例如,以下步骤用于查找用户容器的DN:
6.可以删除“高级功能”视图。右键单击根DN,导航至“View(查看)” ,然后再次单击“Advanced Features(高级功能)”。
此用户帐户将允许FDM和FTD与AD绑定,以搜索用户和组并对其进行身份验证。创建单独的FTD帐户的目的是防止在用于绑定的凭证受到侵害时未经授权访问网络中的其他位置。此帐户不必在基本DN的范围内。
1.在Active Directory用户和计算机中,右键单击将添加FTD帐户的容器/组织。在此配置中,FTD帐户将添加到用户名ftd.admin@example.com下的“用户”(Users)容器下。右键单击“用户”,然后单击“新建”>“用户”。
2.浏览“新建对象 — 用户向导”。
3.确认已创建FTD帐户。此外,还创建了另外两个帐户,即IT管理员和测试用户。
虽然身份验证不需要,但可以使用组来简化对多个用户应用访问策略以及LDAP授权的操作。在本配置指南中,组将用于稍后通过FDM中的用户身份应用访问控制策略设置。
1.在Active Directory用户和计算机中,右键单击要添加新组的容器/组织。在本示例中,组AnyConnect Admins将添加到“用户”容器下。右键单击“用户”,然后单击“新建”>“组”。
2.浏览“新建对象 — 组向导”,如图所示。
3.检验组是否已创建。还创建了AnyConnect用户组。
4.右键单击要添加用户的组,然后选择“属性”。在此配置中,用户IT管理员将添加到组AnyConnect Admins,并且用户测试用户将添加到组AnyConnect Users中。
5.单击“成员”选项卡,然后单击“添加”,如图所示。
在字段中输入用户,然后单击“Check Names(检查名称)”按钮以验证是否找到该用户。验证后,单击OK。
验证是否添加了正确的用户,然后单击“确定”按钮。用户测试用户也会使用相同的步骤添加到AnyConnect用户组。
1.按Win+R键并键入mmc.exe。Click OK.
2.导航至“文件”>“添加/删除管理单元……” 如图所示.
3.在可用管理单元下,单击“证书”,然后单击“添加”。
4.选择“计算机帐户”,然后单击“下一步”,如图所示。
单击 完成。
5.单击“确定”。
6.展开“个人”文件夹,然后单击“证书”。LDAPS使用的证书应颁发给Windows服务器的完全限定域名(FQDN)。在此服务器上,列出了3个证书。
在本配置指南中,FQDN为win2016.example.com,因此前2个证书无效,无法用作LDAPS SSL证书。颁发给win2016.example.com的身份证书是Windows Server CA服务自动颁发的证书。双击证书以检查详细信息。
7.要用作LDAPS SSL证书,证书必须满足以下要求:
在证书的Details选项卡下,在Subject和Subject Alternative Name下,FQDN win2016.example.com出现。
在“增强的密钥使用”下,出现“服务器身份验证”。
8.确认后,导航至“认证路径”选项卡。单击应是根CA证书的顶级证书,然后单击“查看证书”按钮。
9.这将打开根CA证书的证书详细信息。
10.打开“详细信息”选项卡,然后单击“复制到文件……” 如图所示.
11.浏览以PEM格式导出根CA的证书导出向导。
12.选择Base-64编码的X.509。
13.选择文件的名称及其导出位置。
14.单击“完成”。
15.现在,导航到该位置,使用记事本或其他文本编辑器打开证书。这将显示PEM格式证书。保存此内容以备以后使用。
-----BEGIN CERTIFICATE----- MIIDCDCCAfCgAwIBAgIQE4ZG5Z1wT6lONTjooEQyMTANBgkqhkiG9w0BAQsFADAd MRswGQYDVQQDExJleGFtcGxlLVdJTjIwMTYtQ0EwIBcNMjAwNDI3MTQ1MDU5WhgP MjA2MDA0MTkxNDUwNTlaMB0xGzAZBgNVBAMTEmV4YW1wbGUtV0lOMjAxNi1DQTCC ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAI8ghT719NzSQpoQPh0YT67b Ya+PngsxMyvkewP33QLTAWw1HW1Tb9Mk5BDWOItTaVsgHwPBfd++M+bLn3AiZnHV OO+k6dVVY/E5qVkEKSGoY+v940S2316lzdwReMOFhgbc2qMertIoficrRhihonuU Cjyeub3CO+meJUuKom2R47C0D35TUvo/FEHGgXJFaJS1se2UrpNO7KEMkfA1LPuM aob4XE/OzxYQpPa18djsNnskfcFqD/HOTFQN4+SrOhHWlRnUIQBUaLdQaabhipD/ sVs5PneYJX8YKma821uYI6j90YuytmsHBtCieyC062a8BKqOL7N86HFPFkMA3u8C AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O BBYEFD2fJjf7ER9EM/HCxCVFN5QzqEdvMA0GCSqGSIb3DQEBCwUAA4IBAQB31ZJo vzwVD3c5Q1nrNP+6Mq62OFpYH91k4Ch9S5g/CEOemhcwg8MDIoxW2dTsjenAEt7r phFIHZoCoSyjBjMgK3xybmoSeg8vBjCXseYNGEmOc9KW1oFmTOvdNVIb7Xpl1IVa 6tALTt3ANRNgREtxPA6yQbthKGavW0Anfsojk9IcDr2vp0MTjlBCxsTscbubRl+D dLEFKQqmMeYvkVf+a7a64mqPZsG3Uxo0rd6cZxAPkq/ylcdwNSJFfQV3DgZg+R96 9WLCR3Obig6xyo9Zu+lixcWpdrbADO6zMhbEYEhkhOOjBrUEBBI6Cy83iTZ9ejsk KgwBJXEu33PplW6E -----END CERTIFICATE-----
要在FDM上配置AnyConnect,FTD需要向智能许可服务器注册,并且必须向设备应用有效的Plus、Apex或VPN专用许可证。
1.导航至“设备”>“智能许可证”,如图所示。
2.验证FTD是否已注册到智能许可服务器,并且AnyConnect Plux、Apex或仅VPN许可证已启用。
1.导航至“对象”>“身份源”,然后单击+符号并选择AD,如图所示。
2.使用之前收集的信息填写Active Directory服务器的适当设置。如果主机名(FQDN)用于Microsoft服务器而不是IP地址,请确保在“对象”(Objects)>“DNS组”(DNS Group)下创建适当的DNS组。然后,导航到Device > System Settings > DNS Server,在Management Interface 和Data Interface 下应用DNS组,然后为DNS查询指定适当的出口接口,将该DNS组应用到FTD。单击Test按钮以验证是否成功配置并从FTD的管理接口访问。由于这些测试是从FTD的管理接口而不是通过在FTD上配置的可路由接口(如内部、外部、dmz)启动的,因此成功(或失败)连接不能保证AnyConnect身份验证的结果相同,因为AnyConnect LDAP身份验证请求将从FTD的可路由接口之一启动。有关从FTD测试LDAP连接的详细信息,请查看故障排除区域中的测试AAA和数据包捕获部分。
如果使用LDAPS或STARTTLS,请选择适当的加密,然后选择受信任CA证书。如果尚未添加根CA,请点击Create New Trusted CA Certificate。为根CA证书提供名称,然后粘贴之前收集的PEM格式根CA证书。
在此配置中,使用了以下值:
3.单击右上角的“待更改”按钮,如图所示。
4.单击“立即部署”按钮。
要使用已配置的AD身份源,需要将其应用到AnyConnect配置。
1.导航到Device > Remote Access VPN,如图所示。
2.单击+符号或“创建连接配置文件”按钮,如图所示。
3.在“连接和客户端配置”部分下,选择之前创建的AD身份源。为其他部分设置适当的值,包括连接配置文件名称和客户端地址池分配。完成后单击“提交查询”。
4.在“远程用户体验”部分下,选择适当的组策略。默认情况下,将使用DfltGrpPolicy;但是,可以创建另一个。
5.在“全局设置”(Global Settings)部分下,至少指定SSL证书、外部接口和AnyConnect软件包。如果之前未创建证书,则可以选择默认自签名证书(DefaultInternalCertificate),但会看到不受信任的服务器证书消息。应取消选中已解密流量(sysopt permit-vpn)的绕行访问控制策略,以便用户身份访问策略规则稍后生效。NAT免除也可在此处配置。在此配置中,从内部接口到AnyConnect客户端IP地址的所有ipv4流量除来自NAT外。对于更复杂的设置(如外部到外部迂回),需要在NAT策略下创建其他NAT规则。AnyConnect软件包可在思科支持站点找到: https://software.cisco.com/download/home。要下载AnyConnect软件包,需要有效的Plus或Apex许可证。
6.在“摘要”部分下,验证AnyConnect是否已正确设置,然后单击“提交查询”。
7.单击右上角的“待更改”按钮,如图所示。
8.单击“立即部署”。
此时,AnyConnect用户应该能够成功连接,但可能无法访问特定资源。此步骤将启用用户身份,以便只有AnyConnect管理员中的用户可以使用RDP连接到内部资源,并且只有组AnyConnect用户中的用户可以使用HTTP连接到内部资源。
1.导航至Policies > Identity,然后单击Enable Identity Policy。
对于此配置,无需进一步配置,默认操作就足够了。
2.导航至Policies > NAT,确保NAT配置正确。如果在AnyConnect设置中配置的NAT异常已足够,则无需在此处进行其他配置。
3.导航至“策略”>“访问控制”。在本节中,Default Action(默认操作)设置为Block(阻止),并且未创建访问规则,因此,一旦AnyConnect用户连接,他们将无法访问任何内容。单击+符号或创建访问规则以添加新规则。
4.用适当的值填写字段。在此配置中,AnyConnect Admins组内的用户应具有对内部网络中Windows服务器的RDP访问权限。对于源,区域配置为outside_zone,该外部接口是AnyConnect用户将要连接到的外部接口,而网络配置为AnyConnect-Pool对象,此对象之前配置为向AnyConnect客户端分配IP地址。对于FDM中的用户身份,源必须是用户从发起连接的区域和网络。对于目标,区域配置为Windows Server所在的内部接口inside_zone,网络配置为定义Windows Server所在子网的Inside_Net对象,端口/协议设置为两个自定义端口对象以允许通过TCP 3389和UDP 3389进行RDP访问。
在“用户”部分下,将添加组AnyConnect管理员,以便允许此组以外的用户通过RDP访问Windows服务器。单击+符号,单击“组”选项卡,单击适当的组,然后单击“确定”。请注意,也可以选择单个用户和身份源。
选择适当的选项后,单击“确定”。
5.根据需要创建更多访问规则。在此配置中,会创建另一个访问规则以允许AnyConnect用户组内的用户通过HTTP访问Windows服务器。
6.验证访问规则配置,然后单击右上角的Pending Changes按钮,如图所示。
7.验证更改,然后单击“立即部署”。
使用本部分可确认配置能否正常运行。
AAA配置
show running-configuration aaa-server
aaa-server LAB-AD protocol ldap realm-id 7 aaa-server LAB-AD host win2016.example.com server-port 389 ldap-base-dn DC=example,DC=com ldap-scope subtree ldap-login-password ***** ldap-login-dn ftd.admin@example.com server-type auto-detect
配置AnyConnect
> show running-config webvpn webvpn enable outside http-headers hsts-server enable max-age 31536000 include-sub-domains no preload hsts-client enable x-content-type-options x-xss-protection content-security-policy anyconnect image disk0:/anyconnpkgs/anyconnect-linux64-4.7.03052-webdeploy-k9.pkg 1 anyconnect image disk0:/anyconnpkgs/anyconnect-win-4.7.03052-webdeploy-k9.pkg 2 anyconnect enable tunnel-group-list enable cache disable error-recovery disable > show running-config tunnel-group tunnel-group General type remote-access tunnel-group General general-attributes address-pool AnyConnect-Pool authentication-server-group LAB-AD tunnel-group General webvpn-attributes group-alias General enable > show running-config group-policy group-policy DfltGrpPolicy attributes vpn-tunnel-protocol ssl-client split-tunnel-policy tunnelspecified split-tunnel-network-list value DfltGrpPolicy|splitAcl webvpn anyconnect ssl dtls none > show running-config ssl ssl trust-point FTD-3-Manual outside
用户IT管理员位于组AnyConnect管理员中,该管理员具有对Windows Server的RDP访问权限,但无权访问HTTP。打开到此服务器的RDP和Firefox会话,验证此用户是否只能通过RDP访问服务器。
如果使用AnyConnect用户组中具有HTTP访问权限但没有RDP访问权限的测试用户登录,则可以验证访问控制策略规则是否生效。
使用本部分可确认配置能否正常运行。
此调试可在诊断CLI中运行,以排除与LDAP身份验证相关的问题:debug ldap 255。
为了排除用户身份访问控制策略问题,系统支持firewall-engine-debug,以便确定流量被意外允许或阻止的原因。
[53] Session Start [53] New request Session, context 0x00002b1d13f4bbf0, reqType = Authentication [53] Fiber started [53] Creating LDAP context with uri=ldap://192.168.1.1:389 [53] Connect to LDAP server: ldap://192.168.1.1:389, status = Successful [53] supportedLDAPVersion: value = 3 [53] supportedLDAPVersion: value = 2 [53] LDAP server 192.168.1.1 is Active directory [53] Binding as ftd.admin@example.com [53] Performing Simple authentication for ftd.admin@example.com to 192.168.1.1 [53] LDAP Search: Base DN = [DC=example,DC=com] Filter = [sAMAccountName=it.admin] Scope = [SUBTREE] [53] User DN = [CN=IT Admin,CN=Users,DC=example,DC=com] [53] Talking to Active Directory server 192.168.1.1 [53] Reading password policy for it.admin, dn:CN=IT Admin,CN=Users,DC=example,DC=com [53] Read bad password count 6 [53] Binding as it.admin [53] Performing Simple authentication for it.admin to 192.168.1.1 [53] Processing LDAP response for user it.admin [53] Message (it.admin): [53] Authentication successful for it.admin to 192.168.1.1 [53] Retrieved User Attributes: [53] objectClass: value = top [53] objectClass: value = person [53] objectClass: value = organizationalPerson [53] objectClass: value = user [53] cn: value = IT Admin [53] sn: value = Admin [53] givenName: value = IT [53] distinguishedName: value = CN=IT Admin,CN=Users,DC=example,DC=com [53] instanceType: value = 4 [53] whenCreated: value = 20200421025811.0Z [53] whenChanged: value = 20200421204622.0Z [53] displayName: value = IT Admin [53] uSNCreated: value = 25896 [53] memberOf: value = CN=AnyConnect Admins,CN=Users,DC=example,DC=com [53] uSNChanged: value = 26119 [53] name: value = IT Admin [53] objectGUID: value = &...J..O..2w...c [53] userAccountControl: value = 512 [53] badPwdCount: value = 6 [53] codePage: value = 0 [53] countryCode: value = 0 [53] badPasswordTime: value = 132320354378176394 [53] lastLogoff: value = 0 [53] lastLogon: value = 0 [53] pwdLastSet: value = 132319114917186142 [53] primaryGroupID: value = 513 [53] objectSid: value = .............{I...;.....j... [53] accountExpires: value = 9223372036854775807 [53] logonCount: value = 0 [53] sAMAccountName: value = it.admin [53] sAMAccountType: value = 805306368 [53] userPrincipalName: value = it.admin@example.com [53] objectCategory: value = CN=Person,CN=Schema,CN=Configuration,DC=example,DC=com [53] dSCorePropagationData: value = 16010101000000.0Z [53] lastLogonTimestamp: value = 132319755825875876 [53] Fiber exit Tx=515 bytes Rx=2659 bytes, status=1 [53] Session End
[-2147483611] Session Start [-2147483611] New request Session, context 0x00007f9e65ccdc40, reqType = Authentication [-2147483611] Fiber started [-2147483611] Creating LDAP context with uri=ldap://171.16.1.1:389 [-2147483611] Connect to LDAP server: ldap://172.16.1.1:389, status = Failed [-2147483611] Unable to read rootDSE. Can't contact LDAP server. [-2147483611] Fiber exit Tx=0 bytes Rx=0 bytes, status=-2 [-2147483611] Session End
潜在解决方案:
[-2147483615] Session Start [-2147483615] New request Session, context 0x00007f9e65ccdc40, reqType = Authentication [-2147483615] Fiber started [-2147483615] Creating LDAP context with uri=ldap://192.168.1.1:389 [-2147483615] Connect to LDAP server: ldap://192.168.1.1:389, status = Successful [-2147483615] defaultNamingContext: value = DC=example,DC=com [-2147483615] supportedLDAPVersion: value = 3 [-2147483615] supportedLDAPVersion: value = 2 [-2147483615] LDAP server 192.168.1.1 is Active directory [-2147483615] supportedSASLMechanisms: value = GSSAPI [-2147483615] supportedSASLMechanisms: value = GSS-SPNEGO [-2147483615] supportedSASLMechanisms: value = EXTERNAL [-2147483615] supportedSASLMechanisms: value = DIGEST-MD5 [-2147483615] Binding as ftd.admin@example.com [-2147483615] Performing Simple authentication for ftd.admin@example.com to 192.168.1.1 [-2147483615] Simple authentication for ftd.admin@example.com returned code (49) Invalid credentials [-2147483615] Failed to bind as administrator returned code (-1) Can't contact LDAP server [-2147483615] Fiber exit Tx=186 bytes Rx=744 bytes, status=-2 [-2147483615] Session End
潜在解决方案:验证登录DN和登录密码是否已正确配置。这可以在AD服务器上使用ldp.exe进行验证。要验证帐户是否可以成功绑定使用ldp,请浏览以下步骤:
1.在AD服务器上,按Win+R并搜索ldp.exe。
2.单击“连接”>“连接……” 如图所示.
3.为服务器和相应的端口指定localhost,然后单击OK。
4.右列显示指示连接成功的文本。单击Connection > Bind... 如图所示.
5.选择“简单绑定”,然后指定“目录帐户用户名和密码”。Click OK.
如果绑定成功,则ldp将显示Authenticated为DOMAIN\username。
如果尝试使用无效的用户名或密码进行绑定,将导致此类失败。
[-2147483612] Session Start [-2147483612] New request Session, context 0x00007f9e65ccdc40, reqType = Authentication [-2147483612] Fiber started [-2147483612] Creating LDAP context with uri=ldap://192.168.1.1:389 [-2147483612] Connect to LDAP server: ldap://192.168.1.1:389, status = Successful [-2147483612] supportedLDAPVersion: value = 3 [-2147483612] supportedLDAPVersion: value = 2 [-2147483612] LDAP server 192.168.1.1 is Active directory [-2147483612] Binding as ftd.admin@example.com [-2147483612] Performing Simple authentication for ftd.admin@example.com to 192.168.1.1 [-2147483612] LDAP Search: Base DN = [dc=example,dc=com] Filter = [samaccountname=it.admi] Scope = [SUBTREE] [-2147483612] Search result parsing returned failure status [-2147483612] Talking to Active Directory server 192.168.1.1 [-2147483612] Reading password policy for it.admi, dn: [-2147483612] Binding as ftd.admin@example.com [-2147483612] Performing Simple authentication for ftd.admin@example.com to 192.168.1.1 [-2147483612] Fiber exit Tx=456 bytes Rx=1082 bytes, status=-1 [-2147483612] Session End
潜在解决方案:验证AD是否可以通过FTD完成搜索找到用户。这也可以通过ldp.exe完成。
1.成功绑定后,导航至“视图”>“树”,如图所示。
2.指定在FTD上配置的基本DN,然后单击OK。
3.右键点击Base DN,然后点击Search,如图所示。
4.指定调试中看到的相同的Base DB、Filter和Scope值。在本例中,以下是:
ldp查找0个条目,因为在Base DN dc=example,dc=com下没有具有samaccountname=it.admi的用户帐户。
再次尝试使用正确的samaccountname=it.admin显示的结果不同。ldp在Base DN dc=example,dc=com下查找1个条目并打印该用户的DN。
[-2147483613] Session Start [-2147483613] New request Session, context 0x00007f9e65ccdc40, reqType = Authentication [-2147483613] Fiber started [-2147483613] Creating LDAP context with uri=ldap://192.168.1.1:389 [-2147483613] Connect to LDAP server: ldap://192.168.1.1:389, status = Successful [-2147483613] supportedLDAPVersion: value = 3 [-2147483613] supportedLDAPVersion: value = 2 [-2147483613] LDAP server 192.168.1.1 is Active directory [-2147483613] Binding as ftd.admin@example.com [-2147483613] Performing Simple authentication for ftd.admin@example.com to 192.168.1.1 [-2147483613] LDAP Search: Base DN = [dc=example,dc=com] Filter = [samaccountname=it.admin] Scope = [SUBTREE] [-2147483613] User DN = [CN=IT Admin,CN=Users,DC=example,DC=com] [-2147483613] Talking to Active Directory server 192.168.1.1 [-2147483613] Reading password policy for it.admin, dn:CN=IT Admin,CN=Users,DC=example,DC=com [-2147483613] Read bad password count 0 [-2147483613] Binding as it.admin [-2147483613] Performing Simple authentication for it.admin to 192.168.1.1 [-2147483613] Simple authentication for it.admin returned code (49) Invalid credentials [-2147483613] Message (it.admin): 80090308: LdapErr: DSID-0C09042A, comment: AcceptSecurityContext error, data 52e, v3839 [-2147483613] Invalid password for it.admin [-2147483613] Fiber exit Tx=514 bytes Rx=2764 bytes, status=-1 [-2147483613] Session End
潜在解决方案:验证用户的密码是否配置正确且未过期。与登录DN类似,FTD将使用用户凭证对AD进行绑定。此绑定也可以在ldp中完成,以验证AD是否能够识别相同的用户名和密码凭证。ldp中的步骤显示在绑定登录DN和/或密码不正确部分中。此外,还可以出于可能的原因查看Microsoft服务器事件查看器日志。
test aaa-server命令可用于使用特定用户名和密码模拟来自FTD的身份验证尝试。这可用于测试连接或身份验证失败。命令是test aaa-server authentication [AAA-server] host [AD IP/hostname]。
> show running-configuration aaa-server aaa-server LAB-AD protocol ldap realm-id 7 aaa-server LAB-AD host win2016.example.com server-port 389 ldap-base-dn DC=example,DC=com ldap-scope subtree ldap-login-password ***** ldap-login-dn ftd.admin@example.com server-type auto-detect > test aaa-server authentication LAB-AD host win2016.example.com Username: it.admin Password: ******** INFO: Attempting Authentication test to IP address (192.168.1.1) (timeout: 12 seconds) INFO: Authentication Successful
数据包捕获可用于验证到AD服务器的可达性。如果LDAP数据包离开FTD,但没有响应,这可能表示路由问题。
以下是显示双向LDAP流量的捕获完成:
> show route 192.168.1.1 Routing entry for 192.168.1.0 255.255.255.0 Known via "connected", distance 0, metric 0 (connected, via interface) Routing Descriptor Blocks: * directly connected, via inside Route metric is 0, traffic share count is 1 > capture AD interface inside match tcp any host 192.168.1.1 eq 389 > show capture capture AD type raw-data interface inside [Capturing - 0 bytes] match tcp any host 192.168.1.1 eq ldap > test aaa-server authentication LAB-AD host win2016.example.com username it.admin password ****** INFO: Attempting Authentication test to IP address (192.168.1.1) (timeout: 12 seconds) INFO: Authentication Successful > show capture capture AD type raw-data interface inside [Capturing - 10905 bytes] match tcp any host 192.168.1.1 eq ldap > show capture AD 54 packets captured 1: 23:02:16.770712 192.168.1.17.61960 > 192.168.1.1.389: S 3681912834:3681912834(0) win 32768 <mss 1460,nop,nop,timestamp 1061373057 0> 2: 23:02:16.772009 192.168.1.1.389 > 192.168.1.17.61960: S 491521506:491521506(0) ack 3681912835 win 8192 <mss 1460,nop,nop,timestamp 762393884 1061373057> 3: 23:02:16.772039 192.168.1.17.61960 > 192.168.1.1.389: . ack 491521507 win 32768 <nop,nop,timestamp 1061373058 762393884> 4: 23:02:16.772482 192.168.1.17.61960 > 192.168.1.1.389: P 3681912835:3681912980(145) ack 491521507 win 32768 <nop,nop,timestamp 1061373059 0> 5: 23:02:16.772924 192.168.1.1.389 > 192.168.1.17.61960: P 491521507:491522141(634) ack 3681912980 win 65160 <nop,nop,timestamp 762393885 1061373059> 6: 23:02:16.772955 192.168.1.17.61960 > 192.168.1.1.389: . ack 491522141 win 32768 <nop,nop,timestamp 1061373059 762393885> 7: 23:02:16.773428 192.168.1.17.61960 > 192.168.1.1.389: P 3681912980:3681913024(44) ack 491522141 win 32768 <nop,nop,timestamp 1061373060 0> 8: 23:02:16.775030 192.168.1.1.389 > 192.168.1.17.61960: P 491522141:491522163(22) ack 3681913024 win 65116 <nop,nop,timestamp 762393887 1061373060> 9: 23:02:16.775075 192.168.1.17.61960 > 192.168.1.1.389: . ack 491522163 win 32768 <nop,nop,timestamp 1061373061 762393887> [...] 54 packets shown
AD服务器范上的事件查看器日志提供了有关失败原因的更多详细信息。
1.搜索并打开事件查看器。
2.展开“Windows日志”并单击“安全”。使用用户的帐户名搜索“审核失败”,并查看“失败信息”,如图所示。
An account failed to log on. Subject: Security ID: SYSTEM Account Name: WIN2016$ Account Domain: EXAMPLE Logon ID: 0x3E7 Logon Type: 3 Account For Which Logon Failed: Security ID: NULL SID Account Name: it.admin Account Domain: EXAMPLE Failure Information: Failure Reason: The specified user account has expired. Status: 0xC0000193 Sub Status: 0x0 Process Information: Caller Process ID: 0x25c Caller Process Name: C:\Windows\System32\lsass.exe Network Information: Workstation Name: WIN2016 Source Network Address: 192.168.1.17 Source Port: 56321