Ubuntu-SFTP-Server installieren – Schritt für Schritt

Ubuntu ist eine sichere und zuverlässige Plattform für die Einrichtung eines SFTP-Servers. Die Linux-Distribution bietet integrierte Tools und Pakete, die Sie für SFTP nutzen können. In unserer Schritt-für-Schritt-Anleitung zeigen wir Ihnen, wie Sie einen Ubuntu-SFTP-Server für einen verschlüsselten Datentransfer installieren und konfigurieren.

Ubuntu-SFTP-Server: Das sind die Systemvoraussetzungen

Im Vergleich FTP vs. SFTP ist das SFTP-Protokoll die deutlich bessere Wahl. Basierend auf FTP, verwendet SFTP kryptografische Verfahren zur Datenverschlüsselung. Daher sind für die Installation zusätzliche Komponenten wie Secure Shell (SSH) erforderlich. Für die Einrichtung eines SFTP-Servers unter der aktuellen Ubuntu-Version 22.04 sollten folgende Systemvoraussetzungen erfüllt sein:

  • Prozessor (CPU): 2 GHz (Dual-Core)
  • Arbeitsspeicher (RAM): 4 GB
  • Festplattenspeicher: abhängig von Datengröße
  • Betriebssystem: Ubuntu, Benutzer mit Root-Rechten
  • Software-Paket: OpenSSH
  • Internetverbindung zum Downloaden von Paketen und Verbinden mit dem SFTP-Server

Mit einem Secure FTP-Server von IONOS haben Sie Zugriff auf sicheres File-Hosting, inklusive regelmäßigen Backups und 24/7-Support.

Schritt-für-Schritt-Anleitung: Installation eines Ubuntu-SFTP-Servers

Um einen FTP-Server einzurichten, der SFTP unterstützt, sollten Sie zuerst kontrollieren, ob OpenSSH installiert ist. Standardmäßig stehen die Pakete in Ubuntu bereits zur Verfügung. Sollte dies nicht der Fall sein, können Sie die Pakete aus dem offiziellen Repository beziehen.

Öffnen Sie das Terminal auf Ihrem Ubuntu-System und führen Sie die folgenden Befehle aus:

Schritt 1: OpenSSH-Pakete überprüfen

Mithilfe dieser Eingabe listen Sie alle installierten Pakete auf und filtern dabei nach ssh:

$ dpkg -l | grep ssh

bash

In unserem Beispiel führt dies zur Ausgabe:

Terminal: Installierte OpenSSH-Pakete

Wird ein iiangezeigt, bedeutet dies, dass die Pakete installiert sind.

Schritt 2: SSH installieren

Sollte OpenSSH nicht vorhanden sein, können Sie es mit dem Paketmanager APT installieren:

$ sudo apt install ssh

bash

Schritt 3: SSHD-Konfiguration ändern

Nach der Installation muss die Konfigurationsdatei des SSH-Daemons angepasst werden. Sie können diese z. B. mit dem Nano-Editor aufrufen:

$ sudo nano /etc/ssh/sshd_config

bash

Geben Sie dann folgende Zeilen ein:

Match Group sftpgroup
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

bash

Dadurch können Benutzer und Benutzerinnen der SFTP-Gruppe auf ihr Home-Verzeichnis über SFTP zugreifen.

Schritt 4: SSH-Dienst neu starten

Im Anschluss an die Änderung der Konfigurationsdatei sollte der SSH-Dienst neu gestartet werden:

$ sudo systemctl restart sshd

bash

Schritt 5: SFTP-Benutzer und Gruppe erstellen

Im nächsten Schritt erstellen wir eine neue Gruppe sftpgroupund einen neuen Benutzer sftpuser, der aus Sicherheitsgründen nur auf den Ubuntu-SFTP-Server und nicht den SSH-Dienst zugreifen kann.

$ sudo groupadd sftpgroup

bash

Der neue Nutzer wird mit der Option -Gder SFTP-Gruppe zugeteilt. Durch die Option -dwird das Home-Verzeichnis bestimmt und mit -sder Shell-Zugang geregelt.

$ sudo useradd -G sftpgroup -d /srv/sftpuser -s /sbin/nologin sftpuser

bash

Schritt 6: SFTP-Benutzerpasswort erstellen

Geben Sie ein sicheres Passwort für den SFTP-Benutzer mit dem Befehl passwdein:

$ passwd sftpuser

bash

Schritt 7: Chroot einrichten

Durch die Erstellung eines Chroot-Verzeichnisses wird eine Sandbox für ablaufende Prozesse geschaffen. Zuerst muss ein neuer Ordner angelegt werden:

$ mkdir -p /srv/sftpuser

bash

Dann wird die Eigentümerschaft mit chownauf den Root-Benutzer festgelegt:

$ sudo chown root /srv/sftpuser

bash

Weisen Sie der Gruppe Rechte zum Lesen und zum Ausführen zu:

$ sudo chmod g+rx /srv/sftpuser

bash

Danach legen Sie ein Unterverzeichnis an und bestimmen sftpuserals Eigentümer:

$ mkdir -p /srv/sftpuser/data
$ chown sftpuser:sftpuser /srv/sftpuser/data

bash

Dadurch kann der SFTP-Benutzer bzw. die SFTP-Benutzerin Dateien in das Unterverzeichnis „data“ hochladen, besitzt jedoch nur beschränkte Rechte im sftpuser-Verzeichnis. Dort hat er oder sie zwar Leserechte, aber aus Sicherheitsgründen keine Schreibrechte.

Schritt 8: Mit dem Ubuntu-SFTP-Server verbinden

Die Verbindung zum SFTP-Server kann entweder über die SFTP-Befehlszeile oder durch einen FTP-Client mit GUI hergestellt werden. Im Terminal geben Sie das Kommando sftp, gefolgt vom Benutzer- und dem Hostnamen oder der IP-Adresse des SFTP-Servers ein.

$ sftp sftpuser@SERVER-IP

bash

Wenn ein benutzerdefinierter Port verwendet wird, kann dies wie folgt spezifiziert werden:

$ sftp -P PORT ftpuser@SERVER-IP

bash

Danach werden Sie aufgefordert, das Passwort des SFTP-Nutzers bzw. der -Nutzerin einzugeben.

Schritt 9: Dateien auf den SFTP-Server hochladen

Dateien werden in SFTP über den Befehl puthochgeladen.

Probieren Sie, eine Datei in das Verzeichnis /zu übertragen:

put /path/to/file/on/local /

bash

Der Befehl sollte fehlschlagen, denn es handelt sich um das chroot-Verzeichnis, für das der SFTP-Nutzer bzw. die SFTP-Nutzerin keine Schreibrechte besitzt.

Versuchen Sie es nun mit dem Ordner data:

put /path/to/file1/on/local1 /data/

bash

Schritt 10: Dateien auf dem Ubuntu-SFTP-Server anzeigen

Dateien können Sie in der SFTP-Befehlszeile mit dem Kommando lsauflisten:

ls /data/

bash

Hier sehen Sie, welche Daten sich auf dem SFTP-Server befinden:

Terminal: Liste der Dateien auf dem SFTP-Server
Terminal: Liste der Dateien auf dem SFTP-Server

Add a Comment

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie mehr darüber, wie Ihre Kommentardaten verarbeitet werden .