SSH/SFTP im CHROOT-Gefängnis einsperren
Um einen sicheren SSH- oder SFTP-Zugang zu einem Server herzustellen, lohnt es sich manchmal den verbindenden Benutzer in eine sogenannte CHROOT-Umgebung einzusperren. Hierfür gibt es eine Vielzahl von Möglichkeiten, die im folgenden einmal aufgelistet sind. Vor allem in Hinsicht als sichere FTP-Alternative sollte man sich überlegen, ob man nicht eine der untenstehenden Möglichkeit in Betracht zieht.
1. ChrootDirectory-Option ab OpenSSH-Version 4.8p1
Ab dieser Version gibt es eine Option "ChrootDirectory" die es einem erlaubt, den Benutzer sauber in seinem chroot-Verzeichnis einzusperren. Allerdings muss man beachten, dass unterhalb dieses Verzeichnisses alle benötigten Dateien für den User vorhanden sein müssen. Also einige Binaries aus "bin", ein paar Devices aus "dev", etc.
Hierzu auch die Man-Page von OpenSSH:
http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config
Changelog zu OpenSSH 4.8:
http://www.openssh.com/txt/release-4.8
Und noch eine Anleitung wie man das Ganze unter Debian umsetzt:
http://www.debian-administration.org/articles/590
Und hier nochmal eine Kurzanleitung:
http://openbsd.maroufi.net/sshchroot.shtml
2. Frühere OpenSSH-Versionen und Patch-Möglichkeiten
Für frühere OpenSSH-Versionen hatte man die Möglichkeit spezielle gepatchte SSH-Server zu verwenden, so dass ein chroot möglich war. Funktioniert hat dieser Patch ab Version 3.1p1. (siehe auch http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=139047 und die Debian-Anleitung G.1.2 in http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.de.html). Letztendlich sollte man aber lieber Variante 1 nehmen und sich das neueste Release des OpenSSH-Servers besorgen, auch wenn er momentan noch nicht in Debian Etch als Stable enthalten ist. Die Problematik, dass man eine saubere CHROOT-Umgebung schaffen muss, ist hier natürlich wie bei Variante 1 gegeben.
Projektseite des nun veralteten gepatchten OpenSSH-Servers:
http://chrootssh.sourceforge.net/index.php
Eine Reihe von Anleitungen zu dem gepatchten SSH-Server:
http://hp.kairaven.de/scpsftp/ssh-rssh-sftp.html#a3
http://howtoforge.com/chroot_ssh_sftp_debian_etch
http://www.howtoforge.com/chrooted_ssh_howto_debian
3. libpam-chroot benutzen
Wer versuchen will ein chroot per libpam-chroot durchzuführen, sollte sich unter G.1.1 in folgender Anleitung einmal umsehen: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.de.html
4. Das Projekt MySecureShell
Eine andere alternative ist das Projekt "MySecureShell". Hauptsächliche Verwendung findet dieses Programm als SFTP-Server der leicht zu konfigurieren und einzustellen ist. Unter Debian ist dies tatsächlich sehr leicht und es lässt sich auch recht einfach eine Chroot-Umgebung realisieren, wie man es von einem FTP-Server kennt.
Projektseite von MySecureShell:
http://mysecureshell.sourceforge.net/ (Vorsicht die Deutsche Seite wurde sehr schlecht übersetzt)
Und hier noch eine Anleitung für Debian Etch:
http://www.cplinux.de/debian-chrooted-sftp-server.view.html (Deutsch)
Eine andere Anleitung für Debian Etch:
http://howtoforge.com/mysecureshell_sftp_debian_etch (Englisch)
5. Den SSH-Server in ein CHROOT-Gefängnis sperren
Wenn man natürlich den ganzen SSH-Daemon in ein Chroot-Gefängnis sperrt, dann hat man noch ganz andere Möglichkeiten. Beschrieben wird das Ganze unter G.2 in folgender Anleitung:
http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.de.html
Appendix
Eine Seite mit nützlichen Infos zum Erstellen eine sauberen chroot-Umgebung findet man hier:
http://wiki.ubuntuusers.de/chroot?highlight=%28chroot%29
Natürlich kann man gerne auch "makejail" für manche Möglichkeiten verwenden:
http://www.floc.net/makejail/
0 TrackBacks
Folgende Einträge anderer Blogs beziehen sich auf den Eintrag SSH/SFTP im CHROOT-Gefängnis einsperren
TrackBack-URL dieses Eintrags: http://www.undertec.de/mt-cgi/mt-tb.cgi/86


Jetzt kommentieren