Sicherheit

So richten Sie Linux Chroot Jails ein

So richten Sie Linux Chroot Jails ein
Insbesondere für kritische Dienste benötigen Linux-Systeme Expertenwissen, um mit ihnen zu arbeiten, und grundlegende Sicherheitsmaßnahmen.

Leider finden Sicherheitslücken auch nach Ergreifen entscheidender Sicherheitsmaßnahmen immer noch ihren Weg in sichere Systeme. Eine Möglichkeit, Ihr System zu verwalten und zu schützen, besteht darin, den möglichen Schaden nach einem Angriff zu begrenzen.

In diesem Tutorial besprechen wir den Prozess der Verwendung von chroot-Jail zur Verwaltung von Systemschäden im Falle eines Angriffs. Wir werden uns ansehen, wie man Prozesse und Unterprozesse mit falschen Root-Rechten auf eine bestimmte Umgebung isolieren kann. Dadurch wird der Vorgang auf ein bestimmtes Verzeichnis beschränkt und der Zugriff auf andere Systembereiche verweigert.

Eine kurze Einführung in das Chroot-Gefängnis

Ein Chroot-Jail ist eine Methode, um Prozesse und ihre Unterprozesse mit falschen Root-Rechten vom Hauptsystem zu isolieren.

Wie bereits erwähnt, begrenzt die Isolierung eines bestimmten Prozesses mit gefälschten Root-Rechten den Schaden im Falle eines böswilligen Angriffs. Chroot-Dienste sind auf die Verzeichnisse und Dateien in ihren Verzeichnissen beschränkt und nach Dienstneustart nicht persistent.

Warum das Chroot-Gefängnis verwenden?

Der Hauptzweck des chroot-Gefängnisses ist eine Sicherheitsmaßnahme. Chroot ist auch nützlich, wenn Sie verlorene Passwörter wiederherstellen möchten, indem Sie Geräte von Live-Medien mounten.

Es gibt verschiedene Vor- und Nachteile der Einstellung des Chroot-Gefängnisses. Diese schließen ein:

Vorteile

Nachteile

So erstellen Sie ein einfaches Chroot-Gefängnis

In diesem Prozess erstellen wir ein einfaches Chroot-Gefängnis mit 3 Befehlen, die auf diesen Ordner beschränkt sind. Dies wird Ihnen helfen zu veranschaulichen, wie Sie ein Gefängnis erstellen und verschiedene Befehle zuweisen.

Beginnen Sie mit dem Erstellen eines Hauptordners. Sie können sich diesen Ordner als den / Ordner im Hauptsystem vorstellen. Der Name des Ordners kann alles sein. In unserem Fall nennen wir es /chrootjail

sudo mkdir /chrootjail

Wir werden dieses Verzeichnis als gefälschtes Root verwenden, das die Befehle enthält, die wir ihm zuweisen werden. Mit den Befehlen, die wir verwenden werden, benötigen wir das bin-Verzeichnis (enthält die ausführbaren Befehlsdateien) und die usw., Verzeichnis (enthält Konfigurationsdateien für die Befehle).

Erstellen Sie im Ordner /chrootjail diese beiden Ordner:

sudo mkdir /chrootjail/etc,bin

Der nächste Schritt besteht darin, Verzeichnisse für dynamisch verknüpfte Bibliotheken für die Befehle zu erstellen, die wir in die Jail aufnehmen möchten. In diesem Beispiel verwenden wir die Befehle bash, ls und grep.

Verwenden Sie den Befehl ldd, um die Abhängigkeiten dieser Befehle aufzulisten, wie unten gezeigt:

sudo ldd /bin/bash /bin/ls /bin/grep

Wenn Sie sich nicht im bin-Ordner befinden, müssen Sie den vollständigen Pfad für die Befehle übergeben, die Sie verwenden möchten. Zum Beispiel ldd /bin/bash oder ldd /bin/grep

Von der obigen ldd-Ausgabe benötigen wir die Verzeichnisse lib64 und /lib/x86_64-linux-gnu. Erstellen Sie im Jail-Verzeichnis diese Ordner.

sudo mkdir -p /chrootjaillib/x86_64-linux-gnu, lib64

Sobald wir die dynamischen Bibliotheksverzeichnisse erstellt haben, können wir sie wie unten gezeigt in einem Baum auflisten:

Im weiteren Verlauf werden Sie sich ein klares Bild davon machen, was ein Chroot-Gefängnis bedeutet.

Wir erstellen eine Umgebung ähnlich einem normalen Stammverzeichnis eines Linux-Systems. Der Unterschied besteht darin, dass in dieser Umgebung nur bestimmte Befehle erlaubt sind und der Zugriff eingeschränkt ist.

Jetzt haben wir die Tonne erstellt. usw., lib und lib64 können wir die erforderlichen Dateien in ihren jeweiligen Verzeichnissen hinzufügen.

Beginnen wir mit den Binärdateien.

sudo cp /bin/bash /chrootjail/bin && sudo cp /bin/ls /chrootjail/bin && sudo cp /bin/grep /chrootjail/bin

Nachdem wir die Binärdateien für die benötigten Befehle kopiert haben, benötigen wir die Bibliotheken für jeden Befehl. Sie können den Befehl ldd verwenden, um die zu kopierenden Dateien anzuzeigen.

Beginnen wir mit bash. Für bash benötigen wir die folgenden Bibliotheken:

/lib/x86_64-linux-gnu/libtinfo.so.6
/lib/x86_64-linux-gnu/libdl.so.2
/lib/x86_64-linux-gnu/libc.so.6
/lib64/ld-linux-x86-64.so.2

Anstatt alle diese Dateien einzeln zu kopieren, können wir eine einfache for-Schleife verwenden, um jede Bibliothek in allen Bibliotheken nach /chrootjail/lib/x86_64-linux-gnu . zu kopieren

Lassen Sie uns diesen Vorgang sowohl für den ls- als auch für den grep-Befehl wiederholen:

Für ls-Befehl:

Für grep-Befehl:

Als nächstes haben wir im lib64-Verzeichnis eine gemeinsame Bibliothek für alle Binärdateien. Wir können es einfach mit einem einfachen cp-Befehl kopieren:

Als nächstes bearbeiten wir die Haupt-Bash-Anmeldedatei (befindet sich in /etc/bash.bashrc in Debian), damit wir die Bash-Eingabeaufforderung nach unseren Wünschen anpassen können. Verwenden eines einfachen Echo- und Abschlagbefehls wie gezeigt:

sudo echo 'PS1="CHROOTJAIL #"' | sudo tee /chrootjail/etc/bash.bashrc

Sobald wir alle oben genannten Schritte abgeschlossen haben, können wir uns wie gezeigt mit dem chroot-Befehl bei der Jail-Umgebung anmelden.

sudo chroot /chrootjail /bin/bash

Sie erhalten Root-Rechte mit der Eingabeaufforderung, die derjenigen ähnelt, die im obigen Befehl echo und tee erstellt wurde created.

Sobald Sie sich angemeldet haben, sehen Sie, dass Sie nur auf die Befehle zugreifen können, die Sie beim Erstellen des Gefängnisses eingegeben haben. Wenn Sie weitere Befehle benötigen, müssen Sie diese manuell hinzufügen.

HINWEIS: Da Sie die Bash-Shell eingebunden haben, haben Sie Zugriff auf alle integrierten Bash-Befehle. Damit können Sie das Gefängnis mit dem Exit-Befehl verlassen.

Fazit

In diesem Tutorial wurde beschrieben, was Chroot-Jail ist und wie wir es verwenden können, um eine vom Hauptsystem isolierte Umgebung zu erstellen. Sie können die im Handbuch beschriebenen Techniken verwenden, um isolierte Umgebungen für kritische Dienste zu erstellen.

Um das Gelernte zu üben, versuchen Sie, ein Apache2-Gefängnis zu erstellen.

HINWEIS: Erstellen Sie zunächst ein Root-Verzeichnis, fügen Sie die Konfigurationsdateien (etc/apache2) hinzu, fügen Sie das Dokumenten-Root (/var/www/html) hinzu, fügen Sie die Binärdatei (/usr/sbin/apache2) hinzu und fügen Sie schließlich die erforderlichen Bibliotheken (ldd / usr/sbin/apache2)

Weisen Sie Ihre Maustasten mit der X-Mouse Button Control für verschiedene Software unterschiedlich zu
Vielleicht benötigen Sie ein Tool, mit dem sich die Steuerung Ihrer Maus bei jeder von Ihnen verwendeten Anwendung ändern kann. In diesem Fall können ...
Microsoft Sculpt Touch Wireless-Maus Bewertung
Ich habe vor kurzem gelesen, dass Microsoft Sculpt Touch kabellose Maus und beschloss, sie zu kaufen. Nachdem ich es eine Weile benutzt hatte, beschlo...
AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...