chrooting sftp ist eine Funktion, die vom OpenSSH-Paket in Linux bereitgestellt wird. Sie können eine Chroot-Umgebung einrichten, um unerwünschte Änderungen des Systems zu vermeiden, einschließlich Uploads an unerwünschten Orten, wenn Benutzer sftp verwenden. Wenn Sie sftp für einen bestimmten Benutzer oder alle Benutzer chrooten, können die Benutzer nur auf ihre Home-Verzeichnisse und Unterverzeichnisse darunter zugreifen.
Methode 1 (nativ durch openssh)
Ab der Version openssh-5.x kann sftp in ein bestimmtes Verzeichnis chrooten. Die folgenden Schritte könnten das native Openssh-Chroot für sftp implementieren.
1. Erstellen Sie das Jail-Verzeichnis.
# mkdir /chroot/home
2. Mounten Sie es wie folgt in /home:
# mount -o bind /home /chroot/home
3. Bearbeiten Sie /etc/ssh/sshd_config wie folgt:
# vi /etc/ssh/sshd_config ChrootDirectory /chroot Subsystem sftp internal-sftp
4. Starten Sie den sshd-Dienst neu:
# service sshd restartHinweis :Bitte stellen Sie sicher, dass das Jail-Verzeichnis Root-Besitzer sein sollte und nicht von anderen Benutzern oder Gruppen beschreibbar ist.
Methode 2 (durch Verwendung von pam_chroot)
1. Fügen Sie chroot zu /etc/pam.d/sshd hinzu Datei:
# vi /etc/pam.d/sshd session required pam_chroot.so
2. Ändern Sie /etc/security/chroot.conf um das Chroot-Verzeichnis einzubinden.
# vi /etc/security/chroot.conf user /chroot_dir
3. Ändern Sie /etc/ssh/ssh_config
# vi /etc/ssh/ssh_config Subsystem sftp /usr/libexec/openssh/sftp-server
4. Starten Sie sshd neu, um die neue Konfiguration anzuwenden:
# service sshd restart