pam

Linux Pam-Tutorial für Sicherheit

Linux Pam-Tutorial für Sicherheit
PAM steht für Pluggable Authentication Modules, das dynamische Authentifizierungsunterstützung für Anwendungen und Dienste in einem Linux-Betriebssystem bietet. Es ist ein Sicherheitsmechanismus, der den Schutz durch PAM ermöglicht, anstatt nach Benutzername und Passwort zu fragen. PAM ist für die Authentifizierung der ausgeführten Dateien verantwortlich. Jede Anwendung besteht aus mehreren konfigurierbaren Dateien, und jede besteht aus einem Stapel mehrerer Module. Diese Module werden dann von oben nach unten durchlaufen und das PAM generiert dann auf Grundlage des Ergebnisses die Antwort, ob sie bestanden oder nicht bestanden ist.

PAM macht es Administratoren und Entwicklern viel einfacher, da es selbst Änderungen an der Quellcodedatei vornimmt und nur minimale Interaktion erfordert. Daher kann PAM auch als verallgemeinerte Anwendungsprogrammierschnittstelle für authentifizierungsbezogene Dienste definiert werden. Anstatt den Code neu zu schreiben, wird er selbst modifiziert.

Schnittstellen des Pam-Moduls

Authentifizierung: Es ist das Modul, das für Authentifizierungszwecke verantwortlich ist; es verifiziert das Passwort.
Konto: Nachdem sich der Benutzer mit den richtigen Anmeldeinformationen authentifiziert hat, überprüft der Kontoabschnitt die Gültigkeit des Kontos wie Ablauf- oder Anmeldezeitbeschränkungen usw.
Passwort: Es wird nur verwendet, um das Passwort zu ändern.
Session: Es verwaltet die Sitzungen, enthält das Konto der Benutzeraktivität, die Erstellung von Postfächern, erstellt das Home-Verzeichnis des Benutzers usw.

Lernprogramm

  1. Um zu überprüfen, ob Ihre Anwendung LINUX-PAM verwendet oder nicht, verwenden Sie den folgenden Befehl in Ihrem Terminal:

    $ ldd /bin/su

    Wie wir in Zeile 2 der Ausgabe sehen können, existiert ein lipbpam.so Datei, die die Abfrage bestätigt.

  2. Die Konfiguration von LINUX-PAM befindet sich im Verzeichnis /etc/pam.d/. Öffnen Sie das Terminal Ihres Linux-Betriebssystems und gehen Sie zum pam-Verzeichnis, indem Sie den Befehl eingeben: $ cd /etc/pam.d/

    Dies ist das Verzeichnis, das andere Dienste enthält, die PAM . unterstützen. Man kann


    Überprüfen Sie den Inhalt, indem Sie den Befehl $ ls   im Verzeichnis von pam ausführen, wie im obigen Screenshot gezeigt.

    Wenn Sie sshd nicht als Dienst finden, der PAM unterstützt, müssen Sie den sshd-Server installieren.

    SSH (oder Secure Shell) ist ein verschlüsseltes Netzwerktool, das es verschiedenen Arten von Computern/Benutzern ermöglicht, sich sicher bei verschiedenen Computern aus der Ferne über ein Netzwerk anzumelden. Sie müssen das openssh-server-Paket installieren, was Sie tun können, indem Sie den folgenden Befehl in Ihrem Terminal ausführen.

    $sudo  apt-get   openssh-server installieren

    Es werden alle Dateien installiert und dann können Sie das pam-Verzeichnis erneut eingeben und nach den Diensten suchen und sehen, dass sshd hinzugefügt wurde.

  3. Geben Sie dann den folgenden Befehl ein. VIM ist ein Texteditor, der Nur-Text-Dokumente öffnet, damit der Benutzer sie sehen und bearbeiten kann. $vim sshd

    Wenn Sie den vim-Editor verlassen möchten und dies nicht können, drücken Sie gleichzeitig die Esc-Taste und den Doppelpunkt (:), wodurch Sie in den Einfügemodus gelangen. Geben Sie nach dem Doppelpunkt q ein und drücken Sie die Eingabetaste. Hier steht q für quit.

    Sie können nach unten scrollen und alle Module sehen, die zuvor mit Begriffen wie erforderlich, enthalten, erforderlich usw. beschrieben wurden. Was sind diese?

    Sie werden als PAM Control Flags bezeichnet. Lassen Sie uns auf ihre Details eingehen, bevor wir in viel mehr Konzepte von PAM-Diensten eintauchen.

PAM-Kontrollflaggen

  1. Erforderlich: Muss zum Ergebniserfolg führen. Es ist die Notwendigkeit, auf die man nicht verzichten kann.
  2. Requisit: Muss bestehen, sonst werden keine weiteren Module ausgeführt.
  3. Ausreichend: Es wird ignoriert, wenn es fehlschlägt. Wird dieses Modul bestanden, werden keine weiteren Flags geprüft.
  4. Optional: Es wird oft ignoriert. Es wird nur verwendet, wenn nur ein Modul in der Schnittstelle vorhanden ist.
  5. Einschließen: Es holt alle Zeilen aus den anderen Dateien.

Die allgemeine Regel zum Schreiben der Hauptkonfiguration lautet nun wie folgt: Diensttyp Control-Flag-Modul-Modul-Argumente

  1. BEDIENUNG: Dies ist der Name der Anwendung. Angenommen, Ihre Anwendung heißt NUCUTA.
  2. ART: Dies ist der verwendete Modultyp. Angenommen, das verwendete Modul ist das Authentifizierungsmodul.
  3. KONTROLLFLAGGE: Dies ist der Typ des verwendeten Kontroll-Flags, einer der fünf Typen, wie zuvor beschrieben.
  4. MODUL: Der absolute Dateiname oder der relative Pfadname des PAM.
  5. MODUL-ARGUMENTE: Dies ist die separate Liste von Token zur Steuerung des Modulverhaltens.

Angenommen, Sie möchten den Root-Benutzerzugriff auf jede Art von System über SSH deaktivieren, dann müssen Sie den Zugriff auf den sshd-Dienst einschränken. Außerdem sollen die Login-Dienste zugangskontrolliert sein.

Es gibt mehrere Module, die den Zugriff einschränken und Privilegien gewähren, aber wir können das Modul verwenden /lib/security/pam_listfile.so die extrem flexibel ist und viele Funktionalitäten und Privilegien hat.

  1. Öffnen und bearbeiten Sie die Datei/Anwendung im vim-Editor für den Zieldienst, indem Sie in das /etc/pam.d/ Verzeichnis zuerst.

In beiden Dateien ist folgende Regel hinzuzufügen:

Authentifizierung erforderlich pam_listfile.so\onerr=succeed item=user sense=deny file=/etc/ssh/deniedusers

Wo auth das Authentifizierungsmodul ist, ist das Kontrollflag erforderlich, die pam_listfile.also module gibt den Dateien die Deny-Berechtigungen, onerr=succeed ist das Modulargument, item=user ist ein weiteres Modulargument, das Dateilisten und den zu überprüfenden Inhalt spezifiziert, sense=deny ist ein weiteres Modulargument, das es tut gefunden in einer Datei und file=/etc/ssh/deniedusers, die einen Dateityp angibt, der nur ein Element pro Zeile enthält.

  1. Als nächstes eine weitere Datei erstellen /etc/ssh/deniedusers und füge root als Namen hinzu in. Dies kann mit folgendem Befehl erfolgen: $sudo vim /etc/ssh/deniedusers
  1. Speichern Sie dann die Änderungen, nachdem Sie den Root-Namen hinzugefügt haben, und schließen Sie die Datei.
  2. Verwenden Sie chmod commond, um den Zugriffsmodus der Datei zu ändern. Die Syntax für den Befehl chmod lautet
 chmod   [Referenz][Betreiber][Modus] Datei

Hier werden die Referenzen verwendet, um eine Liste von Buchstaben anzugeben, die angibt, wem die Erlaubnis erteilt werden soll.

Hier können Sie beispielsweise den Befehl schreiben:

$sudo   chmod   600  /etc/ssh/deniedusers

Das funktioniert ganz einfach. Sie geben die Benutzer an, denen der Zugriff auf Ihre Datei verweigert wird, in der Datei /etc/ssh/deniedusers und legen den Zugriffsmodus für die Datei mit dem Befehl chmod fest. Von nun an verweigert PAM beim Versuch, auf die Datei zuzugreifen, aufgrund dieser Regel allen in der Datei /etc/ssh/deniedusers aufgeführten Benutzern den Zugriff auf die Datei.

Fazit

PAM bietet dynamische Authentifizierungsunterstützung für Anwendungen und Dienste in einem Linux-Betriebssystem. Dieser Leitfaden enthält eine Reihe von Flags, die verwendet werden können, um das Ergebnis des Ergebnisses eines Moduls zu bestimmen. Es ist bequem und zuverlässig. für Benutzer als der traditionelle Passwort- und Benutzernamen-Authentifizierungsmechanismus, und daher wird PAM oft in vielen gesicherten Systemen verwendet.

Beste Gamepad-Mapping-Apps für Linux
Wenn du Spiele unter Linux gerne mit einem Gamepad statt mit einem typischen Tastatur- und Maus-Eingabesystem spielst, gibt es einige nützliche Apps f...
Nützliche Tools für Linux-Spieler
Wenn Sie gerne unter Linux spielen, haben Sie wahrscheinlich Apps und Dienstprogramme wie Wine, Lutris und OBS Studio verwendet, um das Spielerlebnis ...
HD-Remastered-Spiele für Linux, die noch nie zuvor eine Linux-Version hatten
Viele Spieleentwickler und -herausgeber entwickeln HD-Remaster alter Spiele, um die Lebensdauer des Franchise zu verlängern. Bitte Fans, die Kompatibi...