Sichere Dateiübertragungen über SFTP

von Thomas Lange

Heutzutage noch das veraltete File Transfer Protokoll für Dateiübertragungen von oder zu einem Server zu benutzen ist ungefähr gleichzusetzen mit dem Verwenden von Telnet zur Administration von Remoteservern. Es gibt längst die Möglichkeit Dateiübertragungen über das verschlüsselte SSH-Protokoll abzuwickeln, und doch bekommt man bei vielen großen Webhostern lediglich einen FTP-Zugang bereitgestellt. Dabei bräuchte man eigentlich keine zusätzliche FTP-Serversoftware mehr einzusetzen, da SSH mit SFTP ein Dateiübertragungsprotokoll integriert hat und man so zwei Fliegen mit einer Klappe schlägt. In der SSH-Konfiguration lassen sich auch ohne großen Aufwand einzelne Benutzer oder ganze Benutzergruppen in ihren Homeverzeichnissen einsperren:

Match group customers
	ChrootDirectory %h
	X11Forwarding no
	AllowTcpForwarding no
	ForceCommand internal-sftp
	PasswordAuthentication yes

Dieser Block muss an das Ende der SSH-Konfigurationsdatei gesetzt werden und sorgt dafür, dass alle UNIX-Benutzer auf dem System, die sich in der Gruppe customers befinden, automatisch in ihrem Homeverzeichnis (%h) eingesperrt werden. Wenn in der globalen SSH-Konfiguration die Passwortauthentifizierung deaktiviert ist, weil Administratoren sich via Public-Key-Authentication anmelden, so muss natürlich noch die Passwortauthentifizierung für diese Gruppe explizit erlaubt werden. Dann sollte man noch sicherstellen, dass die betreffenden Benutzer auf dem System keine gültige Shell besitzen, so dass sie sich nicht via SSH auf der Kommandozeile einloggen können:

sudo usermod --shell /usr/sbin/nologin username

Zuletzt sollte man noch sicherstellen, dass das Homeverzeichnis des betreffenden Benutzers und alle übergeordneten Verzeichnisse root:root oder root:username gehören und der Benutzer keine Schreibrechte auf die übergeordneten Verzeichnisse hat. Das ist eine Sicherheitsmaßnahme um zu verhindern, dass der Benutzer aus dem chroot-Gefängnis ausbrechen kann. Bei Problemen ist ein tail -f auf die Logdatei /var/log/auth.log möglicherweise hilfreich.

Der Verfasser

Hi. Mein Name ist Thomas und ich bin nicht gut im Schreiben von Vorstellungen. Ich mag die IT und liebe es mit GNU\Linux zu arbeiten. Auf diesem Blog gibt es Beiträge über die verschiedensten Dinge, die mich beschäftigen oder interessieren (dieses Blogsystem ist eine Eigenentwicklung). Deine Fragen, Ergänzungen und Korrekturen zu Inhalten kannst du mir gerne per Mail mitteilen. 😊