[Dies ist eine Fortsetzung meines Beitrags zu ServerFault:https://serverfault.com/questions/661136/root-accepts-any-password-how-to-change-to-a-real-password]
Auf einem alten System akzeptiert der Root-Account jedes beliebige Passwort, solange es nicht leer ist. Jedes Passwort wurde als korrektes Passwort akzeptiert, sodass sich jeder anmelden konnte.
Früher (vor mehr als 10 Jahren) war dies kein Problem, da sich das System hinter einem DFÜ-Modem mit eigener Authentifizierung befand … seit einigen Jahren ist das System jedoch über eine öffentliche IP-Adresse erreichbar.
Wie durch ein Wunder hat sich bis letzte Woche niemand um den SSH-Port gekümmert.
Jemand (chinesische IP-Adresse) hat sich als Root angemeldet, einige Systemeinstellungen geändert und sich abgemeldet.
Ich habe das System aus einem Backup wiederhergestellt und den SSH-Port geändert, sodass es nicht mehr über das ADSL-Modem erreicht werden kann, um mir etwas Zeit zu verschaffen, dieses Problem zu lösen.
Das Problem scheint hier zu liegen /etc/pam.d/system-auth
:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth required /lib/security/pam_deny.so
account required /lib/security/pam_unix.so
password required /lib/security/pam_cracklib.so retry=3
password sufficient /lib/security/pam_unix.so nullok use_authtok md5
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
Wenn ich mich ändere
auth sufficient /lib/security/pam_unix.so likeauth nullok
Zu
auth sufficient /lib/security/pam_unix.so likeauth
dann akzeptiert der Root-Account kein zufälliges Passwort mehr, aber mein konfiguriertes Passwort akzeptiert er auch nicht
Ich habe Folgendes versucht:
- Ändern Sie zuerst das Root-Passwort über den
passwd
Befehl. Ergebnis: Ich konnte mich mit jedem beliebigen Passwort anmelden - dann entfernen
nullok
: Ich konnte mich in einer neuen SSH-Sitzung mit keinem Passwort anmelden, nicht einmal mit dem Passwort, das ich gerade festgelegt habe - dann habe ich das Root-Passwort erneut geändert. Ergebnis: Ich konnte mich in einer neuen SSH-Sitzung immer noch nicht mit irgendeinem Passwort anmelden.
- dann habe ich
nullok
wieder in die Systemauthentifizierung eingegeben: Ich konnte mich wieder mit jedem beliebigen Passwort anmelden
Die Bearbeitung und Passworteinstellung habe ich die ganze Zeit in einer geöffneten SSH-Sitzung vorgenommen und das Ergebnis durch Öffnen einer neuen SSH-Sitzung getestet.
Ich habe mich nicht getraut, meine Haupt-SSH-Sitzung zu schließen, aus Angst, dass ich mich nicht wieder anmelden kann. Außerdem habe ich das System nicht neu gestartet, da es ein laufendes System für Ampeln ist
Ich war überrascht, dass ich kein altes Passwort eingeben musste, sondern einfach das neue Passwort eingeben konnte (2 Mal).
Nach der Änderung des Passwortes bekam ich zwar die Antwort, Password changed
konnte mich mit dem neuen Passwort allerdings nicht per SSH anmelden.
Muss ich das Root-Passwort noch woanders setzen? Oder wird durch das Entfernen nullok
der Root-Account über SSH komplett gesperrt?
Ich möchte, root
dass sich die Anmeldung nur mit einem bestimmten Passwort möglich ist und der Zugriff mit anderen Passwörtern verweigert wird.