Debian: chrooted-Shell mit Jailkit

Möchte man anderen Benutzern Zugriff auf seinen Server geben, ist es durchaus sinnvoll, diese über einen sogenannten chroot auf einen bestimmten Bereich einzuschränken. Dies dient der Sicherheit des Servers, da sie ansonsten viele Konfigurationsdateien anschauen könnten und so genau wüssten, wo es noch ein Schlupfloch gäbe, sollte eines vorhanden sein.

Über einen chroot dagegen sind diese Benutzer auf ein bestimmtes Verzeichnis beschränkt und können sich nur dort mehr oder weniger frei bewegen. Das hängt auch von der jeweiligen Konfiguration des chroots ab.

Jailkit ist ein Programm, welches unter Debian einen chroot auf relativ einfache Weise zulässt.

Vorbereitung

Zuerst einmal muss ein Benutzer angelegt werden:
adduser test

Dann muss das Verzeichnis angegeben werden, unter welchem der „Jail“ eingerichtet werden soll, z. B.:
mkdir /var/jail

Installation von Jailkit

Zuerst einmal muss man Jailkit herunterladen. Da es leider nicht über einen Paketserver möglich ist, muss das manuell von der Hersteller-Webseite geschehen:
olivier.sessink.nl/jailkit/

Danach muss es natürlich entpackt werden und man muss in das erstellte Verzeichnis wechseln, was zusammen folgendermaßen aussehen kann:

wget https://olivier.sessink.nl/jailkit/jailkit-2.23.tar.gz
tar xf jailkit-2.23.tar.gz
cd jailkit-2.23Code-Sprache: JavaScript (javascript)

Nun geht es an’s installieren. Hierfür lohnt es sich, checkinstall zu nutzen, damit man das Paket später wieder normal über die Paketverwaltung entfernen kann:

./configure
make
checkinstallCode-Sprache: Bash (bash)

Konfiguration von Jailkit

Nun geht es an die Konfiguration. Hierzu muss man praktisch die grundlegenden Programme in das Jail-Verzeichnis kopieren:

jk_init -v /var/jail basicshell
jk_init -v /var/jail editors
jk_init -v /var/jail extendedshell
jk_init -v /var/jail netutils
jk_init -v /var/jail ssh
jk_init -v /var/jail sftp
jk_init -v /var/jail jk_lshCode-Sprache: JavaScript (javascript)

Dann kann man dem im Voraus erstellten Benutzer diesen chroot zuweisen:
jk_jailuser -m -j /var/jail test
Hierbei sollte auch das originale Home-Verzeichnis des Benutzers erfolgreich kopiert worden sein. Falls dem nicht der Fall ist, muss man das noch manuell nachholen:
mv /home/test /var/jail/home/

In der Datei /etc/passwd sollte nun die Zeile für den Benutzer „test“ folgendermaßen aussehen:
test:x:1001:1001::/var/jail/./home/test:/usr/sbin/jk_chrootsh

Nun sollte sich der Benutzer auch schon anmelden und die chrooted-Shell nutzen können. Eventuelle Berechtigungsprobleme werden in der Datei /var/log/auth.log festgehalten.

Es kann durchaus sein, dass der Benutzer zwar grundsätzlich eine Verbindung öffnen kann, allerdings keine Konsole sieht. Dann muss man die Datei /var/jail/etc/passwd anpassen.
Hierbei muss dann die Zeile test:x:1001:1001::/home/test:/bin/jk_lsh in test:x:1001:1001::/home/test:/bin/bash geändert werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert