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

Chroot „Gefängnis“ – Was ist das und wie benutzt man es?

Ich habe viel über das Chroot-Gefängnis unter Linux gehört/gelesen, aber noch nie benutzt (ich benutze Fedora täglich), also was ist ein Chroot-Gefängnis? Wann und warum kann ich es verwenden/nicht verwenden und gibt es noch etwas, das ich wissen sollte? Wie würde ich vorgehen, um eine zu erstellen?

Akzeptierte Antwort:

Ein Chroot-Gefängnis ist eine Möglichkeit, einen Prozess und seine untergeordneten Prozesse vom Rest des Systems zu isolieren. Es sollte nur für Prozesse verwendet werden, die nicht als Root ausgeführt werden, da Root-Benutzer sehr leicht aus dem Gefängnis ausbrechen können.

Die Idee ist, dass Sie einen Verzeichnisbaum erstellen, in den Sie alle Systemdateien kopieren oder einbinden, die für die Ausführung eines Prozesses erforderlich sind. Sie verwenden dann chroot() Systemaufruf, um das Root-Verzeichnis so zu ändern, dass es sich an der Basis dieses neuen Baums befindet, und den Prozess zu starten, der in dieser Chroot-Umgebung ausgeführt wird. Da es nicht wirklich auf Pfade außerhalb des modifizierten Stammverzeichnisses verweisen kann, kann es an diesen Orten keine böswilligen Operationen (Lesen/Schreiben usw.) ausführen.

Unter Linux ist die Verwendung von Bind-Mounts eine großartige Möglichkeit, den Chroot-Baum zu füllen. Damit können Sie Ordner wie /lib einziehen und /usr/lib während /usr nicht hineingezogen wird , zum Beispiel. Binden Sie einfach die gewünschten Verzeichnisbäume an Verzeichnisse, die Sie im Jail-Verzeichnis erstellen.


Linux
  1. Was ist ein Chown-Befehl unter Linux und wie wird er verwendet?

  2. Was ist ein cURL-Befehl und wie wird er verwendet?

  3. Was ist und wie wird der Ordner public_ftp verwendet?

  4. So führen Sie DNS- und FTP-Dienste in einem Chroot-Gefängnis aus

  5. Was ist Build-Essential-Ubuntu, wie wird es installiert und verwendet?

Was ist Terraform und wie wird es auf AWS EC2 installiert und verwendet?

Was ist ein SSH-Befehl und wie wird SSH verwendet, um eine Verbindung zum Remote-Server herzustellen?

Was sind Firefox Multi-Account-Container? Warum und wie wird es verwendet?

Was ist EasyApache und wie verwende ich es?

Was ist Docker Compose und wie wird es verwendet?

Was ist PPA in Ubuntu Linux und wie verwende ich sie?