Si lors de la connexion à votre NSX-T Manager préféré en utilisant le compte admin , vous obtenez le message d’erreur suivant : Your Login attempt was not successful, The username/password combination is incorrect or the account specified has been locked.
Ce n’est potentiellement pas une erreur dans votre gestionnaire de mot de passe préféré… mais simplement que votre compte a expiré!
En effet, depuis la version 2.5 de NSX-T manager, les comptes locaux (root / admin / audit) expire au bout de 90 jours.
Vous êtes informé via des « popup » directement dans l’interface
ou encore dans la partie Alarms
mais pour cela, il faut d’être connecté avant… ou avoir une connexion via une source externe (LDAP, vIDM, WOA)….
De plus, vous avez bien sécurisé la solution et désactivé le SSH sur vos NSX-T manager, il vous reste juste une méthode pour changer le mot de passe, la console de votre NSX-T Manager, et pour complexifier la chose. Par défaut, le mot de passe est de minimum 12 caractères avec une majuscule, une minuscule, un chiffre et un caractère spécial (type #!@…). et de plus la console est en qwerty… . Il faut surtout ne pas réutiliser un mot de passe déjà utilisé avant (retour en arrière sur les 5 derniers mots de passe)
Utilisation de Set-VMKeyStrokes
Pour cela, nous avons l’excellent Set-VMKeyStrokes de notre ami William Lam. Cela permet de simuler un clavier directement dans une VM (il faut disposer de vSphere 6.5 minimum !). C’est une cmdlet très utile… par exemple pour automatiser l’installation d’outil non prévu pour cela (qui attends une ligne de commande…) ca sera l’occasion d’autres articles sur le sujet !
Il faut au préalable se connecter au vCenter en utilisant Connect-VIServer
Il suffit de charger le fichier VMKeyStrokes.ps1 disponible sur Github.
. .\VMKeyStrokes.ps1
Pour mon cas, j’ai stocké les mots de passes dans les variables $mysuperpassword (et $mynewsuperpassword attention ce n’est pas possible d’avoir le même mot de passe et il doit respecter la même complexité)
On envoie maintenant a la VM le login via le paramètre StringInput
Set-VMKeystrokes -VM NSXT-MGR1 -StringInput "admin" -ReturnCarriage $true
on utilise -ReturnCarriage $true
pour envoyer un retour chariot (Entré) après la chaine de caractères.
On répète l’action avec notre mot de passe
Set-VMKeystrokes -VM BDX-SR-NSXT-MGR1 -StringInput $mysuperpassword -ReturnCarriage $true
on recommence car il faut retaper le mot de passe avant de changer le mot de passe (il propose automatiquement le changement du mot de passe )
Set-VMKeystrokes -VM BDX-SR-NSXT-MGR1 -StringInput $mysuperpassword -ReturnCarriage $true
Puis on met notre nouveau mot de passe (2 fois !)
Set-VMKeystrokes -VM BDX-SR-NSXT-MGR1 -StringInput $mynewsuperpassword -ReturnCarriage $true
Set-VMKeystrokes -VM BDX-SR-NSXT-MGR1 -StringInput $mynewsuperpassword -ReturnCarriage $true
C’est validé, le mot de passe est bien changé !
on peux vérifier l’expiration avec la commande get user admin password-expiration
Il reste à modifier le compte root !
Vous pouvez pour cela, utiliser directement la commande set user root password
Allons plus loin…
Pour monitorer (et aussi potentiellement changer…), vous pouvez utiliser l’excellent module psNSXT (on aura l’occasion d’en reparler !).
(Invoke-NSXTRestMethod "api/v1/node/users").results
Si vous ne disposez pas de VCF (VMware Cloud Foundation) qui permet la rotation de l’ensemble des mots de passe, et bon pour éviter d’avoir à changer les mots de passe tous les 90 jours… vous pouvez utiliser en console/SSH :
set user admin password-expiration 9999
il faut réaliser la même opération avec le compte audit & root.
Maintenant que j’ai récupéré la main sur mon NSX-T Manager, je vais pouvoir lancer la mise à jour en version 3.1 ! on verra une prochaine fois comment aussi mettre en place l’interconnexion via LDAP du NSX-T Manager afin de pouvoir utiliser directement les comptes AD (sans vIDM ou WOA)
Bonnes fêtes de fin d’année !