From 4a028aab5f0611b01d15ef708466832446e98fdb Mon Sep 17 00:00:00 2001 From: wpanda Date: Wed, 18 Mar 2026 14:21:34 +0100 Subject: [PATCH] sftp --- Doc/SFTP_Setup_DE.md | 80 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Doc/SFTP_Setup_DE.md diff --git a/Doc/SFTP_Setup_DE.md b/Doc/SFTP_Setup_DE.md new file mode 100644 index 0000000..bd29af5 --- /dev/null +++ b/Doc/SFTP_Setup_DE.md @@ -0,0 +1,80 @@ +# 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.*