Über den Sinn von regelmäßigen Passwortwechseln lässt sich lange streiten. Der Zwang, alle x Tage ein neues Kennwort zu vergeben, welches sich vom vorherigen stark unterscheiden muss, halte ich für kontraproduktiv. Aber das ist ein anderes Thema.
Das Szenari, über das ich sprechen möchte, sieht folgendermaßen aus: eine nicht produktive Labor-Umgebung, bei der immer genau dann das Passwort abgelaufen ist, wenn man gerade wichtigeres zu tun hat. Die Appliance xy zeigt mir den virtellen Mittelfinger und nötigt mich zur Eingabe eines neuen Passwortes, das mindestens 5 klingonische Sonderzeichen enthalten muss. Grrr! Dies ist ein nicht-produktives Lab und ich verwende für alle – ja, alle – Dienste und Logins das gleiche Passwort. Es geht um Machbarkeit – nicht Sicherheit.
Bevor das jetzt jemand falsch versteht:
Ja, im Live-Betrieb wäre das eine sehr dumme Idee.
Password Expiration
Der erste Schritt ist, die Ablaufzeit des Kennworts auf Null (Achtung! nicht bei VCF!) oder einen sehr langen Zeitraum zu setzen. Standardmäßig setze ich hier 9000 Tage ein. Das sind umgerechnet etwa 24 Jahre und 7 Monate. Das sollte reichen 😉
Oftmals lässt sich dieser Wert nicht in der GUI konfigurieren. Dann ist ist die CLI gefragt. Die Einstellung verbirgt sich bei den meisten Linux Varianten in einer Konfigurationsdatei namens login.defs. Wir können auf der shell eine schnelle Abfrage machen.
cat /etc/login.defs | grep PASS
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 7
Voila! PASS_MAX_DAYS ist unsere Passwort Ablaufzeit.
Zur Veränderung müssen wir den vi verwenden, da nur selten andere Editoren in diesen Systemen verfügbar sind. Aber keine Angst vor vi. De ist eigentlich ganz nett. 🙂 Wir öffnen die Konfiguration mit:
vi /etc/login.defs
Jetzt Ruhe bewahren und nur die Taste i (für insert) drücken. Jetzt suchen wir in der Datei die Zeile mit PASS_MAX_DAYS und ändern den Wert auf beispielsweise 9000. Wer möchte, kann auch das Mindestalter PASS_MIN_DAYS auf 0 setzen. Damit kann das Passwort ohne Wartezeit erneut gewechselt werden.
Um unsere Änderung zu speichern drücken wir die ESC-Taste und danach die Taste mit dem Doppelpunkt. Unten links erscheint ein Doppelpunkt und zeigt, dass wir im Command-Modus sind. Wir geben die Zeichen wq (write, quit) und drücken Enter.
Sonderfall NSX-T mit VCF
Die Ablaufzeit der vordenfinierten Konten admin, root und audit unter NSX-T werden auf der Shell des NSX-Mangers mit einem eigenen Kommando gesetzt. Dazu verbindet man sich per SSH mit der Virtual-IP (VIP) des Management Clusters und wird zum aktuellen Master-Knoten weitergeleitet.
Um die Ablaufzeit der drei Konten auf 9000 Tage festzulegen, gibt man folgende drei Befehle ein:
set user admin password-expiration 9000
set user root password-expiration 9000
set user audit password-expiration 9000
In NSX-T Umgebungen ohne VCF dürfen die Ablaufzeiten der Passwörter ganz deaktiviert werden.
Achtung! bei NSX-T in Verbindung mit VCF führt dies aber zu Problemen beim Upgrade. Der Vollständigkeit halber hier die Befehle zur Deaktivierung:
clear user admin password-expiration
clear user root password-expiration
clear user audit password-expiration
Kontrolle
Die Ablaufzeit in NSX-T kann mit folgenden Kommandos abgefragt werden:
get user admin password-expiration
get user root password-expiration
get user audit password-expiration
Passwort History
Normalerweise reichen die obigen Änderungen aus. Wenn wir aber das Ablaufdatum verpasst haben und beim Login ein neues Passwort setzen mussten, dann können wir nicht wieder auf unser altes Passwort zurück wechseln. Das System merkt sich eine definierte Anzahl vergangener Passworte und erlaubt hier kein Recycling. Aber auch das können wir ändern. In vielen Linux Varianten gibt es dafür den daemon für pluggable authentication modules (pam.d). Die Konfiguration liegt unter /etc/pam.d/common-password. Systeme mit root Zugang können statt dessen auch die Konfiguration in /etc/pam.d/system-password haben.
vi /etc/pam.d/system-password
Hier setze ich den Wert remember=0. Damit kann das Wunschpasswort sofort neu gesetzt werden. Als root User genügt auf der shell das Kommando:
passwd