Sicherheit bei der Verwaltung von Benutzern in Linux-Umgebungen ist unerlässlich, und wir müssen immer nach den besten verfügbaren Optionen für diesen Zweck suchen, entweder intern oder extern.Eine der sichersten Methoden zur Erhöhung der Sicherheit in Linux-Systemen ist eine viel effizientere Verwaltung Auf diese Weise können Benutzer im System authentifiziert werden, sodass nur Benutzer mit den richtigen Anmeldeinformationen auf das System zugreifen können.
Für diesen Fall haben wir eine Funktionalität namens Linux-PAM (Pluggable Authentication Modules for Linux - Pluggable Authentication Modules for Linux), die als eine Reihe von Bibliotheken entwickelt wurde, mit denen der Systemadministrator die Art und Weise der Anwendungen auswählen kann Benutzer im lokalen Netzwerk authentifizieren.
Bei der Erstellung einer PAM-kompatiblen Anwendung können wir zwischen den verwendeten Authentifizierungsmechanismen wechseln.
Um dieses Konzept etwas besser zu verstehen, können wir analysieren, wie sich Benutzer aktuell authentifizieren, zunächst wird die Identität des Benutzers bei der Eingabe des dem Benutzer zugewiesenen Passworts überprüft, diese Passwörter werden in der Datei /etc/passwd gespeichert, dann wird das Privileg in Form einer persönlichen Benutzerkennung, UID genannt, definiert und die Mitgliedschaft in den verfügbaren Gruppen, Diensten und Anwendungen ist basierend auf der persönlichen und Gruppenidentität jedes Benutzers verfügbar.
Die PAM-Bibliothek wird lokal in der Systemdatei /etc/pam.conf oder in einer Reihe von Dateien in /etc/pam.d/ konfiguriert, um eine Benutzeranfrage über die nur lokal verfügbaren Authentifizierungsmodule zu authentifizieren.
Die Module sind im Verzeichnis /lib/security oder /lib64/security verfügbar. Die Syntax der /etc/pam.conf-Konfigurationsdatei besteht aus einer Liste von Regeln, und jede Regel befindet sich in einer einzelnen Zeile, kann aber mit einer Zeilenendung `\ ' erweitert werden. Kommentaren werden '#'-Zeichen vorangestellt und erstrecken sich bis zum nächsten Ende der ausgewählten Zeile.
Das Format jeder Regel ist eine Sammlung von Tabulatoren, die durch Leerzeichen getrennt sind. Bei den ersten drei wird die Groß-/Kleinschreibung nicht beachtet:
Diensttyp Steuermodul-Pfad-Modul-ArgumenteDie verwendeten Parameter sind:
ServiceEs ist der echte Name der Anwendung.
TypEs ist der Typ von Modul / Kontext / Schnittstelle.
SteuerungBezieht sich auf das Verhalten der PAM-API, falls das Modul die Authentifizierungsaufgabe nicht ausführen kann
ModulpfadEs ist der absolute Dateiname oder der relative Pfad des PAM.
Modul-ArgumenteGibt eine durch Leerzeichen getrennte Liste von Token an, um das Verhalten des Moduls zu steuern.
Die Syntax jeder Datei in /etc/pam.d/ ist identisch und besteht aus Zeilen mit folgendem Aufbau:
Typ Control-Flag-Modul Modul-ArgumenteEine in der Datei /etc/pam.d/sshd verfügbare Regeldefinition (ohne Modulargumente), die keine Anmeldungen ohne Rootberechtigung zulässt, wenn /etc/nologin verfügbar ist, lautet beispielsweise:
Konto erforderlich pam_nologin.so
1. So verwalten Sie PAM-Steuerelemente und -Gruppen unter Linux
PAM-Authentifizierungsaufgaben sind in vier separate Administrationsgruppen katalogisiert, wobei jede dieser Gruppen unterschiedliche Aspekte einer Benutzeranfrage für einen eingeschränkten Dienst verwaltet.
Ein Modul wird wie folgt einer dieser Typen von Administrationsgruppen zugeordnet:
KontoDieser Wert bietet die Dienste zur Verifizierung des Kontos mit Aspekten wie dem Ablauf des Passworts des Benutzers oder ob dem Benutzer der Zugriff auf den angeforderten Dienst gewährt wird.
AuthentifizierungMit diesem Wert wird ein Benutzer authentifiziert und Benutzeranmeldeinformationen können konfiguriert werden.
PasswortSie ermöglichen Benutzern die Aktualisierung von Kennwörtern und sind in PAM-Authentifizierungsmodule integriert
SitzungDieser ist für die Verwaltung der Aktionen zuständig, die zu Beginn und am Ende einer Sitzung ausgeführt werden.
Die PAM-Objektdateien befinden sich je nach verwendeter Architektur im folgenden Verzeichnis / lib / security / oder / lib64 / security.
Die in PAM unterstützten Steuerflags sind:
RequisitMit diesem Indikator gibt der Fehler sofort die Kontrolle an die Anwendung zurück und zeigt die Art des Fehlers des ersten Moduls an.
erforderlichEs wird angegeben, dass alle Module erforderlich sind, damit libpam korrekt ausgeführt wird und der Anwendung den Erfolg zurückgibt
ausreichendDieses Modul führt zu einer sofortigen und korrekten Rückgabe der Anwendung, in diesem Fall wird der Ausfall dieses Moduls ignoriert.
OptionalDer Erfolg oder Misserfolg dieses Moduls wird in der Regel nicht in diesem Indikator festgehalten
Es gibt andere Werte wie:
enthaltenEs enthält alle Zeilen des Typs basierend auf der spezifischen Konfigurationsdatei als Argument für dieses Steuerelement.
UnterstapelSchließt alle Zeilen des angegebenen Typs aus der angegebenen Konfigurationsdatei als Argument für dieses spezifische Steuerelement ein.
2. So überprüfen Sie, ob ein Programm unter Linux mit PAM kompatibel ist
Um PAM in einer Anwendung zu implementieren, muss es speziell für die Verwendung von PAM geschrieben und kompiliert worden sein. Um zu überprüfen, ob diese Anwendung kompatibel ist oder nicht, z. B. SSH, führen wir Folgendes aus:
sudo ldd / usr / sbin / sshd | grep libpam.so
VERGRÖSSERN
3. So beschränken Sie den Root-Zugriff über SSH mit PAM unter Linux
PAM kann verwendet werden, um den Root-Benutzerzugriff auf ein System über SSH und Anmeldeprogramme zu deaktivieren, und dies hilft, die Sicherheitsoptionen des Systems zu erhöhen.
Wenn wir dies tun möchten, verwenden wir das Modul /lib/security/pam_listfile.so, das uns die Möglichkeit gibt, die Berechtigungen bestimmter Konten einzuschränken.
Schritt 1
Um diese Aktion auszuführen, greifen wir wie folgt auf die Datei /etc/pam.d/ zu:
sudo nano /etc/pam.d/sshdODER
sudo nano /etc/pam.d/loginSchritt 2
Dort werden wir folgendes sehen:
VERGRÖSSERN
Schritt 3
Für diesen Fall fügen wir am Ende die folgenden Zeilen hinzu:
auth erforderlich pam_listfile.so \ onerr = erfolgreicher Eintrag = Benutzersinn = Datei verweigern = / etc / ssh / deniedusers
VERGRÖSSERN
In diesem Fall wurden die folgenden Parameter hinzugefügt:
authEs ist der zu verwendende Modultyp
erforderlichEs ist ein Kontrollflag, mit dem, wenn das Modul verwendet wird, es bestanden werden muss oder das Gesamtergebnis unabhängig vom Status anderer Module fehlschlägt.
pam_listfile.soEs ist ein Modul, mit dem es erlaubt ist, Dienste basierend auf einer beliebigen Datei zu verweigern oder zuzulassen.
onerr = erfolgreichEs ist das Argument des Moduls.
Artikel = BenutzerEs ist das Argument des Moduls, in dem angegeben wird, was in der Datei aufgeführt ist und überprüft werden muss.
Sinn = leugnenEs bezieht sich auf das Argument des Moduls, in dem die auszuführende Aktion angegeben ist, wenn sie in der Datei gefunden wird, andernfalls wird die entgegengesetzte Aktion angefordert.
file = /etc/ssh/deniedusersEs ist das Argument des Moduls, in dem eine Datei angegeben wird, die ein Element pro Zeile enthält.
Wir speichern die Änderungen mit den Tasten Strg + O und verlassen den Editor mit Strg + X.
Danach müssen wir die Datei /etc/ssh/deniedusers erstellen und den Root-Benutzer darin hinzufügen und später die entsprechenden Berechtigungen zuweisen:
sudo chmod 600 / etc / ssh / deniedusers
4. So konfigurieren Sie PAM unter Linux erweitert
Ein besonderer Wert ist der Standardwert in PAM, daher werden nicht alle Werte explizit erwähnt, daher entspricht der Wert N dem Rückgabecode der aufgerufenen Funktion in dem Modul, für das die Zeile definiert ist.
Die Aktion hat einige Argumente wie:
ignorierenWenn diese Aktion mit einem Modulstapel verwendet wird, generiert der Rückgabestatus des Moduls keinen Rückgabecode von der Anwendung.
SchlechtGibt an, dass der Rückkehrcode als Hinweis auf die Fehler des verwendeten Moduls betrachtet werden sollte.
sterbenEs erfüllt die gleiche Funktion wie bad, kann aber den Modulstapel beenden und PAM kehrt sofort zur Anwendung zurück.
OkayDieser Wert teilt PAM mit, dass der Systemadministrator diesen Rückkehrcode direkt für den Rückkehrcode des vollständigen Modulstapels verwendet.
fertigErfüllt die gleiche Rolle wie Ok, kann aber den Modulstapel beenden
n(eine ganze Zahl ohne Vorzeichen) - Entspricht ok, kann aber über die nächsten N Module auf dem Stack springen.
ZurücksetzenDie Verwendung dieses Parameters löscht den gesamten Modulstapelstatusspeicher und startet mit dem nächsten gestapelten Modul neu.
Jedes der PAM-Basiswörter, erforderlich; Requisit; ausreichend und optional, einen äquivalenten Ausdruck in Bezug auf die […]-Syntax haben, mit dem es möglich sein wird, komplexere Regeln zu schreiben, wie zum Beispiel:
erforderlich[Erfolg = ok new_authtok_reqd = ok ignorieren = Standard ignorieren = schlecht]
Requisit[Erfolg = ok new_authtok_reqd = ok ignorieren = Standard ignorieren = sterben]
ausreichend[Erfolg = erledigt new_authtok_reqd = erledigt default = ignorieren]
Optional[Erfolg = ok new_authtok_reqd = ok Standard = ignorieren]
Schritt 1
In CentOS 7 können wir beispielsweise die Regeln der PAM-Datei sehen, indem wir Folgendes ausführen:
sudo nano /etc/pam.d/postlogin
VERGRÖSSERN
Schritt 2
Wenn wir auf die Datei zugreifen:
sudo nano /etc/pam.d/smartcard-auth
VERGRÖSSERN
Um auf weitere PAM-Hilfe zuzugreifen, können wir Folgendes ausführen:
Mann pam.dMit PAM wird es möglich sein, Regeln für eine bessere Verwaltung der Authentifizierungsprozesse unter Linux zu erstellen oder zu bearbeiten.