Linux - Netzwerk und Serveradminstration SFTP
Zur Navigation springen
Zur Suche springen
SFTP Server
Vorbereitungen
DATEN
| Parameter | Wert | Erläuterung |
|---|---|---|
| Netzwerk (NIC) | DMZ | Interface-Zuweisung |
| IP | 10.88.2XX.3 | Statische IP |
| CIDR | 24 | Netzmaske |
| GW | 10.88.2XX.1 | Gateway |
| NS | 10.88.2XX.21 | DNS-Server |
| FQDN | sftp.it2XX.int | Vollständiger Name |
| SHORT | sftp | Kurzname |
| DOM | it2XX.int | Domain |
Sichere Datenübertragung
- SFTP nutzt SSH zur Verschlüsselung
- kein zusätzlicher Dienst notwendig
- FTP/TFTP sind unsicher und werden nicht verwendet
- Zugriff erfolgt ausschließlich über SSH-Port 22
Ziel
- Gast-Zugang unter /srv/sftp/gast
- kein Shell-Zugriff
- Zugriff nur auf eigenes Verzeichnis
Benutzer und Verzeichnis
- sudo mkdir -p /srv/sftp/gast/ablage
- sudo groupadd sftponly
- sudo useradd -G sftponly -d /srv/sftp/gast -s /usr/sbin/nologin gast
- sudo passwd gast
- WICHTIG
- Chroot-Verzeichnis muss root gehören
- sudo chown root:root /srv/sftp/gast
- sudo chmod 755 /srv/sftp/gast
- sudo chown gast:gast /srv/sftp/gast/ablage
- Erklärung
- /srv/sftp/gast → gehört root (Pflicht für Chroot)
- /ablage → gehört Benutzer (dort darf geschrieben werden)
SSH Server Konfiguration
- sudo nano /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftponly
ChrootDirectory /srv/sftp/%u
ForceCommand internal-sftp
PasswordAuthentication yes
AllowTcpForwarding no
- sudo systemctl restart ssh
- Erklärung
- internal-sftp → kein externes Binary notwendig
- ChrootDirectory → User sieht nur sein eigenes Verzeichnis
- ForceCommand → erzwingt SFTP (kein SSH-Shell)
- AllowTcpForwarding no → verhindert Tunnel
Test
- sftp gast@SERVER-IP
Angemeldete Benutzer anzeigen
- ps -ef | grep '[s]shd:.*@notty' | grep -v ^root
- Erklärung
- notty → kein Terminal → reiner SFTP-Zugang
