Nologin in / etc / shells ist gefährlich. WARUM?

21

Ich habe dies im Internet gefunden, als ich einen FTP-Server in FreeBSD eingerichtet habe.

Wenn Sie nologin in / etc / shells einfügen, wird möglicherweise eine Hintertür erstellt, über die diese Konten mit FTP verwendet werden können.

(Siehe: http://osdir.com/ml/freebsd-questions/2005-12/msg02392.html )

Kann jemand erklären, warum das so ist? Und warum sollte man eine Kopie des Nologins nehmen und diese in die / etc / shells einfügen, um dieses Problem zu lösen?

RobAu
quelle

Antworten:

23

/etc/shellsenthält eine Liste von Binärdateien, die vom System als (uneingeschränkte) Shells betrachtet werden. Dies bedeutet, dass jeder Benutzer, der eine dieser Binärdateien als Shell konfiguriert hat, uneingeschränkten Zugriff auf das System hat (dh er kann jeden Befehl ausführen, sofern er über die entsprechende Berechtigung verfügt).

Die direkte Folge ist , dass sie verwenden können , ändern ihre konfigurierten Shell.chsh

Wenn ein Benutzer eine Shell konfiguriert hat, die nicht in dieser Liste enthalten ist, geht das System davon aus, dass er irgendwie eingeschränkt ist. In diesem Fall chshkann der Benutzer diesen Wert nicht ändern.

Andere Programme fragen diese Liste möglicherweise ab und wenden ähnliche Einschränkungen an.

So , indem sie nologinin /etc/shellseffektiver Sie sagen , „jeder Benutzer, hat nologinals seine Hülle einen vollständigen, uneingeschränkten Benutzer betrachtet wird“. Das ist mit ziemlicher Sicherheit das genaue Gegenteil von dem, was nologin gesagt werden sollte .

Joachim Sauer
quelle
8

FTP bietet keine Standard-Shell, sondern eine FTP-Schnittstelle. Benutzer, die ein Konto haben, obwohl ihre Shell auf nologin verweist, können weiterhin auf die FTP-Oberfläche zugreifen. Darüber hinaus können sie weiterhin auf alle anderen Dienste zugreifen, die Sie bereitstellen und für die keine Shell erforderlich ist (z. B. wenn Sie eine http-Webschnittstelle usw. haben, die auf der Kontoauthentifizierung beruht, jedoch keinen Shell-Zugriff). Dies ist nicht unbedingt eine Hintertür zu Ihrem System, sondern eine Hintertür zu Diensten.

Andrew Case
quelle