6

Ich habe einige Posts über die Verwendung von PermitUserEnvironment und die Datei ~/.ssh/environment gelesen, um Env-Variablen an eine SSH-Shell übergeben. Die offiziellen sshd docs und einige andere Ressourcen weisen auf Sicherheitsrisiken hin.Sicherheitsrisiken von PermitUserEnvironment in ssh

Enabling environment processing may enable users to bypass access restrictions in some configurations using mechanisms such as LD_PRELOAD. 

Was sind die wahrscheinliche Sicherheitsproblem PermitUserEnvironment zu aktivieren? Ich habe versucht, DB-Verbindungsdetails in diesen Umgebungsvariablen zu halten, ist das ratsam?

dank

Antwort

3

Es ist für Fälle ist, wo Sie den Benutzer in irgendeiner Weise einschränken, indem Sie eine benutzerdefinierte Shell verwenden - wenn der Benutzer in der Lage ist LD_PRELOAD einstellen, dann könnten sie durch das Abfangen eines Standard-Code als Benutzer auf dem entfernten Rechner ausführen Bibliotheksanruf.

Ein einfaches Beispiel hierfür könnte sein, wenn Sie die Anmeldung für einen SFTP-Benutzer deaktivieren, indem Sie ihre Shell auf eine dynamisch verknüpfte/bin/false setzen - wenn sie ~/.ssh/environment oder ~/ändern können .ssh/authorized_keys dann könnten sie hinzufügen LD_PRELOAD = nefarious.so

+0

Also hat es keinen Einfluss auf regelmäßige Shell-Logins, wo ich dem Benutzer ein reguläres Bash-Konto geben? (kein sudo) –

+1

Richtig, es ist nur ein Problem, wenn Sie versuchen, ihre Shell zu beschränken. Wenn Sie bereits darauf vertrauen, dass sie willkürlichen Code ausführen, ist es kein Sicherheitsproblem, wenn Sie LD_PRELOAD zum Zeitpunkt der Anmeldung setzen – Peter