この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Cisco Firepower Threat Dedéfense(FTD)に接続するAnyConnectクライアントのLDAPを使用したパスワード管理の設定について説明します。
次の項目に関する基本的な知識が推奨されます。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
Windowsサーバは、ユーザパスワード管理プロセスをテストするためにADDSおよびADCSで事前設定されています。この設定ガイドでは、これらのユーザアカウントを作成します。
ユーザアカウント:
管理者:FTDをActive Directoryサーバにバインドするためのディレクトリアカウントとして使用されます。
admin:ユーザーIDを示すために使用されるテスト管理者アカウント。
サーバマネージャダッシュボードでActive Directoryユーザとコンピュータ
を開きます。
上部のパネルでView Option
を開き、図に示すように拡張機能
を有効にします。
これにより、ADオブジェクトの下に追加のプロパティを表示できます。
たとえば、ルートrazor.local
のDNを探すには、次の図に示すように、razor.local
を右クリックし、Properties
を選択します。
Properties
で、Attribute Editor
タブを選択します。図に示すように、Attributesの下でdistinguishedName
を見つけ、次にView
をクリックします。
新しいウィンドウが開き、DNをコピーして後でFMCに貼り付けることができます。
この例では、ルートDNはDC=razor
、DC=local
です。値をコピーして、後で使用できるように保存します。OK
をクリックしてString Attribute Editorウィンドウを終了し、再度OK
をクリックしてPropertiesを終了します。
Win+R
を押して、次の図に示すように、mmc.exe
と入力し、OK
をクリックします。
次の図に示すように、File > Add/Remove Snap-in...
の順に選択します。
次の図に示すように、使用可能なスナップインでCertificates
を選択し、Add
をクリックします。
次の図に示すように、Computer account
を選択し、Next
をクリックします。
次に示すように、Finish
をクリックします。
次の図に示すように、OK
をクリックします。
Personal
フォルダを展開し、Certificates
をクリックします。LDAPで使用される証明書は、Windowsサーバの完全修飾ドメイン名(FQDN)に対して発行する必要があります。このサーバには、次の3つの証明書がリストされています。
CA証明書がrazor-WIN-E3SKFJQD6J7-CA
宛てに発行されました。
supinfo-WIN-FNJVP9QUEH9-CA
によって発行されたCA証明書。
ID証明書がWIN-E3SKFJQD6J7.razor.local
に対してrazor-WIN-E3SKFJQD6J7-CA
によって発行されました。
この設定ガイドでは、FQDNはWIN-E3SKFJQD6J7.razor.local
であるため、最初の2つの証明書はLDAP SSL証明書として使用するには無効です。WIN-E3SKFJQD6J7.razor.local
に対して発行されたID証明書は、Windows Server CAサービスによって自動的に発行された証明書です。詳細を確認するには、証明書をダブルクリックします。
LDAP SSL証明書として使用するには、証明書が次の要件を満たしている必要があります。
共通名またはDNSサブジェクトの別名がWindowsサーバーのFQDNと一致します。
証明書には、Enhanced Key Usageフィールドの下にServer Authenticationがあります。
証明書のDetails
タブで、Subject Alternative Name
を選択します。FQDN WIN-E3SKFJQD6J7.razor.local
が存在します。
Enhanced Key Usage
の下に、Server Authentication
が表示されています。
確認したら、Certification Path
タブで、ルートCA証明書であるトップレベルの証明書を選択し、View Certificate
をクリックします。次の図に示すように、ルートCA証明書の証明書の詳細が表示されます。
ルートCA証明書のDetails
タブで、Copy to File
をクリックし、ルートCAをPEM形式でエクスポートするCertificate Export Wizard
に移動します。
ファイル形式としてBase-64 encoded X.509
を選択します。
メモ帳などのテキストエディタを使用して、マシン上の選択した場所に保存されているルートCA証明書を開きます。
PEM形式の証明書が表示されます。後で使用するために、これを保存します。
-----BEGIN CERTIFICATE-----
MIIDfTCCAmWgAwIBAgIQV4ymxtI3BJ9JHnDL+luYazANBgkqhkiG9w0BAQUFADBRMRUwEwYKCZImiZPyLGQBGRYFbG9jYWwxFTATBgoJkiaJk/IsZAEZFgVyYXp
vcjEhMB8GA1UEAxMYcmF6b3ItV0lOLUUzU0tGSlFENko3LUNBMB4XDTIxMDMyMjE0MzMxNVoXDTI2MDMyMjE0NDMxNVowUTEVMBMGCgmSJomT8ixkARkW
BWxvY2FsMRUwEwYKCZImiZPyLGQBGRYFcmF6b3IxITAfBgNVBAMTGHJhem9yLVdJTi1FM1NLRkpRRDZKNy1DQTCCASIwDQYJKoZIhvcNAQEBBQADggEPAD
CCAQoCggEBAL803nQ6xPpazjj+HBZYc+8fV++RXCG+cUnblxwtXOB2G4UxZ3LRrWznjXaS02Rc3qVw4lnOAziGs4ZMNM1X8UWeKuwi8QZQljJtuSBxL4yjWLyPIg
9dkncZaGtQ1cPmqcnCWunfTsaENKbgoKi4eXjpwwUSbEYwU3OaiiI/tp422ydy3Kgl7Iqt1s4XqpZmTezykWra7dUyXfkuESk6lEOAV+zNxfBJh3Q9Nzpc2IF/FtktWnhj
CSkTQTRXYryy8dJrWjAF/n6A3VnS/l7Uhujlx4CD20BkfQy6p5HpGxdc4GMTTnDzUL46ot6imeBXPHF0IJehh+tZk3bxpoxTDXECAwEAAaNRME8wCwYDVR0PBAQ
DAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFM+DkqQUAOdY379NnViaMIJAVTZ1MBAGCSsGAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQU
AA4IBAQCiSm5U7U6Y7zXdx+dleJd0QmGgKayAAuYAD+MWNwC4NzFD8Yr7BnO6f/VnF6VGYPXa+Dvs7VLZewMNkp3i+VQpkBCKdhAV6qZu15697plajfI/eNPrcI
4sMZffbVrGlRz7twWY36J5G5vhNUhzZ1N2OLw6wtHg2SO8XlvpTS5fAnyCZgSK3VPKfXnn1HLp7UH5/SWN2JbPL15r+wCW84b8nrylbBfn0NEX7l50Ff502DYCP
GuDsepY7/u2uWfy/vpTJigeok2DH6HFfOET3sE+7rsIAY+of0kWW5gNwQ4hOwv4Goqj+YQRAXXi2OZyltHR1dfUUbwVENSFQtDnFA7X
-----END CERTIFICATE-----
1. LDAPSによって使用される可能性がある複数のID証明書の状況で、使用されるIDが不確定な場合、またはLDAPSサーバへのアクセスがない場合でも、FTDで実行されたパケットキャプチャからルートCAを抽出することは可能です。
2. LDAPサーバー(AD DSドメインコントローラーなど)のローカルコンピューターの証明書ストアに、サーバー認証に有効な証明書が複数ある場合は、LDAPS通信に異なる証明書が使用されている可能性があります。このような問題の最善の解決策は、ローカルコンピュータの証明書ストアから不要な証明書をすべて削除し、サーバ認証に有効な証明書を1つだけ保持することです。
ただし、2つ以上の証明書が必要で、少なくとも1つのWindows Server 2008 LDAPサーバーがある正当な理由がある場合は、LDAP通信にActive Directoryドメインサービス(NTDS\Personal)証明書ストアを使用できます。
次の手順では、ドメインコントローラのローカルコンピュータ証明書ストアからActive Directoryドメインサービスのサービス証明書ストア(NTDS\Personal)にLDAPS対応の証明書をエクスポートする方法を示します。
Active DirectoryサーバでMMCコンソールに移動し、Fileを選択してから、Add/Remove Snap-in
をクリックします。
Certificates
をクリックし、次にAdd
をクリックする。
Certificatesスナップイン
で、Computer account
を選択し、Next
をクリックします。
Select Computer
で、Local Computer
を選択し、OK
をクリックしてからFinish
をクリックします。スナップインの追加と削除
で、OK
をクリックします。
サーバ認証に使用される証明書が格納されているコンピュータの証明書コンソールで、証明書
を右クリックし、すべてのタスク
をクリックして、エクスポート
をクリックします。
pfx
形式でエクスポートします。MMCからpfx
形式で証明書をエクスポートする方法については、次の記事を参照してください。https://www.cisco.com/c/en/us/support/docs/security/web-security-appliance/118339-technote-wsa-00.html にアクセスしてください。
証明書のエクスポートが完了したら、MMCコンソール
で[スナップインの追加と削除]に移動します。Certificates
をクリックし、次にAdd
をクリックする。
Service account
を選択し、Next
をクリックします。
Select Computer
ダイアログボックスでLocal Computer
を選択し、Next
をクリックします。
Active Directory Domain Services
を選択し、Finish
をクリックします。
Add/Remove Snap-ins
ダイアログボックスで、OK
をクリックします。
Certificates - Services (Active Directory Domain Services)
の順に展開し、NTDS\Personal
をクリックします。
NTDS\Personal
を右クリックし、All Tasks
、Import
の順にクリックします。
Certificate Import Wizard
の初期画面で、Next
をクリックします。
File to Import画面で、Browse
をクリックし、以前にエクスポートした証明書ファイルを見つけます。
[ファイルを開く]画面で、ファイルタイプとしてPersonal Information Exchange(*pfx
、*.p12
)が選択されていることを確認し、ファイルシステムに移動して、以前にエクスポートした証明書を見つけます。次に、その証明書をクリックします。
Open
をクリックし、次にNext
をクリックします。
Password画面で、ファイルに設定したパスワードを入力し、Next
をクリックします。
Certificate Storeページで、Place all certificatesが選択されていることを確認し、Certificate Store: NTDS\Personal
を読み、Next
をクリックします。
Certificate Import Wizard
完了画面で、Finish
をクリックします。インポートが成功したことを示すメッセージが表示されます。[OK] をクリックします。証明書が証明書ストアNTDS\Personal
にインポートされたことが分かります。
AnyConnect設定を導入するには、FTDがスマートライセンスサーバに登録され、有効なPlus、Apex、またはVPN Onlyライセンスがデバイスに適用されている必要があります。
System > Integration
の順に移動します。次の図に示すように、Realms
に移動し、Add Realm
をクリックします。
LDAPに関してMicrosoftサーバから収集された情報に基づいて表示されるフィールドに入力します。その前に、WindowsサーバのObjects > PKI > Trusted CAs > Add Trusted CA
の下で、LDAPsサービス証明書に署名したルートCA証明書をインポートします。これはレルムのディレクトリサーバ設定
で参照できます。完了したら、OK
をクリックします。
Test
をクリックし、FMCが前のステップで指定したディレクトリユーザ名とパスワードで正常にバインドできることを確認します。これらのテストはFMCから開始され、FTDに設定されたルーティング可能なインターフェイス(inside、outside、dmzなど)経由ではないので、接続の成功(または失敗)はAnyConnect認証の同じ結果を保証しません。これは、AnyConnect LDAP認証要求がいずれかのFTDルーティング可能なインターフェイスから開始されるためです。
新しいレルムを有効にします。
AnyConnectの初期設定の場合は、既存の接続プロファイルを選択するか、新しい接続プロファイルを作成します。ここでは、ローカル認証にマッピングされた「AnyConnect-AD」という名前の既存の接続プロファイルが使用されます。
接続プロファイルを編集し、前の手順で設定した新しいLDAPサーバを接続プロファイルのAAA設定の下にマッピングします。完了したら、右上隅のSave
をクリックします。
AAA > Advanced Settings
の下でパスワード管理をイネーブルにして、設定を保存します。
すべての設定が完了したら、右上のDeploy
ボタンをクリックします。
次の図に示すように、適用されているFTD設定の横にあるチェックボックスをクリックし、Deploy
をクリックします。
これは、導入が成功した後にFTD CLIに表示される設定です。
> show running-config aaa-server
aaa-server LDAP-Server protocol ldap <------ aaa-server group configured for LDAPs authentication
max-failed-attempts 4
realm-id 8
aaa-server LDAP-Server host WIN-E3SKFJQD6J7.razor.local <-------- LDAPs Server to which the queries are sent
server-port 636
ldap-base-dn DC=razor,DC=local
ldap-group-base-dn DC=razor,DC=local
ldap-scope subtree
ldap-naming-attribute sAMAccountName
ldap-login-password *****
ldap-login-dn *****@razor.local
ldap-over-ssl enable
server-type microsoft
> show running-config webvpn
webvpn
enable Outside
anyconnect image disk0:/csm/anyconnect-win-4.10.01075-webdeploy-k9.pkg 1 regex "Windows"
anyconnect profiles FTD-Client-Prof disk0:/csm/ftd.xml
anyconnect enable
tunnel-group-list enable
cache
no disable
error-recovery disable
> show running-config tunnel-group
tunnel-group AnyConnect-AD type remote-access
tunnel-group AnyConnect-AD general-attributes
address-pool Pool-1
authentication-server-group LDAP-Server <-------- LDAPs Server group name mapped to the tunnel-group
default-group-policy AnyConnect-Group
password-management password-expire-in-days 1 <-------- Password-management configuration mapped under the tunnel-group
tunnel-group AnyConnect-AD webvpn-attributes
group-alias Dev enable
> show running-config group-policy AnyConnect-Group
group-policy AnyConnect-Group internal <--------- Group-Policy configuration that is mapped once the user is authenticated
group-policy AnyConnect-Group attributes
vpn-simultaneous-logins 3
vpn-idle-timeout 35791394
vpn-idle-timeout alert-interval 1
vpn-session-timeout none
vpn-session-timeout alert-interval 1
vpn-filter none
vpn-tunnel-protocol ikev2 ssl-client <-------- Protocol specified as SSL to entertain the AnyConnect connection over port 443
split-tunnel-policy tunnelspecified
split-tunnel-network-list value Remote-Access-Allow
default-domain none
split-dns none
split-tunnel-all-dns disable
client-bypass-protocol disable
vlan none
address-pools none
webvpn
anyconnect ssl dtls enable
anyconnect mtu 1406
anyconnect firewall-rule client-interface public none
anyconnect firewall-rule client-interface private none
anyconnect ssl keepalive 20
anyconnect ssl rekey time none
anyconnect ssl rekey method none
anyconnect dpd-interval client 30
anyconnect dpd-interval gateway 30
anyconnect ssl compression none
anyconnect dtls compression none
anyconnect modules value none
anyconnect profiles value FTD-Client-Prof type user
anyconnect ask none default anyconnect
anyconnect ssl df-bit-ignore disable
> show running-config ssl
ssl trust-point ID-New-Cert Outside <-------- FTD ID-cert trustpoint name mapped to the outside interface on which AnyConnect Connections are entertained
1. 関連する接続プロファイルへの接続を開始します。初期ログイン時に、パスワードの有効期限が切れているため以前のパスワードはMicrosoft Serverによって拒否されたため、パスワードを変更する必要があると判断されると、パスワードの変更を求めるメッセージがユーザーに表示されます。
ユーザがログイン用の新しいパスワードを入力すると、接続が正常に確立されます。
FTD CLIでユーザ接続を確認します。
FTD_2# sh vpn-sessiondb anyconnect
Session Type: AnyConnect
Username : admin Index : 7 <------- Username, IP address assigned information of the client
Assigned IP : 10.1.x.x Public IP : 10.106.xx.xx
Protocol : AnyConnect-Parent SSL-Tunnel DTLS-Tunnel
License : AnyConnect Premium
Encryption : AnyConnect-Parent: (1)none SSL-Tunnel: (1)AES-GCM-256 DTLS-Tunnel: (1)AES-GCM-256
Hashing : AnyConnect-Parent: (1)none SSL-Tunnel: (1)SHA384 DTLS-Tunnel: (1)SHA384
Bytes Tx : 16316 Bytes Rx : 2109
Group Policy : AnyConnect-Group Tunnel Group : AnyConnect-AD <-------- Tunnel-Group to which the AnyConnect connection falls, and the group-policy assigned to user
Login Time : 13:22:24 UTC Mon Apr 25 2022
Duration : 0h:00m:51s
Inactivity : 0h:00m:00s
VLAN Mapping : N/A VLAN : none
Audt Sess ID : 0ac5e0fa000070006266a090
Security Grp : none Tunnel Zone : 0
パスワード管理関連の問題のトラブルシューティングを行うには、診断CLIでdebug ldap 255のデバッグを実行できます。
[24] Session Start
[24] New request Session, context 0x0000148f3c271830, reqType = Authentication
[24] Fiber started
[24] Creating LDAP context with uri=ldaps://10.106.71.234:636
[24] Connect to LDAP server: ldaps://10.106.71.234:636, status = Successful <-------- Successful connection to the LDAPs server over post 636
[24] supportedLDAPVersion: value = 3
[24] supportedLDAPVersion: value = 2
[24] Binding as *****@razor.local
[24] Performing Simple authentication for *****@razor.local to 10.106.71.234
[24] LDAP Search:
Base DN = [DC=razor,DC=local]
Filter = [sAMAccountName=admin]
Scope = [SUBTREE]
[24] User DN = [CN=admin,CN=Users,DC=razor,DC=local]
[24] Talking to Active Directory server 10.106.71.234
[24] Reading password policy for admin, dn:CN=admin,CN=Users,DC=razor,DC=local <--------- Once the client enters credentials during initial login, if the password is expired, then it is read and the user is asked to provide a new password
[24] Read bad password count 3
[24] Binding as admin
[24] Performing Simple authentication for admin to 10.106.71.234
[24] Simple authentication for admin returned code (49) Invalid credentials
[24] Message (admin): 80090308: LdapErr: DSID-0C0903C5, comment: AcceptSecurityContext error, data 773, v23f0
[24] Checking password policy
[24] New password is required for admin <---------- New password is asked to be provided
[24] Fiber exit Tx=622 bytes Rx=2771 bytes, status=-1
[24] Session End
[25] Session Start
[25] New request Session, context 0x0000148f3c271830, reqType = Modify Password
[25] Fiber started
[25] Creating LDAP context with uri=ldaps://10.106.71.234:636
[25] Connect to LDAP server: ldaps://10.106.71.234:636, status = Successful <----------- New connection is initiated to the LDAPs server for the password change
[25] supportedLDAPVersion: value = 3
[25] supportedLDAPVersion: value = 2
[25] Binding as *****@razor.local
[25] Performing Simple authentication for *****@razor.local to 10.106.71.234
[25] LDAP Search:
Base DN = [DC=razor,DC=local]
Filter = [sAMAccountName=admin]
Scope = [SUBTREE]
[25] User DN = [CN=admin,CN=Users,DC=razor,DC=local]
[25] Talking to Active Directory server 10.106.71.234
[25] Reading password policy for admin, dn:CN=admin,CN=Users,DC=razor,DC=local
[25] Read bad password count 3
[25] Change Password for admin successfully converted old password to unicode
[25] Change Password for admin successfully converted new password to unicode <----------- Client provides the new password value
[25] Password for admin successfully changed <----------- Password is changed successfully for the client
[25] Retrieved User Attributes:
[25] objectClass: value = top
[25] objectClass: value = person
[25] objectClass: value = organizationalPerson
[25] objectClass: value = user
[25] cn: value = admin
[25] givenName: value = admin
[25] distinguishedName: value = CN=admin,CN=Users,DC=razor,DC=local
[25] instanceType: value = 4
[25] whenCreated: value = 20201029053516.0Z
[25] whenChanged: value = 20220426032127.0Z
[25] displayName: value = admin
[25] uSNCreated: value = 16710
[25] uSNChanged: value = 98431
[25] name: value = admin
[25] objectGUID: value = ..0.].LH.....9.4
[25] userAccountControl: value = 512
[25] badPwdCount: value = 3
[25] codePage: value = 0
[25] countryCode: value = 0
[25] badPasswordTime: value = 132610388348662803
[25] lastLogoff: value = 0
[25] lastLogon: value = 132484577284881837
[25] pwdLastSet: value = 0
[25] primaryGroupID: value = 513
[25] objectSid: value = ................7Z|....RQ...
[25] accountExpires: value = 9223372036854775807
[25] logonCount: value = 0
[25] sAMAccountName: value = admin
[25] sAMAccountType: value = 805306368
[25] userPrincipalName: value = ******@razor.local
[25] objectCategory: value = CN=Person,CN=Schema,CN=Configuration,DC=razor,DC=local
[25] dSCorePropagationData: value = 20220425125800.0Z
[25] dSCorePropagationData: value = 20201029053516.0Z
[25] dSCorePropagationData: value = 16010101000000.0Z
[25] lastLogonTimestamp: value = 132953506361126701
[25] msDS-SupportedEncryptionTypes: value = 0
[25] uid: value = ******@razor.local
[25] Fiber exit Tx=714 bytes Rx=2683 bytes, status=1
[25] Session End
通常、ユーザが新しいパスワードを入力する間にMicrosoft Serverによって設定されたパスワードポリシーを満たさない場合、接続はエラー「Password does not meet the Password Policy Requirements」で終了します。したがって、新しいパスワードがMicrosoft Server for LDAPで設定されたポリシーを満たしていることを確認します。
改定 | 発行日 | コメント |
---|---|---|
1.0 |
12-Sep-2023
|
初版 |