Benutzer

Falls noch nicht vorhanden, richten Sie nun die Benutzer ein, die sich im Jail anmelden dürfen. Im Beispielfall die Benutzer »max« und »moritz« . Die Benutzer müssen über ein Passwort verfügen:

useradd -m max
useradd -m moritz
passwd max
passwd moritz

Bevor Sie die Benutzer hinter Gitter bringen, sei angemerkt, dass nicht nur die Anmeldung in den Jail verschoben wird, sondern ebenso das Home-Verzeichnis. Abschließend passt Jailkit noch die Rechte an, damit die Benutzer ihre Dateien auch bearbeiten dürfen.

jk_jailuser -m -j /srv/jail max
jk_jailuser -m -j /srv/jail moritz

Der Befehl »jk_jailuser« verschiebt wegen »-m« die Home-Verzeichnisse, »-j« zeigt wieder auf den Jail und zu guter letzt folgt der entsprechende Benutzer.

Ein Blick in die lokale Passwort-Datei »/etc/passwd« zeigt die Änderungen, die Jailkit durchgeführt hat:

max:x:1016:1016::/srv/jail/./home/max:↩
/usr/sbin/jk_chrootsh
moritz:x:1017:1017::/srv/jail/./home/moritz:↩
/usr/sbin/jk_chrootsh

Hier wird deutlich, daß die Benutzer direkt in die Chroot-Umgebung umgeleitet werden. In der Passwort-Datei innerhalb des Jails sieht das ganze dann wie folgt aus:

max:x:1003:1003::/home/max:/usr/sbin/jk_lsh
moritz:x:1004:1004::/home/moritz:/usr/sbin/↩
jk_lsh

Damit sich der Benutzer »max« auch in der Chroot-Umgebung via SSH anmelden kann, muss die Shell geändert werden, zum Beispiel »/bin/bash« . Bei der standardmäßig gesetzten »jk_lsh« handelt es sich um eine nicht interaktive Shell, welche lediglich zu Protokollzwecken und als Sprungbrett dient. Falls gewünscht, können Sie in der »/srv/jail/etc/jailkit/jk_lsh.ini« entsprechend Nutzern oder Gruppen Freigaben einrichten. Soll zum Beispiel der »moritz« den Jail nur als SFTP-Gateway benutzen dürfen, so würde die »jk_lsh.ini« innerhalb des Jails wie folgt aussehen:

[moritz]
paths= /usr/bin/
executables= /usr/bin/sftp

Nun kann der Nutzer »moritz« lediglich über ein Terminal den Befehl »sftp« starten:

ssh -t moritz@sftp-gateway.example.com ↩
sftp secure.example.com

Selbstverständlich landen alle Login-Versuche in der lokalen Log-Datei »auth.log« , ebenfalls die Sprungbetter – »jk_lsh« sei Dank.

Modifikationen, Updates und Prüfungen

Wie bereits erwähnt, können Sie prinzipiell alle Programme des lokalen Systems in die Jails installieren. Jailkit sieht hierfür »jk_init« vor, das die Informationen der Programme (Pfade, Abhängigkeiten und so weiter) aus der Konfigurationsdatei »/etc/jailkit/jk_init.ini« bezieht und entsprechend installiert. Selbstverständlich sind nicht alle Programme hinterlegt. Wenn Sie zum Beispiel einen SFTP-client im Jail zur Verfügung stellen wollen, müssen Sie die jk_init.ini entsprechend erweitern (siehe Kasten "Erweiterungen").

Erweiterungen

Um weitere Programme für unsere Jails zur Verfügung stellen zu können, müssen diese über die »/etc/jailkit/jk_init.ini« bekannt gemacht werden. Hier ein Beispiel für einen SFTP-Client:

[sftp-client]
comment = sftp-client
paths = /usr/bin/sftp
includesections = netbasics, uidbasics
devices = /dev/urandom, /dev/null

Nun kann mittels »jk_init -j /srv/jail sftp-client« das Programm jedem Jail hinzufügt werden.

Um Updates, die eventuell zwischenzeitlich auf dem Host-System eingespielt wurden, auch innerhalb des Jails anzuwenden, stellt Jailkit das Skript »jk_update« zur Verfügung. Dieses prüft auf Neuerungen und spielt sie gegebenenfalls ein, sodass der Jail mit dem lokalen System auf dem gleichen Stand bleibt. Mittels »jk_check« stößt der Administrator eine Prüfung aller angelegten Jails an. Alle Unstimmigkeiten werden gnadenlos protokolliert.

Auf der Internetseite des Programmierers stehen noch vielen weitere Anwendungsmöglichkeiten und -beispiele zur Verfügung. Jailkit stellt eine solide Struktur zur Absicherung unserer Systeme da – selbst Ede kann sich nur noch die Zähne ausbeißen.

comments powered by Disqus