SFTP-Zugang einrichten (zB Webhosting)

Will man als Webhoster seinen Kunden einen SFTP-Zugang bieten, lässt sich dieser wie folgt einrichten:

Zuerst wird der User angelegt:

adduser kunde1

Damit der User keinen Zugriff auf die Shell hat, nehmen wir ihm mit folgendem Kommando die Rechte dafür ab:

usermod -s /bin/false kunde1

Nun beschränken wir den Kunden im Dateisystem. Wir nehmen den Ordner “/var/www/kunde1” als Beispiel

chown root:root /var/www/kunde1
chmod 755 /var/www/kunde1

Jetzt hätte eigentlich der Webserver keinen Zugriff mehr auf den Ordner, was nicht Sinn der Sache ist… Ich empfehle, hier nochmals einen Unterordner zu machen, in dem dann der Inhalt der Website liegt. Im Ordner /var/www/kunde1 hat der Kunde selbst keine Rechte.

mkdir /var/www/kunde1/website
chown kunde1:www-data /var/www/kunde1/website

Nun müssen wir in der sshd_config noch ein paar Dinge festlegen:

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
	
Match User kunde1
  # Force the connection to use SFTP and chroot to the required directory.
  ForceCommand internal-sftp
  ChrootDirectory /var/www/kunde1
  # Disable tunneling, authentication agent, TCP and X11 forwarding.
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no

Nach einem Neustart des sshd-Dienstes, sollte das Login funktionieren. Falls nicht, sind bei den Links unten ein paar common-problems angeführt.

Links Und Credit

https://goneuland.de/wordpress/debian-8-jessie-sftp-server-einrichten/
https://www.server-world.info/en/note?os=Debian_9&p=ssh&f=5
https://www.tecmint.com/usermod-command-examples/
https://serverfault.com/questions/672519/sftp-error-couldnt-read-packet-connection-reset-by-peer
https://serverfault.com/questions/584986/bad-ownership-or-modes-for-chroot-directory-component
https://serverfault.com/questions/611388/need-help-limit-access-to-sftp-user-to-other-users-home-subfolder

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.