SFTP Server auf Ubuntu einrichten
8 mins read

SFTP Server auf Ubuntu einrichten


Dateien schnell „mal eben“ per Mail zu verschicken, passiert im Admin-Alltag ständig. In der IT ist das aber oft genau der falsche Weg: Anhänge landen in Postfächern, werden weitergeleitet, bleiben in Backups hängen und sind schwer zu kontrollieren. Wenn Sie stattdessen einen sauberen, auditierbaren und verschlüsselten Weg für Dateiübertragungen brauchen, ist SFTP meist die pragmatischste Lösung.

Dieser Beitrag ist eine praxisnahe Erklärung und ein howto, wie Sie einen SFTP Server auf Ubuntu mit OpenSSH einrichten und sinnvoll konfigurieren: mit Chroot-Jails, Schlüssel-Login, Rechtekonzept, Logging und typischen Stolperfallen. Fokus ist der Betrieb im professionellen Umfeld mit klarer Sicherheit.

Was ist SFTP?

SFTP (SSH File Transfer Protocol) ist ein Dateitransfer-Protokoll, das über eine SSH-Verbindung läuft. Es ist nicht „FTP mit TLS“, sondern ein eigenes Protokoll, das den SSH-Transport nutzt. Praktisch heißt das:

  • Verschlüsselung und Authentifizierung kommen direkt aus SSH.
  • Sie brauchen in der Regel nur einen Port (standardmäßig TCP/22).
  • Benutzerverwaltung, Schlüssel, Logging und Härtung laufen über den OpenSSH-Stack.

SFTP ist damit im Unternehmensbetrieb oft einfacher zu standardisieren als klassische FTP-Setups.

Warum SFTP in der IT oft besser ist als Dateiversand per Mailserver

Viele Datei-Workflows laufen noch über den Mailserver: „Schick mir das Logfile“, „Hier ist das Backup“, „Anbei das Zertifikat“. Aus Betriebssicht führt das regelmäßig zu Problemen:

  • Große Anhänge sprengen Limits, verursachen Warteschlangen oder Quotas.
  • Dateien verteilen sich unkontrolliert auf Postfächer, Clients und Archivsysteme.
  • Zugriffskontrolle ist grob (Mailbox-Rechte statt Dateirechte).

Mit SFTP können Sie Dateitransfers sauber trennen: definierte Benutzer, definierte Verzeichnisse, nachvollziehbare Zugriffe, klare Aufbewahrungsregeln. Wenn Sie ohnehin bereits SSH für Administration nutzen, ist SFTP meist ein kleiner Zusatzschritt.

Architekturentscheidung: „SFTP-only“ statt Shell-Zugriff

Für einen Transfer-Server wollen Sie oft genau eins: Upload/Download, aber keinen interaktiven Shell-Zugriff.

OpenSSH bringt dafür einen eingebauten SFTP-Subsystem-Server mit. In der Praxis setzen Sie dann auf:

  • dedizierte SFTP-User (oder Gruppen)
  • ChrootDirectory (User sehen nur ihr Zielverzeichnis)
  • ForceCommand internal-sftp (keine Shell)
  • Schlüssel-Login (und optional Passwort-Login aus)

So bleibt die Angriffsfläche klein, ohne ein zusätzliches SFTP-Serverprodukt zu betreiben.

Voraussetzungen auf Ubuntu

  • Ubuntu Server mit installiertem OpenSSH-Server
  • Root-/sudo-Zugriff
  • Firewall-Regeln (z. B. UFW oder Perimeter-Firewall)
  • Ein Plan für Benutzer, Ordnerstruktur und Rechte

Wenn OpenSSH noch fehlt, installieren Sie es:

sudo apt update
sudo apt install openssh-server

Prüfen Sie den Dienst:

sudo systemctl status ssh

Schritt 1: Benutzerkonto erstellen

sudo adduser --shell /usr/sbin/nologin USERNAME

--shell /usr/sbin/nologin verhindert, dass sich der Benutzer interaktiv am System anmelden kann.

Schritt 2: Chroot-Verzeichnis erstellen

Aufgrund der Sicherheitsanforderungen von SFTP müssen wir ein Chroot-Verzeichnis erstellen, das Besitz von root ist und nicht schreibbar für andere Benutzer. In diesem Beispiel heißt das eigentliche Document Root mia-hotel.de und sollte zur Übersichtlichkeit auch angepasst werden.

sudo mkdir -p /var/www/sftp-jail/mia-hotel.de
sudo chown root:root /var/www/sftp-jail
sudo chmod 755 /var/www/sftp-jail

Schritt 3: Bind-Mount des Webverzeichnisses

Verwenden Sie einen Bind-Mount, um das Webverzeichnis in das Chroot-Jail einzubinden:

sudo mount --bind /var/www/mia-hotel.de /var/www/sftp-jail/mia-hotel.de

Damit der Bind-Mount nach einem Neustart erhalten bleibt, fügen Sie die folgende Zeile zu /etc/fstab hinzu:

/var/www/mia-hotel.de /var/www/sftp-jail/mia-hotel.de none bind 0 0

Schritt 4: Berechtigungen anpassen

Stellen Sie sicher, dass der Benutzer USERNAME die erforderlichen Berechtigungen hat:

sudo usermod -aG www-data USERNAME
sudo chown -R www-data:www-data /var/www/mia-hotel.de
sudo chmod -R 2775 /var/www/mia-hotel.de

Das Set-GID-Bit (2) sorgt dafür, dass neu erstellte Dateien die Gruppenzugehörigkeit www-data erben.

Schritt 5: SSHD-Konfiguration anpassen

vi /etc/ssh/sshd_config

Am Ende hinzufügen:

Match User USERNAME
ChrootDirectory /var/www/sftp-jail
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no

ChrootDirectory /var/www/sftp-jail legt das Chroot-Verzeichnis fest.

ForceCommand internal-sftp stellt sicher, dass nur SFTP verwendet werden kann.

Schritt 6: SSH-Dienst neu starten

sudo systemctl restart ssh

Firewall und Netzwerk: nur was Sie wirklich brauchen

SFTP läuft über SSH. Wenn Sie den Dienst nur intern brauchen, öffnen Sie Port 22 nur im internen Netz oder per VPN.

Beispiel mit UFW (wenn genutzt):

sudo ufw allow 22/tcp
sudo ufw status

Wenn Sie den SSH-Port verändern, denken Sie an Monitoring, Dokumentation und Client-Konfiguration. „Security by obscurity“ ersetzt keine saubere Härtung.

Härtung: typische Maßnahmen, die im Alltag wirklich helfen

Root-Login sperren

In /etc/ssh/sshd_config:

PermitRootLogin no

Nur moderne Authentifizierung nutzen

Wenn möglich: Schlüssel statt Passwörter. Optional können Sie zusätzlich MFA-Konzepte über zentrale Identitäten abbilden (je nach Umgebung). Einen Einstieg in sichere Authentifizierung ohne klassische Passwörter finden Sie in unserem Beitrag zur sicheren Anmeldung ohne Passwörter.

Brute-Force-Schutz

Fail2ban ist verbreitet, aber die konkrete Konfiguration hängt von Logformat und Policy ab. Wenn Sie Fail2ban einsetzen, testen Sie Sperren sauber, damit Sie sich nicht selbst aussperren.

Trennung von Diensten

Wenn auf dem Server zusätzlich ein Mailserver oder Webdienste laufen: trennen Sie Rollen. Ein SFTP-Server ist ein Eintrittspunkt ins Netz. Weniger Dienst-Mischbetrieb bedeutet weniger Seiteneffekte bei Updates und weniger Angriffsfläche.

Wenn Sie ohnehin Server in kritischen Rollen betreiben, ist kontinuierliche Überwachung Pflicht. Für Systeme wie Nextcloud sehen wir in Projekten oft, dass Security-Checks und Betriebshygiene zusammengehören, siehe z. B. Nextcloud professionell und sicher betreiben.

Häufige Fehler beim SFTP-einrichten (und wie Sie sie schnell finden)

„Connection closed“ direkt nach Login

Oft stimmt das Chroot-Verzeichnis nicht:

  • ChrootDirectory muss root gehören
  • Rechte dürfen nicht zu offen sein (kein Schreibrecht für User auf Chroot-Root)

Prüfen:

ls -ld /sftp /sftp/sftpmax

Upload klappt nicht, obwohl Login funktioniert

Dann fehlen Schreibrechte im Unterordner:

ls -ld /sftp/sftpmax/upload

Benutzer landet nicht im Chroot

Dann greift der Match-Block nicht. Prüfen Sie:

  • Gruppe stimmt (id sftpmax)
  • Match Group sftpusers steht am Ende der sshd_config (Match-Blöcke sollten nach allgemeinen Regeln kommen)

„Subsystem request failed“

internal-sftp im ForceCommand löst das meist. Wenn Sie stattdessen den externen sftp-server nutzen, prüfen Sie den Pfad zum Binary.

Betrieb: Updates, Backups, Monitoring

Ein SFTP-Server ist schnell eingerichtet, aber Betrieb kostet Zeit, wenn Sie ihn ernst nehmen:

  • Patchen Sie OpenSSH und das OS regelmäßig.
  • Sichern Sie die Konfiguration (/etc/ssh/sshd_config) und die relevanten Verzeichnisse.
  • Überwachen Sie Diskspace im Upload-Verzeichnis. Voll gelaufene Dateisysteme sind ein Klassiker.

Wenn Sie Serverumgebungen ohnehin monitoren, ist es naheliegend, SSH-Dienste, Plattenfüllstände und Systemlast einzubinden. Einen Einstieg, wie wir Monitoring im Admin-Alltag betrachten, gibt unser Artikel effizientes IT-Monitoring mit Checkmk.

SFTP als Baustein für sichere Datei-Workflows

SFTP ersetzt nicht automatisch eine Kollaborationsplattform, aber es schließt eine Lücke: „sicher Dateien ablegen und abholen“, ohne dass Anhänge den Weg über den Mailserver nehmen. Für viele IT-Teams ist genau das der pragmatische Kompromiss zwischen Aufwand und Kontrolle.

Wenn Sie SFTP in eine größere Umgebung integrieren (z. B. mit zentraler Authentifizierung, Logging, Firewall-Regeln und Monitoring), lohnt sich ein kurzer Architekturcheck, bevor es produktiv wird. Weitere praxisnahe Artikel finden Sie im Blog von ADMIN INTELLIGENCE unter Wenn Sie beim Einrichten und Absichern Unterstützung brauchen, erreichen Sie uns unkompliziert über

Wenn Sie noch weitere Fragen haben oder Unterstützung bei der Einrichtung Einichtung und konfiguration eines SFTP Servers brauchen, kontaktieren Sie uns. Wir hefen gerne!


News
Berita Teknologi
Berita Olahraga
Sports news
sports
Motivation
football prediction
technology
Berita Technologi
Berita Terkini
Tempat Wisata
News Flash
Football
Gaming
Game News
Gamers
Jasa Artikel
Jasa Backlink
Agen234
Agen234
Agen234
Resep
Cek Ongkir Cargo
Download Film

Leave a Reply

Your email address will not be published. Required fields are marked *