Loggen Sie sich auf dem Server z.B. über SSH ein und konfigurieren Sie Ihren frisch aufgesetzten Server wie folgt:
Jetzt legen wir zuerst einen neuen User nur für den sFTP Datenaustausch an.
Unser sFTP-User lautet sFTPUser und das Passwort wird sFTPpassword lauten.
Wir möchten einen neuen User: sFTPuser mit dem Passwort: sFTPpasswort auf unserem Server anlegen, welcher über eine verschlüsselte Verbindung ausschliesslich nur Zugriff auf den für den User angelegten Ordner hat. In diesem Ordner befinden sich dann zwei Ordner, ein Download-Ordner in dem der sFTP-User nur Leserechte besitzt und einen Upload-Ordner in dem der sFTP-User Schreibrechte besitzt um Dateien hochladen zu können. Desweiteren entziehen wir dem sFTP-User die Login-Shell, so dass sich der sFTP-User nicht auf dem Server einloggen kann.
[xyz-ihs snippet=“ad“]
Als erstes geben wir uns über den Befehl:
sudo bash
für die Zeit des Einrichtens Superuserrechte und bestätigen dies mit der Eingabe unseres Passwortes.
1) Einen neuen User anlegen
Nun legen wir den neuen Benutzer: sFTPUser mit folgendem Befehl an:
useradd sFTPUser
und erstellen diesem User ein Home-Verzeichnis unter: /home/sFTP
mkdir /home/sFTP/Download
jetzt weisen wir dem User diese Verzeichnis als sein Home-Verzeichnis zu:
usermod -d /home/sFTP sFTPUser
Als nächstes vergeben wir dem User ein Passwort mit:
passwd sFTPUser
und geben dann zweimal das gewünschte Passwort ein. In unserem Fall: sFPTPasswort
[xyz-ihs snippet=“ad“]
Jetzt legen wir noch den neuen Besitzer des Home-Verzeichnis fest, damit der User sFTPUser Besitzer dieses Ordners ist. Dies geschieht über den Befehl:
chown root:sFTPUser /home/sFTP
und geben Ihm dort nur Leserechte über den Befehl:
chmod 755 /home/sFTP
Jetzt benötigen wir noch einen Upload-Ordner in den der sFTPUser Dateien auf den Server hochladen darf. Dazu legen wir wie Oben ein neuen Ordner an:
mkdir /home/myuser/Upload
Und über geben die Rechte des Ordners über die Rechte und Gruppenverwaltung an den sFTPUser mit dem Befehl:
chown sFTPUser:sFTPUser/home/sFTP/Upload
Jetzt erteilen wir dem sFTPUser noch Schreibrechte in diesem Order über den Befehl:
chmod 755 /home/sFTP/upload
Damit der sFTPUser auch keinerlei Möglichkeiten bekommt, aus diesem Ordner „auszubrechen“ entziehen wir dem User die Login-Shell mit dem Befehl:
usermod -s /bin/false sFTPUser
Somit hat der User: sFTPUser keine Möglichkeit sich über den Befehl:
ssh sFTPUser@192.168.178.1
am Server einzuloggen. Selbst mit der Eingabe des richtigen Passwortes kann sich der User am Server nicht einloggen.
[xyz-ihs snippet=“ad“]
2) SFTP Zugang anlegen
Damit der neu angelegte sFTPUser auch nur zugriff auf die ihm zugewiesenen Ordner hat, „sperren“ wir den User in sein Home-Verzeichnis. Dies geschieht in dem wir die /sshd_config editieren. Ich verwende hierzu den Nano-Editor. Mit dem Befehl:
nano /etc/ssh/sshd_config
können Sie die sshd_config mit dem Nano Editor editieren.
ersetzen Sie diese Zeile:
...
durch:
#Subsystem sftp internal-sftp Subsystem sftp internal-sftp Match User myuser ChrootDirectory /home/myuser ForceCommand internal-sftp
Jetzt noch den SSH-Dienst durch den Befehl:
/etc/init.d/ssh restart
oder den ganzen Server über den Befehl:
restart
neustarten.
Bei Fragen stehe ich Ihnen gerne zu Verfügung.
Raffael Haberland
security.haberland.it
Hello.This post was really fascinating, particularly since I was investigating for thoughts on this issue last Wednesday.