# 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`). ```bash # 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. ```bash # 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: ```text 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. ```bash # 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. ```bash # 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. ```bash # SSH-Dienst neu starten sudo systemctl restart sshd ``` ### Testen des Zugriffs: Von einem entfernten Rechner oder lokal: ```bash sftp sftpuser@ ``` *Hinweis: Ein Login via normalem SSH (`ssh sftpuser@...`) sollte nun automatisch abgelehnt werden.*