Skip to main content

Debian 8 Jessie – SFTP Server einrichten

Mit Debian sowie vielen anderen Linux Distributionen lässt sich sehr leicht ein SFTP Server bzw. SFTP Zugang einrichten.

1.OpenSSH Server installieren

Die Voraussetzung für den späteren Zugriff ist OpenSSH. Dies ist oft schon bei der Installation dabei. Sollte es nicht installiert sein, dann kann es mittels des folgenden Befehls installiert werden.

2. SFTP Zugänge verwalten

Hier gibt es mehrer Möglichkeiten den Zugang auf den SFTP Server zu verwalten. Ihr könnt einzelne Benutzer / Gruppen anlegen, die Zugang haben sollen.

2a. Gruppe für SFTP User anlegen

In diesem Fall legen wir eine neue Gruppe an. Alle Benutzer in dieser Gruppe erhalten später Zugang zum SFTP Server.

Der Name „sftp_users“ kann frei gewählt werden. Später werden wir alle Benutzer in diese Gruppe machen, damit sie Zugang haben.

Bestehende Benutzer werden dann einfach mit folgendem Befehl zur SFTP Gruppe hinzugefügt:

In diesem Fall wird der Benutzer „testbenutzer“ zu der Gruppe „sftp_users“ hinzugefügt.

2b. einzelne SFTP User anlegen, der nur SFTP darf

In diesem Fall legt ihr einfach einen neuen Benutzer an und ändern später noch die Rechte ab, damit dieser in seinem Home-Verzeichnis gefangen ist und keinen Shell Zugriff mehr hat.

Hier wird nun ein Benutzer „test“ angelegt. Bei Linux wird immer auch eine Gruppe erstellt, die den selben Namen wie der Benutzer trägt. Wenn ihr den Namen „test“ ändert, dann müsst ihr auch immer die Gruppe entsprechend anpassen. In diesem Beispiel wird von dem Benutzer „test“ mit seiner zugehörigen Gruppe „test“ ausgegangen.

Der Befehl zum Anlegen eines neuen Benutzers lautet:

Hier wird der Benutzer „test“ angelegt. Nun wollen wir den Benutzer noch so abändern, dass er sich NUR per SFTP anmelden darf und sein eigenes Verzeichnis sieht. Es soll also verhindert werden, dass man sich per Shell anmelden kann und gleichzeitig auch, dass der User den kompletten Server sehen kann.

Dazu entziehen wir dem neu angelegten Benutzer „test“ die Shell.

3. Ordnerberechtigungen anpassen

Damit der Benutzer nicht mehr sein Home-Verzeichnis verlassen kann (chroot), müssen wir die Ordnerberechtigungen anpassen.

Das Homeverzeichnis MUSS !!! root gehören. 

Dazu geben wir folgenden Befehl ein:

Nun ist der Benutzer „test“ in seinem Home-Verzeichnis eingesperrt. In diesem Verzeichnis kann er aber nun keine Dateien mehr anlegen. Deshalb erstellen wir ein neues Verzeichnis, in dem er Dateien anlegen / hochladen kann. Dies nennen wir „upload“.

4. SSHD_Config anpassen

Nun müssen wir noch die Konfigurationsdatei bearbeiten. Hier wird festgelegt, welcher Benutzer /Gruppe Zugang hat.

In dieser Datei solltet ihr folgende Zeile finden:

Vor diese Zeile schreibt ihr ein „#“ und fügt danach folgendes ein:

5.1 Gruppe freigeben für SFTP

Am Ende der Datei fügt ihr nun folgenden Code ein um die Gruppe „sftp_users“ freizugeben:

5.2 Benutzer freigeben für SFTP

Am Ende der Datei fügt ihr nun folgenden Code ein um den Benutzer „test“ freizugeben:

6. Neustarten des OpenSSH Dienst

Nun muss der OpenSSH Dienst neu gestartet werden, damit die Änderungen übernommen werden.

7. Zugriff per SFTP

Nun kann man mittels SFTP Programm (zum Beispiel WinSCP) auf den Server zugreifen. Der Benutzer sieht nun nur sein Homeverzeichnis und kann dies auch nicht verlassen.

6. „absichern“ des SFTP Servers

Nun könnt ihr die Sicherheit des SFTP Servers noch erhöhen, indem ihr die Anzahl falscher Logins begrenzt. Dies kann sehr leicht mit fail2ban erledigt werden. Dazu habe ich hier eine Anleitung geschrieben.

Zudem könnt ihr noch den SSH / SFTP Port ändern. Damit erreicht ihr, dass die ganzen Skripte, die auf den Port 22 prüfen nicht funktionieren. Eine Anleitung dazu findet ihr hier.

3 Gedanken zu „Debian 8 Jessie – SFTP Server einrichten

  1. Ahhh .. habe den Fehler gefunden:

    Es muss natürlich die sFTP Gruppe eingetragen werden:

     

    1. Danke für deinen Kommentar.
      Ich habe meinen Beitrag etwas angepasst. Die Struktur war nicht ganz richtig, so dass man einen Teil der Anleitung „überlesen“ konnte.

      Der Benutzer „root“ muss IMMER die Eigentümer des Homeverzeichnisses sein, da der Benutzer sonst aus diesem „ausbrechen“ kann.
      Bei mir hat es aber mit
      chown test:test /home/test/upload
      prima funktioniert.

Schreibe einen Kommentar

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