本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹如何為連線到Firepower威脅防禦(FTD)的AnyConnect客戶端配置Active Directory (AD)身份驗證。
思科建議您瞭解以下主題:
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
本文檔介紹如何為連線到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層次結構:
如果管理員希望市場行銷組織單位內的使用者能夠對基本DN進行身份驗證,可將基本DN設定為根(example.com)。
但是,這也允許財務組織單位下的使用者1登入,因為使用者搜尋從根目錄開始,然後轉至財務、行銷和研究。
基本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. 按一下根域(以打開容器),下一步,按一下右鍵根域,然後在檢視下按一下高級功能。
3. 這樣可以檢視AD物件下的其他屬性。例如,若要查詢根example.com的DN,請按一下右鍵example.com,然後選擇屬性。
4. 在屬性下,選擇屬性編輯器頁籤。在Attributes下查詢distinguishedName,然後按一下View。
5. 這會開啟新視窗,供您稍後複製並貼入FMC。在本示例中,根DN是DC=example,DC=com。
複製值並儲存以供日後使用。按一下OK退出String Attribute Editor窗口,然後再次按一下OK退出Properties。
這可以針對Active Directory內的多個物件完成。例如,可以使用以下步驟查詢使用者容器的DN:
6. 再次按一下右鍵根DN,然後按一下檢視下的高級功能可以刪除高級功能檢視。
此使用者帳戶允許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(確定)」。使用者Test User也會使用相同的步驟增加到AnyConnect使用者組中。
1. 按Win+R並輸入mmc.exe。然後按一下OK。
2. 導航到檔案>增加/刪除管理單元。
3. 在可用管理單元下,選擇證書,然後按一下增加。
4. 選擇電腦帳戶,然後按一下下一步。
按一下「Finish」(結束)。
5. 按一下確定。
6. 展開個人資料夾,然後按一下證書。LDAPS使用的憑證會發行給Windows伺服器的完整網域名稱(FQDN)。此伺服器上列出了3個憑證。
在本配置指南中,FQDN為win2016.example.com,因此前2個證書不能用作LDAPS SSL證書。頒發給win2016.example.com的身份證書是由Windows Server CA服務自動頒發的證書。連按兩下憑證以檢查詳細資料。
7. 要用作LDAPS SSL證書,該證書必須符合以下要求:
在證書的詳細資訊頁籤下,選擇主題和主題備用名稱,FQDN win2016.example.com存在。
在Enhanced Key Usage下,顯示Server Authentication。
8. 確認之後,在證書路徑頁籤下,選擇作為根CA證書的頂級證書,然後按一下檢視證書。
9. 這將打開根CA證書的證書詳細資訊。
在詳細資訊頁籤下,按一下複製到檔案。
10. 執行憑證匯出精靈。嚮導以PEM格式導出根CA。
選擇Base-64 encoded X.509。
選取檔案的名稱和匯出位置。
現在請按一下Finish。
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專用許可證註冊。
1. 定位至系統>整合。
2. 在領域下,按一下新領域。
3. 根據從Microsoft伺服器收集到的資訊,填寫適當的欄位。然後按一下OK。
4. 在新窗口中,選擇Directory(如果尚未選擇),然後按一下Add directory。
填寫AD伺服器的詳細資訊。請注意,如果使用了FQDN,則FMC和FTD無法成功繫結,除非將DNS配置為解析FQDN。
要為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. 在使用者下載下,在後續步驟中下載用於使用者身份的組。
選中Download users and groups覈取方塊,並且Available Groups列中填充Active Directory中配置的組。
組可以包括(Included)或(Exclude),但預設情況下包括組DN下找到的所有組。
也可以包括或排除特定使用者。任何包含的群組和使用者都可在稍後選取供使用者辨識之用。
完成後,按一下Save。
6. 啟用新範圍。
7. 如果使用LDAPS或STARTTLS,則根CA也需要受到FTD信任。為此,請首先導航到裝置>證書。
按一下右上方的Add。
選擇FTD,將LDAP配置增加到,然後按一下+(加號)符號。
為信任點指定名稱,然後從Enrollment Type下拉選單中選擇Manual enrollment。將PEM根ca證書貼上到此處,然後按一下Save。
驗證是否選擇了建立的信任點,然後按一下Add。
新的信任點會出現在FTD下。雖然其中提到需要匯入辨識憑證,但FTD並不需要驗證LDAPS伺服器傳送的SSL憑證。因此,可以忽略此消息。
1. 這些步驟假定尚未建立遠端訪問VPN策略。如果已經建立策略,請按一下該策略的[編輯]按鈕,然後跳到步驟3。
導航到Devices > VPN > Remote Access。
按一下Add建立新的遠端訪問VPN策略
2. 完成遠端訪問VPN策略嚮導。在Policy Assignment下,指定策略名稱以及應用策略的裝置。
在Connection Profile下指定Connection Profile的名稱,該名稱也用作AnyConnect使用者在連線時看到的組別名。
指定先前在驗證伺服器下建立的範圍。
指定為AnyConnect客戶端分配IP地址的方法。
指定用於此連線配置檔案的預設組策略。
在AnyConnect下,上傳並指定使用的AnyConnect軟體套件。
在Access & Certificate下,指定AnyConnect使用者可訪問AnyConnect的介面。
建立和/或指定FTD在SSL交握期間使用的憑證。
確保取消選中解密的資料流(sysopt permit-vpn)的Bypass Access Control policy覈取方塊,以便以後建立的使用者標識對RAVPN連線生效。
在Summary下,透過按一下Finish檢視配置。
3. 在VPN > Remote Access policy下,點選相應連線配置檔案的編輯圖示(鉛筆)。
確定已將「驗證伺服器」設定為之前建立的範圍。
在Advanced Settings下,可以選中Enable Password Management,以便使用者在其密碼過期或之前更改其密碼。
但是,此設定要求領域使用LDAPS。如果進行了任何更改,請按一下Save。
完成後,按一下Save。
1. 導航到策略>訪問控制>標識。
建立新的身份策略。
指定新身份策略的名稱。
2. 按一下增加規則。
3. 指定新規則的名稱。確保該操作已啟用,並且已設定為Passive Authentication。
按一下Realm & Settings頁籤並選擇以前建立的領域。完成後按一下Add。
4. 按一下儲存。
5. 導航到策略>訪問控制>訪問控制。
6. 編輯FTD設定的存取控制原則。
7. 按一下Identity Policy旁邊的值。
選擇之前建立的Identity Policy,然後按一下OK。
8. 按一下增加規則以建立新的ACP規則。這些步驟會建立一個規則,允許AnyConnect Admins組中的使用者使用RDP連線到內部網路中的裝置。
指定規則的名稱。確保該規則為Enabled且具有適當的Action。
在Zones頁籤下,為相關流量指定適當的區域。
使用者起始的RDP流量會進入源自外部區域介面的FTD,然後輸出內部區域。
在Networks下,定義源網路和目標網路。
對象AnyConnect_Pool包括分配給AnyConnect客戶端的IP地址。
對象Inside_Net包括內部網路子網。
在使用者下,按一下可用領域下以前建立的領域,按一下可用使用者下適當的組/使用者,然後按一下增加到規則。
如果Available Users部分下沒有可用的使用者或組,請確保FMC在領域部分下下載了Users和Groups,並且包含相應的Groups/User。
從源角度檢查此處指定的使用者/組。
例如,根據此規則目前為止的定義,FTD會評估流量來源為外部區域,且目的地為內部區域,來源為AnyConnect_Pools物件中的網路,且目的地為Inside_Net物件中的網路,而流量來源為AnyConnect Admins群組中的使用者。
在Ports下,建立並增加了自定義RDP對象,以允許TCP和UDP埠3389。請注意,原本可以將RDP增加到Applications部分下,但為簡單起見,只檢查埠。
最後,請確保在Logging下選中Log at End of Connection,以便以後進行其他驗證。完成後按一下Add。
9. 為HTTP訪問建立了一個附加規則,以允許組AnyConnect使用者訪問Windows Server IIS網站。按一下Save。
如果有影響AnyConnect流量的NAT規則(如網際網路PAT規則),則配置NAT免除規則以使AnyConnect流量不會受到NAT影響非常重要。
1. 導航到裝置> NAT。
選擇應用於FTD的NAT策略。
2. 在本NAT策略中,在末尾處有一個動態PAT,PAT將影響從外部介面發往外部介面的所有流量(包括AnyConnect流量)。
要防止AnyConnect流量受到NAT影響,請按一下Add Rule。
3. 配置NAT免除規則,確保該規則是手動NAT規則,且型別為Static。這是適用於AnyConnect流量的雙向NAT規則。
透過這些設定,當FTD偵測到來源為Inside_Net且目的地為AnyConnect IP位址(由AnyConnect_Pool定義)的流量時,當流量進入inside_zone並離開outside_zone時,來源會轉換為相同的值(Inside_Net),而目的地會轉換為相同的值(AnyConnect_Pool)。這實際上是在滿足這些條件時繞過NAT。
此外,FTD設定為對此流量執行路由查詢,而不是代理ARP。完成後按一下OK。
4. 按一下儲存。
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管理員位於對Windows Server具有RDP訪問許可權的AnyConnect Admins組中。但它無權訪問HTTP。
打開與此伺服器的RDP和Firefox會話將驗證此使用者是否只能透過RDP訪問伺服器。
如果使用作為HTTP訪問而非RDP訪問的AnyConnect使用者組中的使用者測試使用者登入,則可以驗證訪問控制策略規則是否生效。
因為訪問控制策略規則中啟用了日誌記錄,所以可以檢查連線事件中是否存在與這些規則匹配的任何流量。
導航到分析>連線>事件。
在連線事件的表檢視下,日誌經過過濾,以僅顯示IT管理員的連線事件。
在這裡,您可以驗證是否允許到伺服器的RDP流量(TCP和UDP 3389),但是埠80流量被阻止。
對於使用者Test User,您可以驗證至伺服器的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和登入密碼。這一點可透過在AD伺服器上使用ldp.exe進行驗證。要驗證某個帳戶是否可以使用ldp成功繫結,請完成以下步驟:
1. 在AD伺服器上,按Win+R並搜尋ldp.exe
2. 在連線下,選擇連線。
3. 為伺服器和適當的埠指定localhost,然後按一下OK。
4. 右欄顯示表示連線成功的文字。導航到Connection > Bind。
5. 選擇簡單繫結,然後指定目錄帳戶使用者和口令。按一下「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上設定的Base DN,然後按一下確定
3. 按一下右鍵「Base DN」,然後按一下搜尋。
4. 指定與調試中相同的Base DN、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伺服器上的Event Viewer日誌可以提供有關失敗原因的更詳細資訊。
1. 搜尋並開啟「事件檢視器」。
2. 展開Windows Logs,然後按一下Security。使用使用者帳戶名稱搜尋Audit Failures並檢視Failure資訊。
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
修訂 | 發佈日期 | 意見 |
---|---|---|
3.0 |
23-Apr-2024 |
重新認證 |
1.0 |
22-Mar-2021 |
初始版本 |