Debian: chrooted-Shell mit Jailkit

Möchte man anderen Benutzern Zugriff auf seinen Server geben, ist es durchaus sinnvoll, diese über einen so genannten 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 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:

Quellcode

  1. wget https://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
  2. tar xf jailkit-2.19.tar.gz
  3. cd jailkit-2.19
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:

Quellcode

  1. ./configure
  2. make
  3. checkinstall
Konfiguration von Jailkit
Nun geht es an die Konfiguration. Hierzu muss man praktisch die grundlegenden Programme in das Jail-Verzeichnis kopieren:

Quellcode

  1. jk_init -v /var/jail basicshell
  2. jk_init -v /var/jail editors
  3. jk_init -v /var/jail extendedshell
  4. jk_init -v /var/jail netutils
  5. jk_init -v /var/jail ssh
  6. jk_init -v /var/jail sftp
  7. jk_init -v /var/jail jk_lsh
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.
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

852 mal gelesen

Kommentare 5

  • Black Rider -

    Sind die Verzeichnisse auch alle korrekt angegeben?
    Ist irgendwo ein Fehler erschienen?

  • mineyannik -

    Hallo,

    ich habe die Anleitung befolgt, bekomme aber immer beim einloggen folgenden Fehler:

    No directory, logging in with HOME=/

    Ich hoffe du kannst mir helfen.

  • CIA JOE -

    Ok. War nur ein Cache Problem.

  • Black Rider -

    Habe ich doch mehrfach, nur eben nicht bei mehrzeiligen Inhalten. ist ein Inline-Element, d.h. gar nicht dazu geeignet, mehrzeilig Inhalte dementsprechend darzustellen. :P

  • CIA JOE -

    Hätte jetzt erwartet, du nutzt den [tt]BB-Code

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen