Sftp mit chroot-jail
Achtung: |
Diese Seite befindet sich gerade im Aufbau!! Solange dieser Warntext sichtbar ist, gilt diese Seite als nicht verwendbar! |
Ich habe mich dabei grob an http://www.debian-administration.org/articles/590 gehalten, allerdings ein paar Änderungen vorgenommen.
Grobes Ziel: Anlegen eines Verzeichnisses, auf das per SFTP über einen separaten Nutzer zugegriffen werden kann, der keine weiteren Privilegien im System hat.
Benutzername: ftpuser
Benutzergruppe: sftponly
Zielverzeichnis: /home/ftpuser
Inhaltsverzeichnis
Gewünschten User anlegen
Um das Ganze übersichtlich zu halten und für die Hauptnutzer einen normalen Zugang per SSH zu ermöglichen legen wir einen separaten Benutzer für den eingeschränkten Zugang per SFTP an.
In diesem Fall der Benutzer ftpuser. Weiterhin wird eine getrennte Benutzergruppe (sftponly) angelegt, um später weitere Optionen für den getrennten User setzen zu können.
Das Verzeichnis, welches per SFTP verfügbar sein wird (hier: /home/ftpuser) muss in Eigentümerschaft von Root liegen. Daher hat der Benutzer dort erstmal nur Leserechte. Innerhalb des Verzeichnisses können allerdings weitere Ordner angelegt werden, auf die der Benutzer dann auch Schreibzugriff hat.
über Yast
[screenshots to come]
über Konsole
Als Root: Zielverzeichnis anlegen:
mkdir /home/ftpsite
Separate Gruppe sftponly anlegen:
groupadd sftponly
Den neuen Benutzer ftpuser anlegen. Dabei wird als Loginshell /bin/false benutzt, damit sich der Benutzer lokal nicht auf einer Shell anmelden kann. Das Benutzerverzeichnis ist in dem Fall /, da sshd nach dem chroot-Aufruf in das Benutzerverzeichnis wechselt und das ralative Wurzelverzeichnis dem angelegten Zielverzeichnis entsprechen wird.
useradd -g sftponly -d / -s /bin/false ftpuser
Und nun noch das Passwort festlegen:
passwd ftpuser
SSHD konfigurieren
Nun folgende Änderungen in der /etc/ssh/sshd_config vornehmen (vorhandene Variablen ändern, nicht vorhandene hinzufügen):
Subsystem sftp internal-sftp Match group sftponly ChrootDirectory /home/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp