GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

PAM-Passwortkomplexität und pam_cracklib-Kreditsystem in CentOS/RHEL

Dieser Beitrag beschreibt das PAM pam_cracklib Kreditsystem in Bezug auf die Linux PAM Passwortkomplexität.

Übersicht über PAM

Das Pluggable Authentication Modules (PAM) ist ein zentrales, flexibles, modulares Framework, das verwendet wird, um Systemauthentifizierungsrichtlinien zu verwalten und die Benutzerauthentifizierung zu erleichtern. PAM stellt eine allgemeine Anwendungsprogrammierschnittstelle (API) bereit, auf die Programme zur Gewährung von Berechtigungen für die Benutzerauthentifizierung zurückgreifen.

Der Ablauf der PAM-Authentifizierung ist wie folgt:
Anwendung (login, ssh, sudo, su, ftp usw.) -> PAM -> Authentifizierungsquelle (lokales Passwort, LDAP, Kerberos usw.)

PAM unterteilt Authentifizierungsaufgaben in vier Verwaltungsgruppen:

  • Kontoverwaltung – Überprüfen Sie die Benutzerberechtigung für den Dienst, den Ablauf des Benutzerkennworts usw.
  • Authentifizierungsverwaltung – Benutzerauthentifizierung, Benutzeranmeldeinformationen, Challenge/Response (Passwort), Biometrie.
  • Passwortverwaltung – erleichtert die Passwortverwaltung – Änderung, Aktualisierung usw.
  • Sitzungsverwaltung – Verbindungsaufgaben vor/nach dem Benutzerdienst, z. Audit-Trail, Mounten des Home-Verzeichnisses des Benutzers usw.

PAM pam_cracklib-Modul

Wenn das Modul pam_cracklib dem PAM-Kennwortstapel hinzugefügt wird, führt es eine Stärkeprüfung der vorgeschlagenen Benutzerkennwörter durch. Das Modul ruft die Cracklib-Routine auf, die Passwörter mit einem Wörterbuch bekannter (gebräuchlicher, schwacher, Standard-, etc.) Wörter vergleicht, bevor weitere Stärkeprüfungen durchgeführt werden, wie zum Beispiel:

  • Palindrom :Ist das neue Passwort ein Palindrom, d. h. ein String, der sich rückwärts und vorwärts gleich liest, z. Radar, Frau usw.
  • Nur Falländerung :Ist das neue Passwort dasselbe wie das alte mit nur einer Änderung der Groß-/Kleinschreibung?
  • Ähnlich :Ist das neue Passwort dem alten zu ähnlich?
  • Einfach :Ist das neue Passwort zu klein? Dies wird durch 6 Argumente gesteuert:minlen , maxclassrepeat , dcredit , ucredit , lcredit und ocredit .
  • Gedreht :Ist das neue Passwort eine rotierte Version des alten Passworts?
  • Bereits verwendet :Wurde das Passwort schon einmal verwendet?
  • Gleiche aufeinanderfolgende Zeichen :Optionale Prüfung auf gleiche aufeinanderfolgende Zeichen.
  • Enthält den Benutzernamen :Optional prüfen, ob das Passwort den Benutzernamen enthält.

Wenn sie ohne Argumente aktiviert sind, helfen die Standardoptionen/-werte der pam_cracklib-Stärkeprüfung dabei, sicherzustellen, dass ausreichend sichere Passwörter akzeptiert werden.

Das Kreditsystem pam_cracklib

Das pam_cracklib-Modul bietet verschiedene Optionen, von denen die folgenden die Passwortkomplexität direkt steuern:

  • Minuten – Mindestpasswortlänge
  • lcredit – Mindestanzahl Kleinbuchstaben
  • ucredit – Mindestanzahl Großbuchstaben
  • dcredit – Mindestanzahl numerischer Zeichen
  • ocredit – Mindestanzahl nicht alphanumerischer Zeichen

Die minlen Option definiert die akzeptable Mindestgröße für ein neues Passwort. Zusätzlich zur Anzahl der Zeichen wird jedoch ein Guthaben (d. h. Punktzahl) für jeden unterschiedlichen Zeichentyp vergeben, der verwendet wird, d. h. untere, obere, Ziffer, andere. Der Credit-Wert jedes verwendeten Zeichentyps zählt zum Erreichen des definierten Mindestwerts.

lcredit=N :(N>=0) Dies ist die maximale Gutschrift für Kleinbuchstaben im neuen Passwort. Wenn Sie weniger als oder N Kleinbuchstaben haben, zählt jeder Buchstabe +1, um den aktuellen minlen-Wert zu erreichen. Der Standardwert für lcredit ist 1, was der empfohlene Wert für minlen unter 10 ist.

(N <0) Dies ist die Mindestanzahl an Kleinbuchstaben, die für ein neues Passwort erfüllt sein müssen.

ucredit=N :(N>=0) Dies ist die maximale Gutschrift für Großbuchstaben im neuen Passwort. Wenn Sie weniger als oder N Großbuchstaben haben, zählt jeder Buchstabe +1, um den aktuellen Mindestwert zu erreichen. Der Standardwert für ucredit ist 1, was der empfohlene Wert für minlen unter 10 ist.

(N <0) Dies ist die Mindestanzahl an Großbuchstaben, die für ein neues Passwort erfüllt sein müssen.

dcredit=N (N>=0) Dies ist das maximale Guthaben für Ziffern im neuen Passwort. Wenn Sie weniger als oder N Ziffern haben, zählt jede Ziffer +1, um den aktuellen minlen-Wert zu erreichen. Der Standardwert für dcredit ist 1, was der empfohlene Wert für minlen unter 10 ist.

(N <0) Dies ist die Mindestanzahl an Ziffern, die für ein neues Passwort erfüllt sein müssen.

ocredit=N :(N>=0) Dies ist das maximale Guthaben für andere Zeichen im neuen Passwort. Wenn Sie weniger als oder N andere Charaktere haben, zählt jeder Charakter +1, um den aktuellen Minlen-Wert zu erreichen. Der Standardwert für ocredit ist 1, was der empfohlene Wert für minlen kleiner als 10 ist.

(N <0) Dies ist die Mindestanzahl anderer Zeichen, die für ein neues Passwort erfüllt sein müssen.

Bei Verwendung des PAM-Guthabensystems kann es durchaus vorkommen, dass ein Passwort mit einer kürzeren als der von minlen definierten Länge akzeptiert wird, d. h. das Passwort kann auch Zeichen einer oder mehrerer Zeichenarten enthalten – Kleiner, Großer, Ziffer, Sonstiges.

Betrachten Sie die folgende pam_cracklib-Konfiguration:

--/etc/pam.d/system-auth-ac:
...
password required pam_cracklib.so minlen=12 lcredit=1 ucredit=1 dcredit=2 ocredit=1
...

Es folgt die pam_cracklib-Passwortguthabenberechnung für ein Benutzerpasswort von „@1Bcdef2“:

  • @1Bcdef2:8 Credits vergeben, d. h. einer für jeden Charakter
  • @:1 Credit vergeben (andere)
  • 1,2:1 Credit vergeben (Ziffer)
  • B:1 Credit vergeben (oben)
  • cdef:1 Credit vergeben (unten)

8 + 4 =12 (Minuten)

Angesichts der Anzahl und Art der Zeichen, die im obigen Passwort verwendet werden, akzeptiert das System eine Mindestpasswortlänge von 8 Zeichen. Beachten Sie, dass ein Passwort, das nur aus 11 Kleinbuchstaben besteht, ebenfalls akzeptiert wird, z. B.:

  • abcdefghijk:11 Credits vergeben – einer für jedes Zeichen
  • abcdefghijk:0 Punkte vergeben (andere)
  • abcdefghijk:0 vergebene Punkte (Ziffer)
  • abcdefghijk:0 Credits vergeben (oben)
  • abcdefghijk:1 Credit vergeben (unten)

11 + 1 =12 (Minuten)

Im Folgenden finden Sie detaillierte Beispiele für akzeptierte und nicht akzeptierte Passwörter:

minlen Passwort Passwortlänge (Zeichen) Kredit Passwort akzeptiert?
10 qwertasdf 9 9 (Zeichen) + 1 (unten) =10 Ja
12 qwertasdfgz 11 11 (Zeichen) + 1 (unten) =12 Ja
14 qwertasdfgzxc 13 13 (Zeichen) + 1 (unten) =14 Ja
14 qwertasdf1$ 11 11 (Zeichen) + 1 (untere) + 1 (Ziffer) + 1 (andere) =14 Ja
10 qwertasd 8 8 (Zeichen) + 1 (niedriger) =9 Nein
12 qwertasdfg 10 10 (Zeichen) + 1 (unten) =11 Nein
14 qwertasdfgzx 12 12 (Zeichen) + 1 (unten) =13 Nein

Erzwingen der Passwortkomplexität mit pam_cracklib Credit System

Beachten Sie bei allen bisherigen Beispielen, dass die Verwendung des Credit-Systems die Passwortkomplexität nicht wirklich erzwingt. Um die Kennwortkomplexität zu erzwingen, geben Sie negative Werte für die pam_cracklib-Optionen lcredit, ucredit, dcredit, ocredit an. Bei der Angabe negativer Werte werden keine Gutschriften für die Verwendung von Klein-, Groß-, Ziffern- und anderen Zeichen vergeben, das Passwort muss jedoch weiterhin Zeichen aus jeder der angegebenen Zeichengruppen enthalten.

Betrachten Sie die folgende pam_cracklib-Konfiguration:

--/etc/pam.d/system-auth-ac:
...
password required pam_cracklib.so minlen=8 lcredit=-1 ucredit=-1 dcredit=-2 ocredit=-1
...

Damit muss ein erfolgreiches Benutzerpasswort …

  • mindestens 8 Zeichen lang sein und
  • mindestens 1 Kleinbuchstaben enthalten und
  • mindestens 1 Großbuchstaben enthalten und
  • enthalten mindestens 2 Ziffern und
  • mindestens 1 weiteres Zeichen enthalten

Hinweis :CentOS/RHEL 7 verwendet pam_pwquality Modul anstelle von pam_cracklib und das Modul pam_pwquality ist abwärtskompatibel mit seinen Optionen.

PAM_PWQUALITY(8) System Manager's Manual PAM_PWQUALITY(8)

NAME
pam_pwquality - PAM module to perform password quality checking

SYNOPSIS
pam_pwquality.so [...]

DESCRIPTION
This module can be plugged into the password stack of a given service to provide some plug-in strength-checking for passwords. 
The code was originally based on pam_cracklib module and the module is backward compatible with its options.


Cent OS
  1. So setzen Sie ein vergessenes Root-Passwort zurück RHEL / CentOS 7

  2. So konfigurieren Sie das CentOS/RHEL 6-System so, dass die letzten 3 verwendeten Passwörter nicht verwendet werden

  3. So deaktivieren Sie ACPI in CentOS/RHEL 7

  4. „BAD PASSWD :is too simple“ – Fehler beim Passwortwechsel in CentOS/RHEL 7 und 8

  5. CentOS / RHEL :So deaktivieren Sie die Root-Anmeldung oder den Root-Zugriff auf einem System

RHEL 8 / CentOS 8 stellt das Root-Passwort wieder her

So installieren Sie ONLYOFFICE unter Red Hat Linux (RHEL) und CentOS

So installieren Sie Cockpit unter CentOS 8 / RHEL 8

So überprüfen und reparieren Sie das XFS-Dateisystem in RHEL/Centos

CentOS / RHEL 7:So setzen Sie das Root-Passwort zurück

CentOS / RHEL 7 :Bootvorgang