Linux - Netzwerk und Serveradminstration SFTP

Aus Xinux Wiki
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

Links