Prüfen, ob ein Prozess gechrootet ist

23.10.2014 yahe administration legacy linux security

Ich bin derzeit dabei, Dovecot und Postfix einzurichten und sehe mir dabei auch an, wie die einzelnen Teile ordentlich gechrootet werden können. Beim Chrooten läuft man jedoch immer wieder in das Problem, nicht genau zu wissen, ob das, was man da gerade fabriziert hat, wirklich funktioniert. Wie ich nun lernen durfte, gibt es ein Hilfsmittel, mit denen man die Funktion des Chrootings kontrollieren kann.

Gemeint ist der "/proc/"-Ordner im System. Dort wird für alle laufenden Prozesse ein Unterordner angelegt, der entsprechend der zugehörigen Prozess-ID benannt ist. Dieser Ordner ist durchaus interessant, so entspricht beispielsweise der Besitzer und die Gruppe des Prozessordners der UID und der GID des Prozesses.

In dem Ordner befinden sich drei Symlinks, "cwd", "exe" und "root". Ersterer zeigt auf das aktuelle Arbeitsverzeichnis des Prozesses, zweiterer zeigt auf den Pfad der ausgeführten Datei und letzerer verweist auf das Verzeichnis, in dem der Prozess gechrootet wurde. Es gibt auch ein paar spannende Textdateien, z.B. "cmdline", "environ" und "maps", wobei erstere die Aufrufparameter des Prozesses enthält, zweitere die Umgebungsvariablen, mit denen der Prozess arbeitet und letztere sämtliche Libraries, die vom Prozess angebunden sind. Mit den passenden Rechten kann man sich sogar im "fd/"-Unterordner umsehen. Dort wird auf alle Dateien verwiesen, die von dem Prozess verwendet werden.

Wenn man nun also wissen will, ob das eingerichtete Chrooting wirklich funktioniert, kann man sich die notwendige Prozess-ID besorgen und sich anschließend mit folgendem Befehl das Chroot-Verzeichnis anzeigen lassen:

sudo ls -la /proc/<Prozess-ID>/root

Search

Categories

administration (45)
arduino (12)
calcpw (3)
code (38)
hardware (20)
java (2)
legacy (113)
linux (31)
publicity (8)
raspberry (3)
review (2)
security (65)
thoughts (22)
update (11)
windows (17)
wordpress (19)