Sftp mit chroot-jail

Aus Linupedia.org
Version vom 4. Mai 2010, 09:09 Uhr von Lotz (Diskussion | Beiträge) (halbfertiges Release)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
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

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