Sicherheit Unkategorisiert

Chroot für SFTP

Wenn man im Internet eine Lösung für die Aufgabenstellung sucht, landet man bei vielen sehr komplizierten Anleitungen sowas zu realisieren.  Seit OpenSSH 5 geht Chroot für SFTP von Haus aus.

Was ist Chroot? Mit ChangeRoot kann ich das Wurzelverzeichnis des Nutzers der sich anmeldet ändern. Das normale Wurzelverzeichnis (root, /) ist das Wurzelverzeichnis des Systemes. Von dort aus zweigen alle Unterverzeichnisse des Systems. Ändern man das Wurzelverzeichnis für einen Benutzer nun auf z.B. sein eigens Home Verzeichnis, hat dieser nicht mehr die Möglichkeit andere Verzeichnisse außerhalb davon zu erreichen. Der Benutzer ist darin nun eingesperrt und das restliche System vor ihm sicher.

Die Konfiguration

Zuerst legen wir eine Gruppe an, in die alle Benutzer sollen welche sich nicht mehr per SSH und nur noch in der chroot sftp Umgebung anmelden sollen:

groupadd sftpusers

die Benutzer nimmt man mit

usermod -aG sftpusers username

in die Gruppe auf .

Nun folgt die Konfiguration von des ssh Dienstes. Wir ändern das sftp Subsystem, und erstellen eine Regel damit alle Benutzer in der Gruppe sftpusers nur noch sftp verwenden dürfen (/etc/ssh/sshd_config):

Subsystem       sftp    internal-sftp 

Match Group sftpusers
        ChrootDirectory /home/%u 
        ForceCommand internal-sftp 
        AllowTcpForwarding no 
        X11Forwarding no

Zuletzt müssen die Datei Berechtigungen der Homeverzeichnisse angepasst werden. Es ist zu beachten das die Benutzer direkt in ihrer Wurzel keine Schreibrechte haben. So muss z.B. ein upload Verzeichnis angelegt werden.

Das Homeverzeichnis selbst muss root überstellt werden, als Gruppe bekommt es sftpusers:

chown root:sftpusers /home/USERNAME

Die Rechte sind 7 (alles) für root, 5 (lesen, ausführen) für die Gruppe:

chmod 750 /home/USERNAME

 

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.