Wie erzwinge ich eine Richtlinie zur Kennwortkomplexität?

13

Ich muss einen Ubuntu-Server so konfigurieren, dass er einer strengen Firmenkennwortrichtlinie folgt, die Folgendes festlegt:

  • mindestens ein Großbuchstabe
  • mindestens ein Kleinbuchstabe
  • mindestens eine Ziffer
  • mindestens ein Sonderzeichen

Ich habe mich umgesehen und nur die Anweisungen zum Festlegen der Kennwortlänge gefunden. Ich muss jedoch noch etwas finden, um den Inhalt des Passworts in Bezug auf die obigen Punkte zu spezifizieren.

Jede Hilfe wäre dankbar.

Stephen RC
quelle

Antworten:

19

Die Kennwortkomplexität wird vom pam_cracklibModul erzwungen .

Um die Kennwortrichtlinie für Ihren lokalen Computer zu ändern, müssen Sie Ihre /etc/pam.d/common-passwordDatei ändern .

Geben Sie in einem Terminalfenster ( Ctrl+ Alt+ T) den folgenden Befehl ein:

sudo -i gedit /etc/pam.d/common-password

Fügen Sie der Datei die folgende Zeile hinzu (vor pam_unix.sooder unabhängig davon, welches PAM-Modul hauptsächlich für die Authentifizierung verwendet wird, wie aus den Beispielen in der Manpage ersichtlich), und speichern Sie die Datei:

password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Diese Anweisung implementiert die folgenden Kennwortanforderungen:

  • dcredit == Ziffer
  • ucredit == Großbuchstaben
  • lcredit == Kleinbuchstaben
  • ocredit== anderes Zeichen (einschließlich Sonderzeichen ! , @ # $ %)

Dies sollte Ihren Anforderungen entsprechen.

Sie können auch die Variablen verwenden minlengthund retriesdie Kennwortanforderungen weiter einschränken.

Hier ist ein weiteres gutes Beispiel für das Ändern einer Kennwortrichtlinie auf diese Weise: Platzieren Sie die folgende Zeile in der /etc/pam.d/common-passwordDatei:

password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-1 dcredit=-1  ocredit=-1

Dieser Eintrag legt maximal drei Versuche fest, ein akzeptables Kennwort mit einer Mindestlänge von 10 Zeichen zu erhalten.

Dies setzt voraus, dass Benutzer mindestens drei Zeichen haben, die sich vom letzten Kennwort unterscheiden.

Dies erfüllt auch die Anforderung, dass das Kennwort mindestens eine Ziffer, ein Kleinbuchstaben und ein Großbuchstaben enthält.

Siehe auch diesen Artikel zum Einrichten strengerer Passwortrichtlinienregeln unter Linux .

Kevin Bowen
quelle
3
Hervorragende Antwort! In Bezug auf Wiederholungsversuche möchte ich hinzufügen, dass es wichtig ist, vorsichtig zu sein, wenn eine Richtlinie in Betracht gezogen wird, um zu verhindern, dass sich Benutzer anmelden, bei denen in letzter Zeit zu viele Anmeldeversuche fehlgeschlagen sind. Dies kann zu einer der einfachsten und am einfachsten auszuführenden Denial-of-Service-Angriffe auf ein Konto führen. .
Eliah Kagan
Fantastische Antwort, danke :) Eine Frage scheint jedoch zu sein, dass der rootBenutzer die Passwortanforderungen ignorieren kann ... Ist es möglich, dies auch für den Root-Benutzer zu erzwingen?
Stephen RC
@Valorin Welchen Teil der Passwortanforderungen beachtet der Root-Benutzer nicht?
Kevin Bowen
@maggotbrain Egal, es wird eine Warnung ausgegeben, aber es wird trotzdem gespeichert.
Stephen RC
@Valorin Du hast also das Konto "root" aktiviert und kannst dieses Konto mit diesem Passwort verwenden, richtig? Welche Warnungen erhalten Sie? Leider habe ich keinen Computer mit einem aktivierten Root-Account, um dies selbst zu testen. Es klingt wie ein Fehler, aber Sie benötigen weitere Informationen.
Kevin Bowen