本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文旨在詳細說明如何為連線到由Firepower裝置管理(FDM)管理的Cisco Firepower威脅防禦(FTD)的AnyConnect客戶端配置Active Directory(AD)身份驗證。 使用者身份將用於訪問策略,以將AnyConnect使用者限製為特定IP地址和埠。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
Windows伺服器已預配置Internet資訊服務(IIS)和遠端案頭協定(RDP),以便測試使用者身份。在此配置指南中,將建立三個使用者帳戶和兩個組。
使用者帳戶:
組:
若要在FTD上正確設定AD驗證和使用者身分,需要幾個值。在FDM上完成配置之前,必須在Microsoft Server上建立或收集所有這些詳細資訊。主要值為:
如果管理員希望市場行銷組織單位中的使用者能夠對基本DN進行身份驗證,則可以將基本DN設定為根(example.com),但是,這也會允許財務組織單位下的User1也登入,因為使用者搜尋將從根開始,並轉到Finance、Marketing和Research。
基本DN設定為example.com。
為了將登入限製為Marketing組織單位及以下單位中的使用者,管理員可以將Base DN設定為Marketing。現在只有User2和User3能夠進行身份驗證,因為搜尋將從市場行銷開始。
基本DN設定為Marketing:
請注意,為了在FTD內實現更精細的控制,允許使用者根據其AD屬性連線或分配不同的授權,需要配置LDAP授權對映。
本配置指南中使用此簡化的LDAP層次結構,根example.com的DN將用於基礎DN。
1.開啟AD使用者和電腦。
2.左鍵點選根域(以便開啟容器),右鍵點選根域,然後導航到檢視,然後按一下高級功能。
3.這將啟用AD對象下其他屬性的檢視。例如,要查詢根example.com的DN,請按一下右鍵example.com,然後導航到屬性。
4.在屬性下,按一下屬性編輯器頁籤。在「屬性」下查詢distinguishedName,然後按一下檢視。
5.這將開啟一個新視窗,以後可以在其中複製並貼上到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,然後按一下New > User。
2.瀏覽「新建對象 — 使用者向導」。
3.驗證是否已建立FTD帳戶。此外,還另外建立了兩個帳戶,IT管理員和測試使用者。
雖然身份驗證不需要使用組,但可以使用組來簡化將訪問策略應用至多個使用者以及LDAP授權的過程。在此配置指南中,以後將通過FDM中的使用者標識使用組來應用訪問控制策略設定。
1.在Active Directory使用者和電腦中,按一下右鍵新組將新增到其中的容器/組織。在本示例中,AnyConnect Admins組將新增到Users容器下。按一下右鍵Users,然後按一下New > Group。
2.瀏覽「新建對象 — 組」嚮導,如下圖所示。
3.驗證是否已建立組。還建立了AnyConnect Users組。
4.按一下右鍵要新增至的使用者的組,然後選擇屬性。在此配置中,使用者IT Admin將新增到AnyConnect Admins組,使用者Test User將新增到AnyConnect Users組。
5.按一下Members標籤,然後按一下Add,如下圖所示。
在欄位中輸入使用者,然後按一下Check Names按鈕以驗證找到該使用者。驗證後,按一下OK。
驗證是否新增了正確的使用者,然後按一下OK按鈕。使用者測試使用者也使用相同的步驟新增到組AnyConnect使用者。
1.按Win+R並鍵入mmc.exe。按一下「OK」(確定)。
2.導航到檔案>新增/刪除管理單元…… 如下圖所示。
3.在可用管理單元下,按一下Certificates,然後按一下Add。
4.選擇「Computer account」,然後按一下「Next」,如下圖所示。
按一下「Finish」(結束)。
5.按一下確定。
6.展開Personal資料夾,然後按一下Certificates。LDAPS使用的證書應頒發給Windows伺服器的完全限定域名(FQDN)。在此伺服器上列出了3個證書。
在此配置指南中,FQDN為win2016.example.com,因此前2個證書不能用作LDAPS SSL證書。頒發給win2016.example.com的身份證書是由Windows Server CA服務自動頒發的證書。按兩下證書檢查詳細資訊。
7.要用作LDAPS SSL證書,證書必須符合以下要求:
在證書的「詳細資訊」頁籤下的Subject和Subject替代名稱下,存在FQDN win2016.example.com。
在Enhanced Key Usage下,出現Server Authentication。
8.確認後,請導航至認證路徑標籤。按一下應該為根CA證書的頂級證書,然後按一下View Certificate按鈕。
9.這將開啟根CA證書的證書詳細資訊。
10.開啟Details頁籤,然後單擊Copy to File... 如下圖所示。
11.瀏覽將以PEM格式匯出根CA的證書匯出嚮導。
12.選擇Base-64 encoded 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.導覽至Device > Smart License,如下圖所示。
2.驗證FTD是否已註冊到智慧許可伺服器,以及是否已啟用AnyConnect Plux、Apex或VPN Only許可證。
1.導覽至對象>身份源,然後按一下+符號並選擇AD,如下圖所示。
2.使用之前收集的資訊填充Active Directory伺服器的相應設定。如果為Microsoft伺服器使用主機名(FQDN)而不是IP地址,請確保在對象> DNS組下建立適當的DNS組。然後導航到Device > System Settings > DNS Server,然後在Management Interface和Data Interface下應用DNS組,即可將該DNS組應用到FTD,然後為DNS查詢指定適當的輸出介面。按一下Test按鈕以驗證是否成功設定以及是否可從FTD的管理介面連線。由於這些測試是從FTD的管理介面啟動,而不是通過FTD上設定的其中一個可路由介面(例如內部、外部、dmz)來啟動,因此成功(或失敗)的連線並不能保證AnyConnect驗證有相同的結果,因為AnyConnect LDAP驗證要求會從FTD的一個可路由介面啟動。有關從FTD測試LDAP連線的更多資訊,請檢視「故障排除」區域中的「測試AAA」和「資料包捕獲」部分。
如果使用LDAPS或STARTTLS,請選擇適當的Encryption,然後選擇Trusted CA證書。如果尚未新增根CA,請按一下Create New Trusted CA Certificate。提供根CA證書的名稱,然後貼上之前收集的PEM格式根CA證書。
在此配置中,使用以下值:
3.按一下右上角的「待定更改」按鈕,如下圖所示。
4.按一下Deploy Now按鈕。
要使用配置的AD身份源,需要將其應用到AnyConnect配置。
1.導覽至Device > Remote Access VPN,如下圖所示。
2.按一下+符號或Create Connection Profile按鈕,如下圖所示。
3.在「連線和客戶端配置」部分下,選擇之前建立的AD身份源。為包括連線配置檔名稱和客戶端地址池分配在內的其他部分設定適當的值。完成後按一下Submit Query。
4.在「遠端使用者體驗」部分下,選擇適當的組策略。預設情況下,將使用DfltGrpPolicy;但是,可以建立另一個模板。
5.在「全域性設定」部分下,至少指定SSL證書、外部介面和AnyConnect包。如果之前未建立證書,可以選擇預設自簽名證書(DefaultInternalCertificate),但是會看到不受信任的伺服器證書消息。應取消選中解密流量的旁路訪問控制策略(sysopt permit-vpn),以便使用者身份訪問策略規則稍後生效。此處也可以配置NAT豁免。在此配置中,從內部介面到AnyConnect客戶端IP地址的所有ipv4流量均來自NAT。對於更複雜的設定(例如外部到外部髮夾),需要根據NAT策略建立其他NAT規則。AnyConnect軟體包可在思科支援站點找到: https://software.cisco.com/download/home。需要有效的Plus或Apex許可證才能下載AnyConnect軟體包。
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使用者連線,他們將無法訪問任何內容。按一下+符號或Create Access Rule新增新規則。
4.使用適當的值填寫欄位。在此配置中,AnyConnect Admins組內的使用者應該對內部網路中的Windows Server具有RDP訪問許可權。對於源,區域配置為outside_zone,這是AnyConnect使用者將要連線的外部介面,網路配置為AnyConnect-Pool對象,該對象之前配置為將IP地址分配給AnyConnect客戶端。對於FDM中的使用者身份,源必須是使用者將從中啟動連線的區域和網路。對於目標,區域配置為inside_zone(即Windows Server所在的內部介面),網路配置為Inside_Net對象(即定義Windows Server所在子網的對象),埠/協定設定為兩個自定義埠對象,以允許通過TCP 3389和UDP 3389進行RDP訪問。
在Users部分下,將新增組AnyConnect Admins,以便允許此組以外的使用者對Windows Server進行RDP訪問。按一下+符號,按一下「組」(Groups)頁籤,按一下相應的組,然後按一下「確定」(OK)。請注意,也可以選擇單個使用者和身份源。
選擇適當的選項後,按一下確定。
5.根據需要建立更多訪問規則。在此配置中,將建立另一個訪問規則,以允許AnyConnect使用者組中的使用者通過HTTP訪問Windows Server。
6.驗證訪問規則配置,然後按一下右上角的Pending Changes按鈕,如下圖所示。
7.驗證更改,然後按一下Deploy Now。
使用本節內容,確認您的組態是否正常運作。
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 Admin位於對Windows Server具有RDP訪問許可權的AnyConnect Admins組中,但是沒有對HTTP的訪問許可權。開啟與此伺服器的RDP和Firefox會話將驗證此使用者只能通過RDP訪問伺服器。
如果以組中的AnyConnect使用者(該使用者具有HTTP訪問許可權但沒有RDP訪問許可權)中的測試使用者登入,則可以驗證訪問控制策略規則是否生效。
使用本節內容,確認您的組態是否正常運作。
此調試可以在診斷CLI中運行,以便對LDAP身份驗證相關問題進行故障排除:debug ldap 255。
為了排查使用者身份訪問控制策略問題,可以秘密運行system support 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和登入密碼是否正確設定。這可以在使用ldp.exe的AD伺服器上驗證。要驗證帳戶是否可以使用ldp成功繫結,請瀏覽以下步驟:
1.在AD伺服器上,按Win+R並搜尋ldp.exe。
2.按一下連線>連線…… 如下圖所示。
3.指定伺服器的本地主機和相應的埠,然後按一下確定。
4. 「右」列顯示表示連線成功的文本。按一下Connection > Bind... 如下圖所示。
5.選擇Simple Bind,然後指定目錄帳戶使用者名稱和密碼。按一下「OK」(確定)。
成功繫結後,ldp將顯示驗證為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.按一下右鍵「基本DN」,然後按一下「搜尋」,如下圖所示。
4.指定與debug中相同的基本DB、篩選器和範圍值。在此範例中,這些如下:
由於Base DN dc=example,dc=com下沒有具有samaccountname=it.admi的使用者帳戶,LDP會找到0個條目。
使用正確的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伺服器Van上的事件檢視器日誌提供了更多有關失敗原因的詳細資訊。
1.搜尋並開啟事件檢視器。
2.展開Windows Logs,然後按一下Security。使用使用者的Account Name搜尋Audit Failure,然後檢視Failure Information,如下圖所示。
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