sftp
This commit is contained in:
80
Doc/SFTP_Setup_DE.md
Normal file
80
Doc/SFTP_Setup_DE.md
Normal file
@@ -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@<IP-ADRESSE-DES-SERVERS>
|
||||||
|
```
|
||||||
|
*Hinweis: Ein Login via normalem SSH (`ssh sftpuser@...`) sollte nun automatisch abgelehnt werden.*
|
||||||
Reference in New Issue
Block a user