Pluggable Authentication Modules (PAM) gibt es schon seit langem in Linux. Das Ziel von PAM ist es, Authentifizierung und Authentifizierungsanforderungen für Dienste und Module zu zentralisieren.
In einem kürzlich erschienenen Artikel zur Einführung von PAM habe ich erwähnt, dass viele Konfigurationsänderungen mit anderen Dienstprogrammen vorgenommen werden. Eines dieser Dienstprogramme ist authconfig
. Dieses Tool wird mit Red Hat Enterprise Linux bis einschließlich RHEL7 verwendet. Die neuesten Versionen von Fedora und RHEL8 verwenden authselect
stattdessen, obwohl Sie möglicherweise die authconfig
finden Dienstprogramm in einem Kompatibilitätsmodus.
Die authconfig
wurde erstellt, um die Clientkonfiguration für die zentralisierte Authentifizierung zu unterstützen. PAM-Dateien sind nur ein Teil dieser Konfiguration. Verwenden Sie zum Beispiel authconfig
um die Kerberos-Authentifizierung zu aktivieren, werden Änderungen an /etc/nsswitch.conf
vorgenommen Datei und die /etc/krb5.conf
Datei zusätzlich zum Hinzufügen von pam_krb5
Modul in /etc/pam.d/{system,password}-auth
Dateien. Eine zusätzliche PAM-Konfiguration ist jetzt auch mit der authconfig
möglich Tool, wie wir in den Beispielen unten sehen werden.
Drei authconfig-Schnittstellen
Wie viele Dienstprogramme zur Systemkonfiguration kann die Authentifizierung mit einem Tool für eine grafische Benutzeroberfläche (GUI), über eine interaktive Textschnittstelle (TUI) oder über die Befehlszeile konfiguriert werden. Sehen wir uns alle drei Optionen an.
Das grafische Werkzeug wird von authconfig-gtk
bereitgestellt Paket. Dieses Dienstprogramm verfügt über mehrere Registerkarten zum Organisieren der Optionen:
Die interaktive Textversion ("TUI") wird mit dem authconfig-tui
aufgerufen Befehl. Verwenden Sie die TAB
Taste zum Verschieben von Feldern und das SPACE
Leiste zum Aktivieren oder Deaktivieren von Optionen:
Schließlich gibt es das skriptfähige Befehlszeilentool authconfig
. Dieser Befehl hat auch viele Optionen, die mit der --help
beschrieben werden Option und im man
Seite.
Die Grafik- und Textversionen sind interaktiv, haben aber begrenzte Optionen. Beispielsweise können Sie die Authentifizierung mit einem Fingerabdruckleser in allen drei Schnittstellen aktivieren, aber nur das Befehlszeilentool hat eine Option zum Konfigurieren von pam_faillock
Modul. Änderungen der Passwortstärke mit pam_pwquality
Modul werden mit dem grafischen Tool und dem Befehlszeilentool erstellt, aber nicht mit der interaktiven Textschnittstelle.
Erstes Beispiel:Fingerabdruckleser aktivieren
Bevor wir zu den Einzelheiten der Verwendung der Befehlszeilenoptionen kommen, sehen wir uns die Änderungen an, die durch Aktivieren des Fingerabdrucklesers mit entweder authconfig-tui
oder authconfig-gtk
:
[demo]$ grep fprintd /etc/pam.d/* # before enabling the fingerprint reader
/etc/pam.d/fingerprint-auth:auth sufficient pam_fprintd.so
/etc/pam.d/fingerprint-auth-ac:auth sufficient pam_fprintd.so
Bei deaktivierter Option wird nur die fingerprint-auth
Datei enthält Verweise auf den fprintd
Modul. Nach dem Aktivieren der Option werden neue Zeilen zu /etc/pam.d/system-auth
hinzugefügt Dateien:
[demo]$ grep fprintd /etc/pam.d/* # after enabling the fingerprint reader
/etc/pam.d/fingerprint-auth:auth sufficient pam_fprintd.so
/etc/pam.d/fingerprint-auth-ac:auth sufficient pam_fprintd.so
/etc/pam.d/system-auth:auth sufficient pam_fprintd.so
/etc/pam.d/system-auth-ac:auth sufficient pam_fprintd.so
Zweites Beispiel:pwquality-Einstellungen
Das grafische Tool hat auch Passwortoptionen Registerkarte, die die /etc/security/pwquality
steuert Datei:
[demo]# grep '^[^# ]' /etc/security/pwquality.conf # before changing a field
Diese Datei enthält viele nützliche Kommentare, die Syntax und Standardwerte zeigen. Nach Änderung eines der Felder werden alle Optionen am Ende der Datei gesetzt:
[demo]# grep '^[^# ]' /etc/security/pwquality.conf # after changing a field
minlen = 12
minclass = 2
maxrepeat = 0
maxclassrepeat = 0
lcredit = 0
ucredit = 0
dcredit = 0
ocredit = 0
Ich habe die erforderliche Länge und die erforderliche Anzahl von Zeichenklassen geändert.
Verwenden Sie das authconfig-CLI-Tool
Eines der kniffligen Dinge, an die man sich erinnern sollte, wenn man authconfig
verwendet in der Befehlszeile ist das Hinzufügen von --update
Möglichkeit. Es gibt einen --test
Option zur Überprüfung der Syntax, ein --update
Option zum Aktualisieren der authconfig
Informationen und die eigentlichen Konfigurationsdateien für die angegebenen Optionen und ein --updateall
Option, die alle Konfigurationsdateien zurücksetzt, damit sie mit authconfig
übereinstimmen die Einstellungen. Die --updateall
Option ist eine großartige Möglichkeit, alle manuellen Änderungen zu löschen, die ein Administrator möglicherweise am System vorgenommen hat. Mein Workflow verwendet normalerweise nur --update
Option für jede Änderung.
Wenn Sie die Datei authconfig
ausführen Befehle als normaler Benutzer ausführen, werden Sie zur Eingabe eines Kennworts aufgefordert, um die Berechtigungen zu erhöhen, bevor die Befehle ausgeführt werden. Dies gilt sogar für die --help
Abfragen:
[demo]# authconfig --help
Usage: authconfig [options] {--update|--updateall|--test|--probe|--restorebackup <name>|--savebackup <name>|--restorelastbackup}
Options:
...omitted...
--test do not update the configuration files, only print new settings
--update, --kickstart opposite of --test, update configuration files with changed settings
--updateall update all configuration files
Wie in den GUI- und TUI-Versionen zu sehen, ist die Fingerabdruckauthentifizierung ein Ein-/Aus-Schalter. Die Befehlszeilenoptionen sind:
[demo]# authconfig --help | grep finger
--enablefingerprint enable authentication with fingerprint readers by default
--disablefingerprint disable authentication with fingerprint readers by default
Und der Befehl zum Aktivieren der Fingerabdruckfunktion lautet:
[demo]# authconfig --enablefingerprint --update
Die Passworteinstellungen, die in der GUI-Version, aber nicht in der TUI-Version verfügbar sind, können auch über die Befehlszeile festgelegt werden.
[demo]# authconfig --help | grep passmin
--passminlen=<number> minimum length of a password
--passminclass=<number> minimum number of character classes in a password
Sie können mehrere Optionen gleichzeitig festlegen:
[demo]# authconfig --passminlen=12 --passminclass=2 --update
Da nicht alle pwquality
Einstellungen können mit allen Versionen von authconfig
vorgenommen werden , ist es üblich, eine der Befehlszeilenoptionen wie --passminlen
zu verwenden Option, um anfänglich /etc/security/pwquality
zu konfigurieren Datei. Das Dienstprogramm legt Werte für alle Optionen am Ende der Datei fest. Ein Administrator kann dann jedes dieser Felder einfach mit einem sed
manuell bearbeiten Befehl oder mithilfe des Ansible lineinfile
Modul.
Der faillock
-Modul ist ein Beispiel für eine Änderung an PAM-Konfigurationsdateien, die nur mit der Befehlszeilenversion von authconfig
verfügbar ist . Dieses Modul zählt fehlgeschlagene Authentifizierungsversuche pro Benutzer während eines bestimmten Intervalls und sperrt das Konto, wenn es zu viele aufeinanderfolgende fehlgeschlagene Authentifizierungen gibt.
[demo]# authconfig --help | grep fail
--enablefaillock enable account locking in case of too many consecutive authentication failures
--disablefaillock disable account locking on too many consecutive authentication failures
--faillockargs=<options> the pam_faillock module options
Der faillock
Modul ist auch ein bisschen anders. Es gibt Optionen zum Aktivieren und Deaktivieren, aber es gibt auch eine Option zum Übergeben von Argumenten. Die Zählschwelle kann angepasst werden, ebenso wie die Intervalllänge und das Entsperr-Timeout. Sie können auch wählen, ob das Modul nur für normale Benutzer oder auch für das Root-Konto gilt. Die Manpage für pam_faillock
zeigt die gültigen Optionen und Beispiele der letzten Zeile in /etc/pam.d/*
Dateien. Die --faillockargs
Option für authconfig
erwartet eine Zeichenfolge in Anführungszeichen aller Optionen, die Sie in den PAM-Dateien festgelegt haben. Wenn Sie es weglassen, werden die Standardoptionen des Moduls verwendet.
Wenn deaktiviert, gibt es keine Verweise auf pam_faillock
Modul. Wenn Sie jedoch grep
für einfach fehlen möglicherweise sehen Sie pam_faildelay
Modul:
[demo]# grep faillock /etc/pam.d/* # before enabling the faillock module
Achten Sie darauf, den faillock
zu zitieren Argumente, wenn Sie diese Option einbeziehen:
[demo]# authconfig --enablefaillock --faillockargs='deny=4 unlock_time=300' --update
Nach dem Aktivieren des Moduls werden mehrere Zeilen zu mehreren /etc/pam.d/*auth
hinzugefügt Dateien.
Was ist mit manuellen Änderungen an den PAM-Dateien?
Während der Untersuchung von PAM-Dateien, die von authconfig
geändert wurden , stellen Sie möglicherweise fest, dass mehrere Dateien in /etc/pam.d
Verzeichnis haben oben einen Kommentar darüber, dass manuelle Bearbeitungen durch das Dienstprogramm überschrieben werden. Das Dienstprogramm wurde erweitert, um viele der Standard-PAM-Funktionen abzudecken, aber manchmal müssen manuelle Änderungen vorgenommen werden. Wenn Sie manuelle Änderungen vornehmen, müssen Sie die Änderungen direkt in authconfig
deaktivieren .
Es gibt einen Knowledgebase-Artikel und einen Service-Blogbeitrag, die Schritte für manuelle Bearbeitungen enthalten. Sie können auch formale Schulungsübungen für manuelle Änderungen finden und sich eingehender mit mehreren spezifischen Modulen befassen, indem Sie den Kurs Red Hat Security:Linux in Physical, Virtual, and Cloud (RH415) besuchen.
Immerhin ist es ein veraltetes Tool?
Die authconfig
Dienstprogramme wurden ursprünglich erstellt, um bei der Konfiguration verschiedener Arten von zentralisierter Authentifizierung zu helfen. Über viele Jahre wurde es erweitert, um auch andere PAM-Konfigurationen handhaben zu können. In aktuellen Systemen wird der Großteil der zentralisierten Authentifizierung jetzt über ipa-client-install
konfiguriert oder realmd
, die beide den sssd
erwarten und die pam_sss
Module. Die authselect
Dienstprogramm ersetzt authconfig
in neueren Versionen von Fedora und wurde mit Version 8 in Red Hat Enterprise Linux eingeführt. Dieses neue Tool verwaltet Konfigurationen über Profile und bearbeitet nicht mehr alle verschiedenen zentralisierten Konfigurationsdateien. Der Fokus liegt auf der /etc/nsswitch.conf
Datei und die PAM-Konfigurationsdateien. Es hat viele ähnliche Optionen zum Aktivieren und Deaktivieren von Funktionen wie Fingerabdruckleser, Smartcards und faillock
Modul. Mehr über die Migration erfahren Sie mit man authselect-migration
.
[ Kostenloser Download:Spickzettel für fortgeschrittene Linux-Befehle. ]