GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beispiel PAM:Verwenden Sie authconfig, um PAM zu ändern

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. ]


Linux
  1. Verwendung des cPanel-Domains-Tools

  2. So verwenden Sie das Linux-Befehlszeilentool sipcalc

  3. Wie verwende ich das RedHat Upgrade Tool, um CentOS von 6.x auf CentOS 7 zu aktualisieren?

  4. So installieren und verwenden Sie das Mosh Command Line Tool Linux

  5. GPROF Tutorial – So verwenden Sie das Linux GNU GCC Profiling Tool

So verwenden Sie das MySQL-Optimierungstool

So verwenden Sie das ONLYOFFICE-Projektmanagement-Tool

So installieren und verwenden Sie das Bpytop-Ressourcenüberwachungstool unter Ubuntu 20.04

Verwendung von execl (Beispiel enthalten)

Passen Sie Okular an, um die Eigenschaften des Hervorhebungswerkzeugs zu ändern

Grammatikprüfwerkzeug zur Verwendung mit LaTeX?