Site icon bintorosoft.com

SFTP einrichten: Sichere Dateiübertragung im Linux Server Setup

Turtle with glasses and a surprised look on her face is looking at a laptop on white background.

SFTP (Secure File Transfer Protocol) ist eine sichere Methode, Dateien zwischen Servern und Clients zu übertragen. Es basiert auf SSH und bietet verschlüsselte Übertragung, Authentifizierung per Passwort oder Key, sowie die Möglichkeit, Benutzerrechte granular zu steuern. Für IT-Einsteiger, Studierende und Junior Network Engineers ist es essenziell zu verstehen, wie SFTP korrekt eingerichtet und betrieben wird, um Datensicherheit im Linux-Serverbetrieb zu gewährleisten.

SSH als Grundlage für SFTP

SFTP nutzt das SSH-Protokoll (Secure Shell) als Transportmechanismus. Daher müssen zunächst die SSH-Dienste korrekt installiert und konfiguriert sein. Die Standardpakete auf den meisten Linux-Distributionen sind OpenSSH-Server und -Client.

# Installation auf Debian/Ubuntu
sudo apt update
sudo apt install openssh-server

Installation auf RHEL/CentOS/AlmaLinux/Rocky Linux

sudo dnf install openssh-server

Dienst starten und aktivieren

sudo systemctl enable --now sshd

SFTP-Benutzer anlegen

Für SFTP empfiehlt es sich, dedizierte Benutzer oder Gruppen zu erstellen, um Zugriffsrechte klar zu trennen. Sensible Verzeichnisse können so vom Rest des Systems isoliert werden.

# Gruppe für SFTP-Benutzer erstellen
sudo groupadd sftpusers

Benutzer anlegen und der Gruppe zuweisen

sudo useradd -m -g sftpusers -s /sbin/nologin sftpuser

Passwort setzen

sudo passwd sftpuser

Chroot-Verzeichnis für SFTP setzen

Mit Chroot können Benutzer auf ein bestimmtes Verzeichnis beschränkt werden, sodass sie keine anderen Teile des Dateisystems sehen oder darauf zugreifen können.

# Beispiel: Verzeichnis für Benutzer erstellen
sudo mkdir -p /srv/sftp/sftpuser/uploads
sudo chown root:root /srv/sftp/sftpuser
sudo chmod 755 /srv/sftp/sftpuser

Unterverzeichnis für Schreibrechte

sudo chown sftpuser:sftpusers /srv/sftp/sftpuser/uploads

SSH-Konfiguration für SFTP einschränken

Die Datei /etc/ssh/sshd_config muss angepasst werden, um Benutzer auf SFTP zu beschränken und Shell-Zugriff zu verhindern.

# Beispielkonfiguration am Ende von /etc/ssh/sshd_config
Match Group sftpusers
    ChrootDirectory /srv/sftp/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

Nach Änderungen den SSH-Dienst neu starten:

sudo systemctl restart sshd

Test der SFTP-Verbindung

Nach der Einrichtung sollte die Verbindung vom Client getestet werden:

# Verbindung zum Server herstellen
sftp sftpuser@server_ip

Dateien hochladen

put localfile.txt

Dateien herunterladen

get remotefile.txt

Key-basierte Authentifizierung einrichten

Für höhere Sicherheit ist die Authentifizierung per SSH-Key empfehlenswert. Passwortbasierter Zugriff kann optional deaktiviert werden.

# Key auf Client erzeugen
ssh-keygen -t ed25519

Public Key auf Server kopieren

ssh-copy-id sftpuser@server_ip

Optional Passwortauthentifizierung deaktivieren

Match Group sftpusers
PasswordAuthentication no

Logging und Monitoring

Für den produktiven Betrieb ist es wichtig, SFTP-Zugriffe zu protokollieren. Die meisten Logs werden in /var/log/auth.log oder /var/log/secure gespeichert:

# Aktuelle SFTP-Zugriffe prüfen
sudo journalctl -u sshd | grep sftp

Best Practices für SFTP im Serverbetrieb

Zusammenfassung

Die Einrichtung von SFTP auf Linux-Servern erfordert die korrekte Konfiguration von SSH, dedizierten Benutzern, Chroot-Verzeichnissen und Berechtigungen. Durch Key-basierte Authentifizierung, Logging und Best Practices wird eine sichere und kontrollierte Dateiübertragung gewährleistet, die für Unternehmens- und Homelab-Umgebungen gleichermaßen geeignet ist.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version