SFTP Server
Vorbereitungen
- VirtualBox Server-Vorlage mit neuen MAC-Adressen klonen
- Host im DMZ-Netzwerk platzieren
- IP-Adresse über DHCP-Log oder Konsole ermitteln
- statische IP-Adresse setzen
- Hostname setzen
- DNS-Eintrag erstellen
- SSH-Server vorbereiten
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
Angemeldete Benutzer anzeigen
- ps -ef | grep '[s]shd:.*@notty' | grep -v ^root
- Erklärung
- notty → kein Terminal → reiner SFTP-Zugang
Links