Tutorials - OpenSSH mit SFTP und Chroot

Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk

OpenSSH mit SFTP und Chroot

Diese Seite wurde 16944 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: openssh sftp chroot howto tutorial

Inhaltsverzeichnis



Einleitung Top


OpenSSH unterstützt seit Version 5 nun Chroot, was bisher nur über spezielle Patches möglich war. Standardmäßig war Chroot bei Datei-Uploads bisher nur über FTP-Daemons möglich.

Ein Chroot dient in diesem Falle dazu, einen Benutzer in seinem Home-Verzeichnis einzusperren. Dies ist zwar kein Allzweckmittel für Sicherheit, erhöht jedoch die Hürde um ein gutes Stück.

Benutzer-Konfiguration Top


Zunächst legen wir auf unserem System eine Gruppe namens sftponly an, welcher wir dann jene Nutzer zuordnen, die nur über SFTP Daten an den Server senden können sollen.

Code:


groupadd sftponly
useradd webuser1
usermod -aG sftponly webuser1



Mit dem usermod-Befehl können wir einen beliebigen User zur Gruppe hinzufügen.

OpenSSH-Konfiguration Top


Als nächstes müssen wir die SSH-Konfiguration anpassen. Dazu deaktivieren wir den standardmäßigen Eintrag für den sftp-Dienst und ersetzen ihn mit internal-sftp.

Der restliche Teil sorgt dafür, dass Benutzer, welcher der Gruppe sftponly angehören, nur sftp nutzen dürfen.

/etc/ssh/sshd_config:


[..]

Subsystem       sftp    internal-sftp
#Subsystem      sftp    /usr/lib64/misc/sftp-server

Match Group sftponly
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
        X11Forwarding no
        AllowTcpForwarding no



Home-Konfiguration Top


Eine Einschränkung bringt jedoch die Chroot-Konfiguration mit sich - die Benutzer dürfen nicht mehr direkt in ihr Home-Verzeichnis schreiben.

Code:


chown root:sftponly /home/webuser1
chmod 750 /home/webuser1
mkdir /home/webuser1/public_html
chown webuser1: /home/webuser1/public_html



Dieses Problem ist jedoch nicht sehr relevant, da die für die Benutzer (und den Webserver) wichtigen Daten sowieso meist nach ~/public_html gespeichert werden.

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden

Sprachenübersicht/Betriebssysteme/Linux/Internet & Netzwerk/OpenSSH mit SFTP und Chroot