Wie kann ich SSH-Verbindungen chrooten?

Wie kann ich SSH-Verbindungen chrooten?

Ich möchte für die meisten (nicht alle) Benutzer, die sich über SSH anmelden, ein Chroot-Jail einrichten. Ich habe gehört, dass dies mit den neuesten Versionen von OpenSSH möglich ist, konnte aber nicht herausfinden, wie das geht. In den Anleitungen ist immer vom Patchen einer alten Version die Rede, und der Patch ist nicht mehr verfügbar.

Ich verwende Debian Etch.

Antwort1

Ich verwende zu diesem Zweck RSSH.

Sie haben Recht, es gibt eine neue Möglichkeit, dies zu tun, und es handelt sich dabei um eine integrierte Funktion der aktuellen SSH-Versionen.

Hier ist ein Artikel überUntödlich.

Antwort2

Ich musste nur einen Benutzer einrichten, der sich per SSH anmelden kann, und der sich per SSH bei einem anderen Server anmelden kann (der nicht direkt mit der Außenwelt verbunden ist). Die Links von cstamas und ericmayo waren ein guter Anfang.

Grundsätzlich habe ich Folgendes zu /etc/ssh/sshd_config hinzugefügt:

Übereinstimmung mit Benutzer myuser
  Chroot-Verzeichnis /chroot/meinBenutzer

Von da an musste ich nur noch die Chroot-Umgebung unter /chroot/myuser erstellen. Ich habe /bin/bash und /usr/bin/ssh und die benötigten gemeinsam genutzten Bibliotheken kopiert (ldd zeigt diese an). Für eine größere Umgebung wäre es wahrscheinlich sinnvoll, statisch verknüpfte Versionen der benötigten ausführbaren Dateien zu kompilieren.

Bash funktionierte sofort. Damit SSH funktionierte, musste ich auch das .ssh-Verzeichnis erstellen, /etc/passwd, /etc/nsswitch.conf und /lib/libnss_* kopieren und /dev/null, /dev/tty und /dev/urandom über mknod erstellen.

Antwort3

mkdir /chroot
mkdir -p /chroot/home/<user_name>

mkdir /chroot/home/<user-name>/bin  
cp -pr /bin/bash /chroot/home/<user_name>/bin/.  
cp -pr /bin/ls /chroot/home/<user_name>/bin/.  
cp -pr /lib64 /chroot/home/<user_name>/.

Sie müssen die Datei /etc/sshd_config bearbeiten und hinzufügen

ChrootDirectory /chroot/%h

Und starten Sie den SSHD-Daemon neu.

Alles in allem bin ich ehrlich gesagt der Meinung, dass SFTP die bessere Option ist.

Außerdem habe ich diese URL gefunden, falls sie hilfreich ist.

http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

Antwort4

Soweit ich weiß, erlauben neue Versionen von OpenSSH Chroot nur für SFTP-Verbindungen. Ich habe es versucht und es funktioniert. Für SSH ist jedoch der Chrootssh-Patch die verfügbare Lösung. Ich habe die SourceForge-Site durchsucht und es gibt keine Dateien, daher denke ich, dass es nicht mehr verfügbar ist.

Für Debian Etch gibt es hier einige Dateien:http://debian.home-dn.net/etch/ssh/

Es gibt hier noch andere Lösungen:http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.en.html, einschließlich chrootssh.

verwandte Informationen