Files
WPanda/Dev/APS-SFTP01/SFTP_Setup_DE.md
2026-03-20 14:39:23 +01:00

2.8 KiB

Konfiguration eines SFTP-Servers auf Fedora Linux

Diese Anleitung beschreibt die Einrichtung eines sicheren SFTP-Servers unter Verwendung von OpenSSH. Der Fokus liegt auf Sicherheit durch die Einschränkung des Benutzerzugriffs (Chroot) und die Deaktivierung des Shell-Zugriffs.

1. Benutzer anlegen

Zuerst erstellen wir einen dedizierten Benutzer für den SFTP-Zugriff. Um die Sicherheit zu erhöhen, deaktivieren wir den normalen SSH-Terminal-Zugriff (/sbin/nologin).

# Benutzer erstellen (ohne Shell-Zugriff)
sudo useradd -m -s /sbin/nologin sftpuser

# Passwort für den Benutzer festlegen
sudo passwd sftpuser

2. Firewall-Konfiguration

SFTP läuft über das SSH-Protokoll (Port 22). Dieser muss in der Firewall freigegeben werden.

# SSH-Dienst in der Firewall erlauben
sudo firewall-cmd --permanent --add-service=ssh

# Konfiguration neu laden
sudo firewall-cmd --reload

3. SSH-Konfiguration (Einschränkungen)

Um den Benutzer in seinem Home-Verzeichnis zu isolieren (Chroot) und nur SFTP zu erlauben, muss die Datei /etc/ssh/sshd_config angepasst werden.

  1. Öffnen Sie die Konfigurationsdatei: sudo nano /etc/ssh/sshd_config
  2. Fügen Sie am Ende der Datei folgende Zeilen hinzu:
Match User sftpuser
    ForceCommand internal-sftp
    PasswordAuthentication yes
    ChrootDirectory %h
    AllowTcpForwarding no
    X11Forwarding no
  • Match User: Wendet die Regeln nur auf diesen Benutzer an.
  • ForceCommand internal-sftp: Erlaubt nur SFTP-Befehle, keinen interaktiven Shell-Zugriff.
  • ChrootDirectory %h: Sperrt den Benutzer in sein Home-Verzeichnis ein.

4. Verzeichnisberechtigungen (Wichtig für Chroot)

Damit der Chroot-Mechanismus funktioniert, muss das Home-Verzeichnis dem Benutzer root gehören und darf für andere nicht schreibbar sein.

# Besitzer auf root setzen
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

# Einen Unterordner für Uploads erstellen, in dem der Benutzer schreiben darf
sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpuser /home/sftpuser/uploads

5. SELinux-Anpassungen (Fedora-spezifisch)

Auf Fedora verhindert SELinux standardmäßig, dass der SSH-Dienst in Chroot-Umgebungen Schreibzugriff auf Home-Verzeichnisse hat. Dies muss explizit erlaubt werden.

# Schreibzugriff für SFTP-Chroot in SELinux aktivieren
sudo setsebool -P ssh_chroot_rw_homedirs on

6. Dienst neu starten und testen

Nachdem alle Änderungen vorgenommen wurden, muss der SSH-Dienst neu gestartet werden.

# SSH-Dienst neu starten
sudo systemctl restart sshd

Testen des Zugriffs:

Von einem entfernten Rechner oder lokal:

sftp sftpuser@<IP-ADRESSE-DES-SERVERS>

Hinweis: Ein Login via normalem SSH (ssh sftpuser@...) sollte nun automatisch abgelehnt werden.