SDB:SFTP-Server mit Chroot
Getestet mit openSUSE | Empfohlene Artikel | Verwandte Artikel | |||
|
Inhaltsverzeichnis
Allgemein
Einrichten eines SFTP Server mit Benutzern welche einen eingeschränkten Zugriffsbereich (Chroot) haben. Voraussetzung ist ein installierter OpenSSH konfigurieren Server welche Fernzugriffe akzeptiert.
Voraussetzungen
Um mit diesem Artikel zu arbeiten werden Grundkenntnisse in Linux/openSUSE gebraucht, inklusive:
- Arbeiten mit der Kommandozeile (CLI)
- Bearbeitung von Textdateien
- Erwerben von root-Rechten (verwenden von su, sudo oder Login als root)
- Vertrauter Umgang mit YaST-Modulen:“Benutzer- und Gruppenverwaltung” und "Firewall"
Und natürlich brauchen Sie ein funktionstüchtiges und laufendes Netzwerk. Wenn Sie eine Verbindung von außerhalb Ihres LANs einrichten wollen, müssen Sie den benötigten Port an Ihrem Router öffnen können.
SSHD konfigurieren
Die Konfigurationsdatei /etc/ssh/sshd_config mit einem beliebigen Texteditor als root Benutzer öffnen.
SFTP Subsystem
Damit das mit eingeschränkten zugriff funktioniert muss der der SSH Dienst auf den internen SFTP Server umgestellt werden. Dies kann an folgender Stelle in der Konfigurationsdatei so umgestellt werden:
# override default of no subsystems #Subsystem sftp /usr/lib/ssh/sftp-server Subsystem sftp internal-sftp
Match Regelblöcke
Ein "Match Regelblock" kann für spezifische Einstellungen von Benutzern oder Gruppen benutzt werden. Ein solcher Block muss immer am ende der Konfigurationsdatei sein. Es können auch mehrere Blöcke hinzugefügt werden.
z.B. :
Match group sftponly ForceCommand internal-sftp ChrootDirectory /srv/sftp PasswordAuthentication yes PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
- ForceCommand internal-sftp Stellt sicher das der Benutzer mit der entsprechenden Gruppe nur mit SFTP auf SSH zugreifen kann.
- ChrootDirectory /srv/sftp Definiert das Verzeichnis bis wohin der Benutzer zugreifen kann.
- PasswordAuthentication yes erlaubt Identifizierung per Passwort.
- PermitTunnel no Verweigert die Benutzung eines VPN Tunnels.
- AllowAgentForwarding no Verweigert die Benutzung von Single Sign-On.
- AllowTcpForwarding no Verweigert die TCP Weiterleitung.
- X11Forwarding no Deaktiviert die X11 Weiterleitung.
Vorbereiten der Verzeichnisse
Wenn die Zugriffsrechte nicht richtig gesetzt sind können die Benutzer nicht einloggen. In unserem Beispiel muss das Verzeichnis /sftp im unterordner /srvvon dem Benutzer Root zugeordnet werden und der Gruppe sftponly. Die Rechte mit chmod auf 750 gesetzt werden. Bedeutet:
- root kann Schreiben und Lesen
- sftponly nur Lesen
- Andere nichts
Dies kann folgendermassen gemacht werden:
$mkdir /srv/sftp
$chown root:sftponly /srv/sftp
$chmod 750 /srv/sftp
$ls -l /srv
drwxr-x--- 2 root sftponly 4096 2019-02-03 22:09 sftp
Wenn die Ausgabe vonls -l ähnlich ist sind die Zugriffsrechte korrekt.
Vorbereiten / Erstellen der Benutzer
Unter Yast2 > Sicherheit und Benutzer > Benutzer- und Gruppenverwaltung können Bestehende Benutzer in dem diese zusätzlich der Gruppe sftponly zugeordnet werden eingeschränkt werden. Brauchen diese keine weiteren rechte kann auch die Standardgruppe auf sftponly gesetzt werden. Zusätzlich sollte die Anmelde-Shell auf /bin/false umgestellt werden. Das Home-Verzeichnis Muss sich dann im Unterverzeichnis /srv/sftp/[BENUTZER-VERZEICHNIS] befinden.