Tom: Lösung gefunden, aber noch nicht glücklich

Beitrag lesen

Hello,

es liegt an den Pfaden UND der fehlenden Kopie
Der Gefängnisinsasse muss ja das Executable innerhalb seines Gefängnisses liegen haben.

Zusätzlich habe ich übersehen, dass in der Dartei '/etc/ssh/sshd_config' der Pfad für das Subsystem noch auf '/usr/lib/ssh/sftp-server' gesetzt ist, da er da im ungepatchten ssh-Paket auch liegt.

Es musste also ersten dieser Pfad innerhalb des Gefängnisses angelegt werden

/home/chroot/usr/lib/ssh/sftp-server
  ------------|-----------------------

und dann darin ein Link auf die tatsächliche Lage des sftp-servers gesetzt werden, bzw dieser gleich in das Verzeichnis kopiert werden.

Das Verzeichnis, dass laut dieser Anleitung erzeugt wird, ist

/home/chroot/usr/libexec/openssh/
  ------------|--------------------

Der Link müsste aber lauten

ln -s /usr/libexec/openssh/sftp-server sftp-server

da er relativ zur virtual Root gesetzt werden muss.
Und das war mein Fehler.

Es wäre nun zu überlegen, ob man nun für die nicht gefangenen User auch das sftp-server Executable unter

/home/chroot/usr/lib/ssh/sftp-server

benutzt, damit es nur einmal auf der Platte liegt. Dan müsste im Verzeichnis

/usr/lib/ssh/

ein Link gelegt werden

ln -s /home/chroot/usr/lib/ssh/sftp-server sftp-server

da es keinen Zweck hätte, einfach den Pfad in der Konfiguration zu ändren. Der muss ja sowohl im Gefängnis relativ zur Virtual Root als auch außerhalb relativ zur Origin Root passen.

Soweit, so gut.

Es funktioniert jetzt einigermaßen zufriedenstellend.
Kleiner Wehrmutstropfen bei dieser Art, sich ein Chroot für ssh-Konsole UND sftp-server zu bauen ist, dass der User mit seinem sftp-Client noch in die virtuelle Root kommt und dadurch auch die Verzeichnisse der anderen User (namentlich) sehen könnte. Auslesen und Bentutzung kann man ihm mit den File-Rechten verbieten...

Ich muss also nochmal eine Nacht darüber schlafen...

Ein harzliches Glückauf

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de