individual ssh/sftp chroot

Author: stephan  |  Category: Linux, Netzwerk

[lang_de]
Keine Ausführen- oder schreibrechte geht unter Linux relativ einfach, das ein User , der z.B. nur Dateien hochladen soll gar nichts vom Rest vom System sieht geht schon etwas schwerer.

Eine Lösung:
Wir haben einen user mit Namen Kunde .
Wir legen eine Gruppe sftpuser an. Kunde wird Mitglied von sftpuser.

Wir verändern
Subsystem sftp /usr/lib/openssh/sftp-server

in der /etc/ssh/sshd.conf zu
Subsystem sftp internal-sftp
und ergänzen.

Match Group sftpuser
ChrootDirectory %h
ForceCommand internal-sftp

Dann legen wir für die ftpuser ein neues home an in dem nur root Schreibrechte hat

drwxr-xr-x 4 root root 4096 May 16 15:54 ftphome

Für das eigentliche Home von Kunde sollte die Rechte folgendermassen aussehen.
drwxr-xr-x 2 kunde sftpuser 4096 May 16 15:52 kunde

Der sshd muss nun neu gestartet
Das ist alles
[/lang_de]
[lang_en]
No execute or writepermissioms for the rest of the system is very simple on a linux system. To prevent , that a user, that only needs to upload files as an example, can see the rest of the system is a little bit more difficult.

One Solution:
We have a user named kunde.
We add a group sftpuser. Kunde became member of sftpuser.

We change
Subsystem sftp /usr/lib/openssh/sftp-server

in /etc/ssh/sshd.conf to
Subsystem sftp internal-sftp
and add

Match Group sftpuser
ChrootDirectory %h
ForceCommand internal-sftp

Then the ftpuser get an new home. Only root had write permissions

drwxr-xr-x 4 root root 4096 May 16 15:54 ftphome

For the individuap home , you need these permssions
drwxr-xr-x 2 kunde sftpuser 4096 May 16 15:52 kunde

Restart sshd
Thats all
[/lang_en]