Jailkit: Rechte für SSH- und SFTP-Benutzer einschränken.

Eingesperrt

Einen SSH- oder SFTP-Zugang per Chroot einzuschränken, ist mit Bordmitteln ziemlich schwierig. Ein Jailkit hilft dem Administrator, die Rechte des Benutzers zu regeln. Wie das geht, verrät dieser Artikel.

Was nützt eine verschlüsselte Datenübertragung per SSH, wenn der Benutzer nur ein schwaches Zugangspasswort gewählt hat? Ohne weitere Absicherung wird ein Server so trotz Secure Shell leicht das Ziel von Brute-Force-Attacken. Nicht nur der Zugriff von außen ist gefährlich. Zwar können viele Dienste können über Proxys internen Nutzern zur Verfügung gestellt und deshalb die direkte Verbindung am entsprechenden Port gesperrt werden. Aber es gibt immer noch Ausnahmen, für die keine Proxy-Lösung existiert: SFTP, direkte Konsolenzugriffe (»ssh« , »telnet« ) und so weiter. Die Lösung dafür lautet meistens NAT, das den direkten Zugriff der Nutzer auf die große weite Internet-Welt ermöglicht. Mehr Kontrolle bringt ein Gateway, das Zugriffe nur in einer Chroot-Umgebung zulässt.

Die Einrichtung einer Chroot-Umgebung für Serverdienste oder Zugriffe ist mit reichlich Aufwand verbunden. Hier hilft Jailkit, ein Open-Source-Projekt von Olivier Sessink, das eine intelligente Verknüpfung von Skripten zur Erstellung und für den Betrieb von Chroot-Umgebungen an die Hand gibt.

Installation

Für die Testumgebung kommt die aktuelle Version 2.7 zum Einsatz, die unter [1] zum Download bereit steht. Da Jailkit zum großen Teil in C und Python programmiert ist, benötigt es lediglich Libc, Libpthreads und Python – welche auf nahezu jedem Linuxsystem vorhanden sind – sowie einen C-Compiler. Entsprechend einfach gestaltet sich die Installation nach dem Entpacken des Tar-Files:

./configure
make
make install

Die im Paket enthaltene Datei »INSTALL.txt« gibt uns noch nützliche Informationen, wie wir Jailkit als Daemon betreiben können (siehe Kasten "Daemon").

Daemon

Die Init-Skripte sind im Paket enthalten. Sie müssen nur noch den richtigen Ort kopieren und die Rechte setzen:

cp extra/jailkit /etc/init.d/jailkit    # Kopieren des init-Skriptes
chmod a+x /etc/init.d/jailkit           # Korrektur der Rechte
update-rc.d jailkit defaults            # Installation der init-Skripte                                                         # (unter Debian/Ubuntu)

Erstellung eines Jails

Nach erfolgreicher Installation legen Sie nun den ersten Knast an. Jailkit ist modular aufgebaut, das heißt neben dem reinem Jail können Sie beliebige Programme hinzufügen – eine genauere Erklärung finden Sie im Artikel weiter unten. Dies ermöglicht es auch zu einem späteren Zeitpunkt weitere Programme zur Verfügung zu stellen, ohne daß ein neuer Jail erzeugt werden muss.

Um einen Jail einzurichten, verwenden Sie »jk_init« mit folgenden Parametern:

jk_init -v -j /srv/jail jk_lsh basicshell

Der Befehl »jk_init« erfährt über den Parameter »-j« den Standort des Jails, die Option »-v« lässt Jailkit alles anzeigen, was es so treibt. Anschließend folgen die Programme, welche innerhalb des Jails zur Verfügung stehen sollen. Das Programm »jk_lsh« stellt die zentrale Shell des Jails dar – ohne es ist kein Login auf dem Jail möglich. Hinter »basicshell« verbirgt sich eine abgespeckte Bash-Shell mit den nötigsten Programmen (»cd« , »mv« , »cp« , »pwd« und so weiter).

Falls das Verzeichnis nicht existiert, legt Jailkit es an. Anschließend erstellen Sie ein Temp-Verzeichnis für den Jail.

mkdir /srv/jail/tmp
chmod a+rwx /srv/jail/tmp

Denken Sie daran: Ohne »jk_lsh« und einem Tmp-Verzeichnis im Chroot ist kein Login möglich!

comments powered by Disqus

Artikel der Woche

VLAN-Grundlagen

Oft reicht ein kleiner Fehler, um ein ganzes Netzwerk lahmzulegen. Ein unbedacht installierter DHCP-Server streut plötzlich falsche Adressen, und der Verkehr kommt zum Erliegen. Virtuelle Netzwerke (VLANs) schützen vor solchen und ähnlichen Katastrophen. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Ausgabe /2014

Was halten Sie von Zertifizierungen, die Fachkenntnisse und Fertigkeiten nachweisen?

  • Sie sind in der Praxis nutzlos
  • Sind für uns ein wichtiges Einstellungskriterium
  • Liefern einen Anhaltspunkt für die Qualifikation