Nach einem langen Nachmittag und etlichen Versuchen hatte ich endlich herrausgefunden wie man unter Debian Etch den chroot Modus bei SCPonly zum laufen bekommt. Bei der installation mit
aptitude install scponly
entsteht das 1. Problem: Das SetUid Bit wird nicht auf die Datei /usr/sbin/scponlyc gesetzt. Dies lässt sich mit dpkg-reconfigure scponly
dauerhaft setzen. Dann kommt man zu Problem Nr. 2: scponlyc ist nicht als gültige Shell eingetragen. Dies löst man ganz einfach mit einem echo "/usr/sbin/scponlyc" >> /etc/shells
Anschließend kann man die Datei /usr/share/doc/scponly/setup_chroot/setup_chroot.sh.gz entpacken: gunzip /usr/share/doc/scponly/setup_chroot/setup_chroot.sh.gz
und ausführen. Es wird eine chroot Umgebung für den angegebenen Benutzer erstellt. Allerdings kann man sich immer noch nicht mit Tools wie WinSCP anmelden (Fehlermeldung: „Cannot initialize SFTP protocol. Is the host running a SFTP server?“). Und hier kommt die Lösung: Es gibt in der chroot Umgebung kein /dev/null Device. Um das Device anzulegen wechselt man zuerst mittels cd /home/
in das Verzeichnis des Benutzers. Anschließend legt man mit mkdir dev
das Verzeichnis an und wechselt mit cd dev
in selbiges. Mit dem Befehl mknod -m 666 null c 1 3
legt man das null Device an. Damit klappts auch mit Debian und SCPonly in einer chroot Umgebung 🙂
„scponlyc ist nicht als gültige Shell eingetragen. Dies löst man ganz einfach mit einem echo ‚/usr/sbin/scponlyc‘ >> /etc/shells“
Dieser Schritt entfällt auf Debian Lenny anscheinend.
Offensichtlich wird scponlyc schon bei der Installation von scponly in /etc/shells eingetragen.
Ich bekomme bei Aufruf das setup_chroot.sh Skriptes leider die Meldung:
/bin/grep: config.h: Datei oder Verzeichnis nicht gefunden
your scponly build is not configured for chrooted operation.
please reconfigure as follows, then rebuild and reinstall:
./configure –enable-chrooted-binary (… other options)
—
Ich benutze Lenny…
Das Problem hatte ich auch.
Am besten ist es, du baust scponly aus den Quellen und gibst der Routine noch paar Optionen mit.
Außerdem kann man auch unter Debian Lenny einfach make jail benutzen, statt das oben genannte Script.
Es gibt ein nettes kleines Howto für diese Sache, das für Lenny funktioniert: https://www.unixboard.de/vb3/showpost.php?p=338485&postcount=4