Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit la configuration de la gestion des mots de passe à l'aide de LDAP pour les clients AnyConnect se connectant à Cisco Firepower Threat Défense (FTD).
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Le serveur Windows est préconfiguré avec ADDS et ADCS afin de tester le processus de gestion des mots de passe utilisateur. Dans ce guide de configuration, ces comptes utilisateur sont créés.
Comptes utilisateurs:
Administrateur : il est utilisé comme compte d'annuaire afin de permettre au FTD de se lier au serveur Active Directory.
admin : compte d'administrateur de test utilisé pour démontrer l'identité de l'utilisateur.
Open (ouvert) Active Directory Users and Computers
via le tableau de bord du Gestionnaire de serveur.
Ouvrez le View Option
sur le panneau supérieur et activez l'option Advanced Features
, comme l'illustre l'image :
Cela permet d'afficher des propriétés supplémentaires sous les objets Active Directory.
Par exemple, afin de trouver le DN pour la racine razor.local
, clic droit razor.local
, puis choisissez Properties
, comme le montre cette image :
Sous Properties
, sélectionnez la commande Attribute Editor
s'affiche. Rechercher distinguishedName
sous Attributs, puis cliquez sur View
, comme l'illustre l'image.
Une nouvelle fenêtre s'ouvre, dans laquelle le nom distinctif (DN) peut être copié et collé dans FMC ultérieurement.
Dans cet exemple, le DN racine est DC=razor
, DC=local
. Copiez la valeur et enregistrez-la pour plus tard. Cliquer OK
afin de quitter la fenêtre Éditeur d'attributs de chaîne et cliquez sur OK
afin de quitter les Propriétés.
Presse Win+R
et entrez mmc.exe
, puis cliquez sur OK
, comme le montre cette image.
Naviguez jusqu'à File > Add/Remove Snap-in...
, comme le montre cette image :
Sous Composants logiciels enfichables disponibles, sélectionnez Certificates
puis cliquez sur Add
, comme le montre cette image :
Choisir Computer account
puis cliquez sur Next
, comme le montre cette image :
Comme indiqué ici, cliquez sur Finish
.
Maintenant, cliquez sur OK
, comme le montre cette image.
Développez le Personal
, puis cliquez sur Certificates
. Le certificat utilisé par les LDAP doit être délivré au nom de domaine complet (FQDN) du serveur Windows. Sur ce serveur, trois certificats sont répertoriés :
Un certificat CA a été délivré à et par razor-WIN-E3SKFJQD6J7-CA
.
Un certificat CA délivré à et par supinfo-WIN-FNJVP9QUEH9-CA
.
Un certificat d'identité a été délivré à WIN-E3SKFJQD6J7.razor.local
par razor-WIN-E3SKFJQD6J7-CA
.
Dans ce guide de configuration, le nom de domaine complet est WIN-E3SKFJQD6J7.razor.local
Les deux premiers certificats ne sont donc pas valides pour être utilisés comme certificat SSL LDAP. Le certificat d'identité délivré à WIN-E3SKFJQD6J7.razor.local
est un certificat qui a été émis automatiquement par le service AC de Windows Server. Double-cliquez sur le certificat afin de vérifier les détails.
Pour être utilisé comme certificat SSL LDAP, le certificat doit répondre aux exigences suivantes :
Le nom commun ou le nom secondaire de l'objet DNS correspond au nom de domaine complet de Windows Server.
Le certificat dispose de l'authentification serveur dans le champ Enhanced Key Usage.
Sous la Details
pour le certificat, sélectionnez Subject Alternative Name
, où le nom de domaine complet WIN-E3SKFJQD6J7.razor.local
est présent.
Sous Enhanced Key Usage
, Server Authentication
est présent.
Une fois que cela est confirmé, sous la rubrique Certification Path
, choisissez le certificat de niveau supérieur qui est le certificat d'autorité de certification racine, puis cliquez sur View Certificate
. Les détails du certificat pour le certificat de l'autorité de certification racine s'ouvrent comme indiqué dans l'image :
Sous la Details
du certificat CA racine, cliquez sur Copy to File
et naviguez à travers leCertificate Export Wizard
qui exporte la CA racine au format PEM.
Choisir Base-64 encoded X.509
comme format de fichier.
Ouvrez le certificat d'autorité de certification racine stocké à l'emplacement sélectionné sur la machine à l'aide d'un bloc-notes ou d'un autre éditeur de texte.
Affiche le certificat de format PEM. Enregistrez ceci pour plus tard.
-----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. Dans une situation de certificats d’identité multiples qui peuvent être utilisés par LDAPS et lorsqu’il y a une incertitude quant à savoir lequel est utilisé, ou lorsqu’il n’y a pas d’accès au serveur LDAPS, il est toujours possible d’extraire l’autorité de certification racine d’une capture de paquets effectuée sur le FTD.
2. Dans le cas où vous avez plusieurs certificats valides pour l'authentification du serveur dans le magasin de certificats de l'ordinateur local du serveur LDAP (tel que le contrôleur de domaine AD DS), il peut être remarqué qu'un certificat différent est utilisé pour les communications LDAP. La meilleure solution à ce problème consiste à supprimer tous les certificats inutiles du magasin de certificats de l'ordinateur local et à n'avoir qu'un seul certificat valide pour l'authentification du serveur.
Toutefois, s'il existe une raison légitime pour laquelle vous avez besoin de deux certificats ou plus et que vous disposez au moins d'un serveur LDAP Windows Server 2008, le magasin de certificats des services de domaine Active Directory (NTDS\Personal) peut être utilisé pour les communications LDAP.
Ces étapes montrent comment exporter un certificat compatible LDAPS d'un magasin de certificats d'ordinateur local de contrôleur de domaine vers le magasin de certificats de service des services de domaine Active Directory (NTDS\Personal).
Accédez à la console MMC sur le serveur Active Directory, sélectionnez Fichier, puis cliquez sur Add/Remove Snap-in
.
Cliquer Certificates
puis cliquez sur Add
.
Dans la Certificates snap-in
, choisissez Computer account
puis cliquez sur Next
.
Dans Select Computer
, choisissez Local Computer
, cliquez sur OK
, puis cliquez sur Finish
. Dans Add or Remove Snap-ins
, cliquez sur OK
.
Dans la console des certificats d'un ordinateur qui contient un certificat utilisé pour l'authentification du serveur, cliquez avec le bouton droit sur le certificate
, cliquez sur All Tasks
, puis cliquez sur Export
.
pfx
dans les sections suivantes. Référez-vous à cet article pour savoir comment exporter un certificat dans le pfx
format à partir de MMC :Une fois l'exportation du certificat terminée, accédez à Add/Remove Snap-in
activé MMC console
. Cliquer Certificates
puis cliquez sur Add
.
Choisir Service account
puis cliquez sur Next
.
Dans la Select Computer
, choisissez Local Computer
et cliquez sur Next
.
Choisir Active Directory Domain Services
puis cliquez sur Finish
.
Sur la page Add/Remove Snap-ins
, cliquez sur OK
.
Accroissement Certificates - Services (Active Directory Domain Services)
puis cliquez sur NTDS\Personal
.
Cliquer avec le bouton droit NTDS\Personal
, cliquez sur All Tasks
, puis cliquez sur Import
.
Sur la page Certificate Import Wizard
écran de bienvenue, cliquez sur Next
.
Dans l'écran Fichier à importer, cliquez sur Browse
et localisez le fichier de certificat que vous avez exporté précédemment.
Dans l'écran Ouvrir, vérifiez que l'échange d'informations personnelles (*pfx
,*.p12
) est sélectionné comme type de fichier, puis parcourez le système de fichiers pour localiser le certificat que vous avez exporté précédemment. Cliquez ensuite sur ce certificat.
Cliquer Open
puis cliquez sur Next
.
Dans l'écran Mot de passe, entrez le mot de passe que vous avez défini pour le fichier, puis cliquez sur Next
.
Sur la page Magasin de certificats, assurez-vous que l'option Placer tous les certificats est sélectionnée et lisez Magasin de certificats : NTDS\Personal
puis cliquez sur Next
.
Sur la page Certificate Import Wizard
écran de fin, cliquez sur Finish
. Un message s'affiche pour indiquer que l'importation a réussi. Cliquer OK
. Le certificat a été importé sous le magasin de certificats : NTDS\Personal
.
Pour déployer la configuration AnyConnect, le FTD doit être enregistré auprès du serveur de licences Smart et une licence Plus, Apex ou VPN Only valide doit être appliquée au périphérique.
Naviguez jusqu'à System > Integration
. Naviguez jusqu'à Realms
, puis cliquez sur Add Realm
, comme le montre cette image :
Remplissez les champs affichés en fonction des informations collectées à partir du serveur Microsoft pour les LDAP. Avant cela, importez le certificat d'autorité de certification racine qui a signé le certificat de service LDAP sur le serveur Windows sous Objects > PKI > Trusted CAs > Add Trusted CA
, car il est référencé dans la sectionDirectory Server Configuration
du royaume. Une fois terminé, cliquez sur OK
.
Cliquer Test
afin de s'assurer que FMC peut se lier correctement avec le nom d'utilisateur et le mot de passe du répertoire fournis à l'étape précédente. Puisque ces tests sont initiés à partir du FMC et non par l'intermédiaire d'une des interfaces routables configurées sur le FTD (comme l'intérieur, l'extérieur, dmz), une connexion réussie (ou échouée) ne garantit pas le même résultat pour l'authentification AnyConnect puisque les demandes d'authentification LDAP AnyConnect sont initiées à partir de l'une des interfaces routables FTD.
Activez le nouveau domaine.
Choisissez le profil de connexion existant ou créez-en un nouveau, s'il s'agit d'une configuration initiale d'AnyConnect. Ici, un profil de connexion existant nommé « AnyConnect-AD » mappé avec l'authentification locale est utilisé.
Modifiez le profil Connection et mappez le nouveau serveur LDAP configuré aux étapes précédentes, sous les paramètres AAA du profil Connection. Une fois terminé, cliquez sur Save
dans l'angle supérieur droit.
Activez la gestion des mots de passe sous AAA > Advanced Settings
et enregistrez la configuration.
Une fois la configuration terminée, cliquez sur le boutonDeploy
en haut à droite.
Cochez la case en regard de la configuration FTD qui lui est appliquée, puis cliquez sur Deploy
, comme le montre cette image :
Il s'agit de la configuration affichée dans l'interface de ligne de commande du FTD après le déploiement réussi.
> 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. Établissez une connexion au profil de connexion concerné. Une fois qu'il a été déterminé lors de la connexion initiale que le mot de passe doit être modifié puisque le mot de passe précédent a été rejeté par le serveur Microsoft au moment de son expiration, l'utilisateur est invité à modifier le mot de passe.
Une fois que l'utilisateur a entré le nouveau mot de passe de connexion, la connexion est établie avec succès.
Vérifiez la connexion utilisateur sur l'interface de ligne de commande FTD :
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
Ce débogage peut être exécuté dans la CLI de diagnostic afin de dépanner les problèmes liés à la gestion des mots de passe : 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
En général, si la stratégie de mot de passe définie par Microsoft Server n'est pas respectée pendant que l'utilisateur fournit le nouveau mot de passe, la connexion se termine avec l'erreur « Le mot de passe ne répond pas aux exigences de la stratégie de mot de passe ». Par conséquent, assurez-vous que le nouveau mot de passe respecte la stratégie définie par Microsoft Server pour les LDAP.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
12-Sep-2023 |
Première publication |