本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹如何為連線至Cisco Firepower威脅防禦(FTD)的AnyConnect使用者端設定AD驗證。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
本檔案介紹如何為連線到Cisco Firepower威脅防禦(FTD)(由Firepower管理中心(FMC)管理)的AnyConnect使用者端設定Active Directory(AD)驗證。
使用者身份用於訪問策略中,以將AnyConnect使用者限製為特定IP地址和埠。
Windows伺服器預配置了IIS和RDP以測試使用者身份。在此配置指南中,建立了三個使用者帳戶和兩個組。
使用者帳戶:
組:
若要在FTD上正確設定AD驗證和使用者身分,需要幾個值。
在FMC上完成配置之前,必須在Microsoft伺服器上建立或收集所有這些詳細資訊。主要值包括:
這是伺服器的域名。在此配置指南中,example.com是域名。
用於訪問Microsoft伺服器的IP地址或FQDN。如果使用FQDN,則必須在FMC和FTD中配置DNS伺服器以解析FQDN。
在本配置指南中,此值為win2016.example.com(解析為192.168.1.1)。
LDAP服務使用的埠。預設情況下,LDAP和STARTTLS將TCP埠389用於LDAP,而LDAP over SSL(LDAPS)使用TCP埠636。
如果使用LDAPS或STARTTLS,則需要使用根CA來對LDAPS使用的SSL證書進行簽名。
這是FMC和FTD用於繫結到LDAP伺服器、對使用者進行身份驗證以及搜尋使用者和組的帳戶。
為此建立了一個名為FTD Admin的帳戶。
基礎DN是FMC的起點,FTD會告知Active Directory開始搜尋和驗證使用者。
同樣,組DN是起點,FMC會告知Active Directory從何處開始搜尋使用者身份組。
在本配置指南中,根域example.com用作基礎DN和組DN。
但是,對於生產環境,在LDAP層次結構中進一步使用Base DN和Group DN會更好。
例如,此LDAP層次結構:
如果管理員希望Marketing組織單位中的使用者能夠驗證基本DN,可以將基本DN設定為根(example.com)。
但是,這也允許Finance組織單位下的User1登入,因為使用者搜尋從根使用者開始,然後轉到Finance、Marketing和Research。
基本DN設定為example.com
為了將登入限製為Marketing組織單位及以下單位中的唯一使用者,管理員可以將Base DN設定為Marketing。
現在只有User2和User3能夠進行身份驗證,因為搜尋從Marketing開始。
基本DN設定為Marketing
請注意,為了在FTD內進行更精細的控制(允許使用者連線或根據使用者的AD屬性為其分配不同的授權),需要配置LDAP授權對映。
有關此操作的詳細資訊,請參閱:在Firepower威脅防禦(FTD)上配置AnyConnect LDAP對映。
此簡化的LDAP層次結構用於此配置指南,根example.com的DN用於基礎DN和組DN。
1.開啟Active Directory使用者和電腦。
2.左鍵按一下根域(開啟容器),按一下右鍵根域,然後在View下按一下Advanced Features。
3.這將啟用AD對象下其他屬性的檢視。例如,要查詢根example.com的DN,請按一下右鍵example.com,然後選擇Properties。
4.在屬性下,選擇屬性編輯器頁籤。在Attributes下查詢distinguishedName,然後按一下View。
5.這將開啟一個新視窗,以後可以在其中複製並貼上到FMC中。在本示例中,根DN是DC=example,DC=com。
複製值儲存以備以後使用。按一下OK以退出「String Attribute Editor」視窗,然後再次按一下「OK」以退出「Properties」。
這可以對Active Directory中的多個對象執行此操作。例如,以下步驟用於查詢User container的DN:
6.再次按一下右鍵根DN,然後在View下再次按一下Advanced Features,可以刪除Advanced Features檢視。
此使用者帳戶允許FMC和FTD與Active Directory繫結,以搜尋使用者和組並對使用者進行身份驗證。
建立單獨的FTD帳戶的目的是,在用於繫結的憑證遭到破壞時,防止網路中其他地方的未經授權存取。
此帳戶無需在基本DN或組DN範圍內。
1.在Active Directory使用者和電腦中,按一下右鍵FTD帳戶新增到的容器/組織。
在此組態中,FTD帳戶會新增到使用者名稱ftd.admin@example.com下Users容器下方。
按一下右鍵Users,然後導航到New > User。
2.完成「新建對象 — 使用者」嚮導。
3.驗證是否已建立FTD帳戶。另外建立了兩個帳戶:IT管理員和測試用戶。
雖然身份驗證不需要使用組,但可以使用組來簡化將訪問策略應用至多個使用者以及LDAP授權的過程。
在此配置指南中,組用於稍後通過FMC中的使用者標識應用訪問控制策略設定。
1.在Active Directory使用者和電腦中,按一下右鍵新組新增到其中的容器或組織單元。
在本示例中,組AnyConnect Admins被新增到Users容器下。按一下右鍵Users,然後導航到New > Group。
2.完成「新建對象 — 組」向導。
3.驗證是否已建立組。AnyConnect Users組也將建立。
4.按一下右鍵使用者組,然後選擇屬性。在此配置中,使用者IT Admin新增到AnyConnect Admins組,使用者Test User新增到AnyConnect Users組。
5.在「成員」頁籤下,按一下新增。
在欄位中輸入使用者,然後按一下Check Names以驗證找到該使用者。驗證後,按一下OK。
驗證是否新增了正確的使用者,然後按一下「OK(確定)」按鈕。使用者測試使用者也會使用相同的步驟新增到AnyConnect使用者組。
1.按Win+R並輸入mmc.exe,然後按一下「確定」。
2.導航到檔案>新增/刪除管理單元……
3.在「可用管理單元」下,選擇Certificates,然後按一下Add。
4.選擇電腦帳戶,然後按一下下一步。
按一下「Finish」(結束)。
5.現在按一下OK。
6.展開Personal資料夾,然後按一下Certificates。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。
在Enhanced Key Usage下,存在Server Authentication。
8.確認後,在Certification Path頁籤下,選擇作為根CA證書的頂級證書,然後按一下View Certificate。
9.這將開啟根CA證書的證書詳細資訊。
在Details頁籤下,按一下Copy to File...
10.通過證書導出嚮導,以PEM格式匯出根CA。
選擇Base-64 encoded X.509
選擇檔案的名稱以及匯出檔案的位置。
現在按一下完成。
11.現在轉到該位置,並使用記事本或其他文本編輯器開啟證書。這顯示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-----
12.(可選)如果LDAPS可使用多個身份證書,且使用哪個身份證書存在不確定性,或者無法訪問LDAPS伺服器,則可以從在Windows伺服器或FTD之後完成的資料包捕獲中提取根ca。
為了部署AnyConnect配置,FTD需要在智慧許可伺服器中註冊,並且必須向裝置應用有效的Plus、Apex或VPN僅許可證。
1.導航至系統>許可證>智慧許可。
2.驗證裝置是否合規並成功註冊。確保裝置已註冊到AnyConnect Apex、Plus或VPN Only許可證。
1.定位至系統>整合。
2.在領域下,按一下新建領域。
3.根據從Microsoft伺服器收集的資訊填寫相應的欄位。完成後,按一下OK。
4.在新視窗中,選擇Directory(如果尚未選擇),然後按一下Add directory。
填寫AD伺服器的詳細資訊。請注意,如果使用FQDN,則除非將DNS配置為解析FQDN,否則FMC和FTD無法成功繫結。
要設定FMC的DNS,請導航至System > Configuration,然後選擇Management Interfaces。
若要為FTD設定DNS,請導覽至Devices > Platform Settings,建立一個新原則,或編輯目前的原則,然後前往DNS。
如果使用LDAPS或STARTTLS,請按一下綠色+符號,為證書指定一個名稱,然後複製PEM格式的根CA證書。完成後按一下Save。
從SSL Certificate旁邊的下拉選單中選擇新增的根CA,然後按一下STARTTLS或LDAPS。
按一下測試以確保FMC能夠使用上一步中提供的目錄使用者名稱和密碼成功繫結。
由於這些測試是從FMC啟動的,而不是通過FTD上配置的某個可路由介面(如內部、外部、dmz),因此成功(或失敗)的連線不能保證AnyConnect身份驗證的相同結果,因為AnyConnect LDAP身份驗證請求是從FTD可路由介面之一啟動的。
有關從FTD測試LDAP連線的更多資訊,請檢視「故障排除」區域中的「測試AAA」和「資料包捕獲」部分。
5.在User Download下,在後續步驟中下載用於使用者身份的組。
選中Download users and groups覈取方塊,Available Groups列將填充在Active Directory中配置的組。
組可以包括(Included)或排除(Excluded),但預設情況下包括組DN下找到的所有組。
也可以包括或排除特定使用者。任何包含的組和使用者都可供以後選擇用於使用者身份。
完成後,按一下「Save」。
6.啟用新領域。
7.如果使用LDAPS或STARTTLS,則根CA也需要由FTD信任。為此,請首先導覽至Devices > Certificates。
按一下右上角的Add。
選擇FTD,將LDAP配置新增到中,然後點選綠色+符號。
為信任點指定名稱,然後從註冊型別下拉選單中選擇手動註冊。將PEM根ca證書貼上到此處,然後按一下Save。
驗證已選擇建立的信任點,然後按一下Add。
新信任點將出現在FTD下。雖然其中提到需要匯入身份證書,但對於FTD而言,並不要求能夠對LDAPS伺服器傳送的SSL證書進行身份驗證,因此可以忽略此消息。
1.這些步驟假定尚未建立遠端訪問vpn策略。如果已建立策略,請點選該策略的edit按鈕,並跳至步驟3。
導覽至Devices > VPN > Remote Access。
按一下Add建立新的遠端訪問VPN策略
2.完成遠端訪問VPN策略嚮導。在Policy Assignment下,指定策略名稱和應用該策略的裝置。
在Connection Profile下,指定Connection Profile的名稱,該名稱也用作AnyConnect使用者在連線時看到的組別名。
指定以前在Authentication Server下建立的領域。
指定為AnyConnect客戶端分配IP地址的方法。
指定用於此連線配置檔案的預設組策略。
在AnyConnect下,上傳並指定使用的AnyConnect軟體包。
在Access & Certificate下,指定AnyConnect使用者訪問AnyConnect的介面。
建立和/或指定FTD在SSL交握期間使用的憑證。
確保取消選中解密流量(sysopt permit-vpn)的旁路訪問控制策略覈取方塊,以便以後建立的使用者標識對RAVPN連線生效。
在Summary下,按一下Finish檢視配置。
3.在Remote Access VPN Policy下,按一下相應的Connection Profile的edit。
確保將身份驗證伺服器設定為之前建立的領域。
在Advanced Settings下,可以選中Enable Password Management,以允許使用者在其密碼到期時或之前更改其密碼。
但是,此設定要求領域使用LDAPS。如果進行了任何更改,請按一下Save。
完成後,按一下右上角的Save。
1.定位至策略>訪問控制>標識。
建立新的身份策略。
指定新身份策略的名稱。
2.按一下新增規則。
3.為新規則指定名稱。請確保已啟用該功能,並將操作設定為Passive Authentication。
按一下Realm & Settings頁籤,然後選擇之前建立的領域。完成後按一下Add。
4.按一下Save。
5.定位至策略>訪問控制>訪問控制。
6.編輯FTD配置所在的訪問控制策略。
7.按一下Identity Policy旁邊的值。
選擇之前建立的身份策略,然後按一下確定。
8.按一下Add Rule以建立新的ACP規則。這些步驟建立規則以允許AnyConnect Admins組中的使用者使用RDP連線到內部網路中的裝置。
指定規則的名稱。確保規則已啟用並具有相應的操作。
在Zones頁籤下,為相關流量指定適當的區域。
使用者所起始的RDP流量會進入源自外部區域介面的FTD,然後輸出內部區域。
在Networks下,定義源網路和目標網路。
對象AnyConnect_Pool包括分配給AnyConnect客戶端的IP地址。
對象Inside_Net包括內部網路子網。
在Users下,按一下Available Realms下之前建立的領域,在Available Users下按一下相應的組/使用者,然後按一下Add to Rule。
如果Available Users部分下沒有可用的使用者或組,請確保FMC能夠下載realm部分下的Users和Groups,並且包含適當的Groups/User。
從源角度檢查此處指定的使用者/組。
例如,根據此規則到目前為止所定義的內容,FTD會評估以下情況:流量來源為外部區域,且目的地為內部區域,來源為AnyConnect_Pools對象中的網路,且目的地為Inside_Net對象中的網路,而流量來源為AnyConnect Admins組中的使用者。
在Ports下,建立並新增自定義RDP對象以允許TCP和UDP埠3389。請注意,本可以在Applications部分下新增RDP,但為簡單起見,只檢查埠。
最後,在Logging下,稍後會檢查Log at End of Connection以進行其他驗證。完成後按一下Add。
9.為HTTP訪問建立了一個附加規則,以允許組AnyConnect User中的用戶訪問Windows Server IIS網站。按一下「Save」。
如果存在影響AnyConnect流量的NAT規則(如網際網路PAT規則),則必須配置NAT免除規則,以使AnyConnect流量不會受NAT影響。
1.導航到Devices > NAT。
選擇應用於FTD的NAT策略。
2.在該NAT策略中,終端有一個動態PAT,該PAT會影響從外部介面到外部介面的所有流量(包括AnyConnect流量)。
要防止AnyConnect流量受NAT影響,請按一下右上角的Add Rule。
3.配置NAT免除規則,確保該規則是型別為Static的手動NAT規則。這是適用於AnyConnect流量的雙向NAT規則。
透過這些設定,當FTD偵測來源為Inside_Net且目的地為AnyConnect IP位址(由AnyConnect_Pool定義)的流量時,來源會轉換為相同的值(Inside_Net),而目的地會在流量進入inside_zone且離開outside_zone時轉換為相同的值(AnyConnect_Pool)。在滿足這些條件時,這基本上會繞過NAT。
此外,FTD設定為對此流量執行路由查詢,而不是代理ARP。完成後按一下OK。
4.按一下Save。
1.配置完成後,按一下右上角的Deploy按鈕。
2.按一下FTD旁的覈取方塊,然後按一下「Deploy」。
> show running-configuration aaa-server aaa-server LAB-AD protocol ldap max-failed-attempts 4 realm-id 5 aaa-server LAB-AD host win2016.example.com server-port 389 ldap-base-dn DC=example,DC=com ldap-group-base-dn DC=example,DC=com ldap-scope subtree ldap-naming-attribute samaccountname ldap-login-password ***** ldap-login-dn ftd.admin@example.com server-type microsoft
> show running-config webvpn webvpn enable Outside anyconnect image disk0:/csm/anyconnect-linux64-4.7.03052-webdeploy-k9.pkg 1 regex "Linux" anyconnect image disk0:/csm/anyconnect-win-4.7.00136-webdeploy-k9.pkg 2 regex "Windows" anyconnect profiles Lab disk0:/csm/lab.xml anyconnect enable tunnel-group-list enable cache no 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-simultaneous-logins 10 vpn-tunnel-protocol ikev2 ssl-client split-tunnel-policy tunnelspecified split-tunnel-network-list value Lab user-authentication-idle-timeout none webvpn anyconnect keep-installer none anyconnect modules value dart anyconnect ask none default anyconnect http-comp none activex-relay disable file-entry disable file-browsing disable url-entry disable deny-message none anyconnect ssl df-bit-ignore enable > show running-config ssl ssl trust-point FTD-2-SelfSigned outside
使用者IT Admin位於對Windows Server具有RDP訪問許可權的AnyConnect Admins組中,但是沒有對HTTP的訪問許可權。
開啟與此伺服器的RDP和Firefox會話將驗證此使用者只能通過RDP訪問伺服器。
如果使用AnyConnect使用者組(作為HTTP訪問但不是RDP訪問)中的使用者測試使用者登入,我們可以驗證訪問控制策略規則是否生效。
由於在訪問控制策略規則中啟用了日誌記錄,因此可以檢查連線事件中是否存在與這些規則匹配的任何流量
導航到分析>連線>事件。
在Table View of Connection Events下,日誌被過濾為僅顯示IT管理員的連線事件。
在這裡,您可以驗證到伺服器的RDP流量(TCP和UDP 3389)是否被允許,但是埠80流量被阻止。
對於使用者測試使用者,可以驗證到伺服器的RDP流量是否被阻止,以及埠80流量是否被允許。
此調試可以在診斷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.在Connection下,選擇Connect...
3.指定伺服器的本地主機和相應的埠,然後按一下確定。
4. 「右」列顯示指示連線成功的文本。導航到Connection > Bind...
5.選擇Simple Bind,然後指定Directory Account Username和Password。按一下「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,然後按一下Search。
4.指定與debug中相同的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,但沒有回應,這可能表示路由問題。
Capture顯示雙向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 Logs,然後按一下Security。使用使用者帳戶名稱搜尋稽核失敗並檢視失敗資訊。
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
修訂 | 發佈日期 | 意見 |
---|---|---|
2.0 |
20-Dec-2022 |
重新認證 |
1.0 |
22-Mar-2021 |
初始版本 |