Antworten:
SSH Unterstützt das native Chrooten eines SFTP-Benutzers. Sie müssen nur versorgen
ChrootDirectory
Starten Sie sshd in Ihrer sshd-Konfigurationsdatei neu.
Wenn Sie nur SFTP verwenden, müssen Sie nichts weiter tun. Leider funktioniert das bei scp nicht. Für die interaktive Shell müssen Sie Binärdateien und / dev-Knoten in die Chroot kopieren.
Eine Beispielkonfiguration für nur einen Benutzer, testuser:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
Ein paar Dinge, die Sie in der Manpage sshd_config beachten sollten:
Alle Komponenten des Pfadnamens müssen Root-Verzeichnisse sein, bei denen es sich nicht um solche handelt von jedem anderen Benutzer oder jeder anderen Gruppe beschreibbar. Nach der Chroot ändert sshd (8) das Arbeitsverzeichnis zum Ausgangsverzeichnis des Benutzers.
Suchen Sie in man sshd_config nach ChrootDirectory, um weitere Informationen zu erhalten.
Subsystem sftp /usr/lib/openssh/sftp-server
Zeile zu ändernSubsystem sftp internal-sftp -f AUTH -l VERBOSE
Match
Abschnitt.
Eine Chroot ist eine relativ einfache Methode. Da das Betriebssystem bereits über diese Sicherheitsfunktion verfügt, versuchen Daemon-Writer in der Regel nicht, sie erneut zu implementieren.
Rssh enthält eine Anleitung zum Einrichten eines Chroot-Gefängnisses. Es ist in der CHROOT
Datei in der Quelldistribution. Kurz gesagt, müssen Sie Folgendes haben:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
,/usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
), die sie verwenden, werden ebenfalls kopiert/etc/passwd
(möglicherweise keine Kopie, sondern vom Master abgeleitet)/dev/null
, /dev/tty
sowie eine /dev/log
Buchse für die Protokollierung (und Sie müssen Ihrem Syslog - Daemon sagen , auf diesem Sockel zu hören)Zusätzlicher Tipp, der nicht in der rssh-Dokumentation enthalten ist: Wenn Sie möchten, dass auf einige Dateien in einem chroot- Jail zugegriffen werden kann, können Sie mithilfe von bindfs oder Linux mount --bind
zusätzliche Verzeichnishierarchien von außerhalb des Jails erstellen . bindfs
Ermöglicht es dem erneut bereitgestellten Verzeichnis, restriktivere Berechtigungen zu haben, z. B. schreibgeschützt. (Es mount --bind
sei denn, Sie wenden einen Kernel-Patch an. Debian hat diesen Patch seit East Lenny hinzugefügt, aber die meisten anderen Distributionen haben ihn seit 2011 nicht mehr installiert.)
Möglicherweise möchten Sie scponly (oder in jüngerer Zeit rssh ) betrachten. Es handelt sich im Wesentlichen um eine Anmeldeshell, die nur zum Starten von scp oder des sftpd-Subsystems verwendet werden kann. In der scponlyc
Variante führt es eine Chroot durch, bevor das betreffende Subsystem aktiviert wird.