Führen Sie einen SFTP- oder FTP-Server unabhängig von Systembenutzerkonten aus

653
Vanadium

Ist es möglich, einen SFTP-Server ohne den SSH-Daemon zu betreiben, sozusagen im "Userspace"? Ich mag es nicht, wie die Benutzerkonten des Systems an die Login - Daten gebunden sind, würde ich viel lieber eine separate Konfigurationsdatei der erlaubten Benutzer angeben: Passwort - Kombinationen und den Dämon unter einem Benutzer ausgeführt. Wenn dies mit SFTP nicht möglich ist, ist auch eine FTP-Lösung in Ordnung.

2

1 Antwort auf die Frage

4
grawity

ohne den SSH-Daemon zu verwenden, sozusagen im "Userspace"

Es gibt hier ein Missverständnis. Der SSH-Daemon ist "Userspace", genauso wie jeder andere Netzwerkprotokollserver - er ist nicht unbedingt Teil des Betriebssystems.

Wichtiger noch: Wie Anmeldeinformationen überprüft werden, hat nichts mit dem Vorhandensein eines SSH-Dämons zu tun, sondern mit allem, mit welchem ​​SSH-Dämon Sie arbeiten und wie er programmiert ist. Es gibt nichts, was einen SSH-Dämon zwingt, Systemkonten zu verwenden. es ist die Wahl des Programmierers (obwohl zugegebenermaßen die einzige, die für den täglichen Gebrauch sinnvoll ist).

(Randbemerkung: Dies ist nicht bei allen Netzwerksoftware der Fall.) Zum Beispiel ist der in Windows integrierte SMB-Server Teil des Betriebssystems und kann im Allgemeinen nicht ausgetauscht werden. Glücklicherweise steht Ihre Frage nicht im Zusammenhang mit SMB Windows; es geht um SSH unter Linux.)

Weitermachen:

Ist es möglich, einen SFTP-Server ohne den SSH-Dämon auszuführen

Ja und nein.

SFTP ist für die Verwendung über einen SSH-Transport definiert. Die meisten Clients unterstützen keinen anderen Transport. Eine wichtige Konsequenz ist, dass SFTP über keine eigene Sicherheit (z. B. Authentifizierung oder Verschlüsselung) verfügt - diese Sicherheitsschichten werden während des SSH-Handshakes eingerichtet.

Für SFTP ist jedoch kein spezifischer OpenSSH- Befehl sshd erforderlich, und im Allgemeinen ist kein systemweiter SSH-Daemon mit vollem Funktionsumfang erforderlich. Der komplette Stack kann von einer anderen Software implementiert werden, häufig in einem einzigen Programm.

Mir gefällt nicht, wie die Benutzerkonten des Systems an die Anmeldeinformationen gebunden sind

Bei generischen SSH-Daemons ist die Verwendung von Systemkonten in der Regel nur eine Option, die sinnvoll ist, da der Client über einen interaktiven Shell-Zugriff verfügt, über den alle möglichen externen Programme und Systembefehle ausgeführt werden können. Der SSH-Dienst allein kann keine Trennung zwischen Programmen zulassen, die von verschiedenen Benutzern ausgeführt werden, es sei denn, er erhält Hilfe vom Betriebssystem - und zufälligerweise werden Systemkonten dafür erstellt. Deshalb verwendet OpenSSH Systemkonten und sonst nichts.

Glücklicherweise ist das Obige für FTP-Daemons und dedizierte "SFTP-only" SSH-Daemons kein Problem, da alle FTP / SFTP-Vorgänge intern auf dem Daemon selbst ablaufen und die Isolierung der Benutzer nicht mehr als die sorgfältige Überprüfung der Dateipfade erfordert.

So endlich zu Ihrer Anfrage:

Ich hätte lieber eine separate Konfigurationsdatei, um die zulässigen Benutzer anzugeben: Kennwortkombinationen und den Daemon unter einem Benutzer laufen zu lassen

Dafür gibt es Software. Suchen Sie nach FTP-Servern, die die Authentifizierung "virtueller Benutzer" über eine Datenbank unterstützen. Einige von ihnen sind auch SFTP-fähig, beispielsweise ProFTPd . Die meisten jedoch nur FTP / FTPS.

Vielen Dank, ProFTPd war genau das, wonach ich gesucht hatte! Ich verstehe den Unterschied, ich konnte einfach keine Software finden, die meinen Vorstellungen entsprach. Vanadium vor 5 Jahren 1