webentwicklung-frage-antwort-db.com.de

Benennen Sie aus Sicherheitsgründen / etc / passwd und / etc / shadow um

Ich habe einen Server. Mein Server ist sicher, aber stellen wir uns einen guten Hacker vor, der eintrifft. Er kann jetzt /etc/passwd und /etc/shadow untersuchen. Ich möchte diese Dateien /etc/passwd in etwas wie /etc/xxanoda umbenennen.

Ich dachte, ich kann einen Link erstellen, aber für einen Hacker ist es einfach, ls -l zu erstellen.

Es ist möglich, diese Dateien umzubenennen und ein laufendes Betriebssystem ohne Kompatibilitätsprobleme zu haben, oder es ist völlig nutzlos? Nur für die Suche nach Wissen.

8
Marco Caggiano

Der Dateisystem-Hierarchie-Standard für Unix-ähnliche Systeme enthält /etc/passwd an einem festen Speicherort. Daher sind Werkzeuge normalerweise hartcodiert, um dort danach zu suchen. Während Sie theoretisch alle relevanten Dienstprogramme neu kompilieren könnten, um an einem neuen Speicherort zu suchen, könnte jeder Angreifer immer nur nach Zeichenfolgen in diesen Binärdateien suchen, um die neue Datei zu finden, oder reguläre Ausdrücke verwenden, um Dateien mit passwd- zu suchen. wie Inhalte.

Die shadow -Datei sollte nur für root (und möglicherweise für eine Gruppe mit dem Namen shadow) lesbar sein. Wenn es einem Angreifer gelungen ist, als Root auf Ihr System zuzugreifen, hat er die vollständige Kontrolle darüber, ob er Ihre Passwd-/Shadow-Dateien lesen kann oder nicht.

Es ist denkbar, dass einige Situationen hilfreich sein können, in denen sich Dateien nicht an den erwarteten Orten befinden, z. B. wenn Sie einen schlecht konfigurierten Webserver haben, auf dem jemand http://myserver/../../etc/passwd anfordert. Im Allgemeinen erfordert diese Art der Indirektion jedoch viel Arbeit ein minimaler Sicherheitsvorteil.

29
chronitis

Das Beste, was wäre, ist "völlig nutzlos", wie Sie es ausdrücken. (Es ist keine zusätzliche Hürde für einen Eindringling.)

/etc/passwd enthält zwar Kontonamen, aber jeder, der über Shell-Zugriff auf das System verfügt, kann diese finden.

/etc/shadow enthält vertrauliche Informationen (die Passwort-Hashes), die jedoch nur von root gelesen werden können. Wenn es einem Eindringling gelungen ist, Root-Rechte zu erhalten - wie buchstabieren Sie Disaster?

12
guntbert

In modernen Unices (und Unix-Likes, einschließlich Ubuntu) enthält /etc/passwd keine Geheimnisse. Das Umbenennen würde mehr Mühe bereiten, als es sich lohnt, wenn man bedenkt, wie viele Dienstprogramme neu erstellt werden müssten, um an ihrem neuen Standort danach zu suchen.

/etc/shadow ist eine andere Sache, da diese Datei Geheimnisse enthält, aber das Umbenennen hilft nicht. Es kann nur von root gelesen werden. Selbst wenn ein Hacker als anderer Benutzer in das System eindringt, reicht dies nicht aus, um auf die Datei zuzugreifen. Dies ist der Grund, warum Passwörter aus /etc/passwd herausgenommen wurden: Jeder muss /etc/passwd lesen können, aber nur root muss in der Lage sein, an die tatsächlichen Passwörter zu gelangen, sodass die Passwörter verschoben wurden in eine Datei, die nur root lesen konnte.

Wenn der Hacker macht root wird, rettet Sie ein Umbenennen nicht. Ein einfaches rekursives grep könnte dem Hacker eine Liste von Dateien in einem /etc/shadow -ähnlichen Format geben, und dann muss der Hacker sie nur durchsehen, um die gewünschten Daten zu finden. Sie haben ihn um höchstens ein paar Stunden und wahrscheinlich auch weniger verzögert: Auch dies ist nicht die Zeit wert, die erforderlich ist, um alle Dienstprogramme zu ändern und neu zu kompilieren, die vom Standort von /etc/shadow abhängen.

9
The Spooniest

Das Umbenennen der Dateien /etc/passwd und /etc/shadow ist wahrscheinlich nicht sinnvoll. Wenn Sie jedoch zusätzliche Sicherheit wünschen, sollten Sie sich PAM (steckbare Authentifizierungsmodule) und NSS (Name Service Switch) ansehen. Wie hier.

Mit PAM können Authentifizierungsmodule hinzugefügt werden, die ihre Authentifizierungsinformationen nicht aus den Standarddateien, sondern aus einer anderen Quelle wie ldap oder einer Datenbank lesen. Wenn Sie es verwenden, kann der /etc/shadow fast vollständig beseitigt werden.

NSS ergänzt PAM, indem es einen Teil der Namensauflösung (z. B. zu welcher Gruppe dieser Benutzer gehört) unabhängig von den Standarddateien (/etc/passwd, /etc/groups) macht. Wenn Sie es verwenden, bedeutet dies, dass Ihre passwd-Datei möglicherweise nur eine Fallback-Option für root enthält und nicht mehr. Die Verwendung von SSH-Schlüsseln zur Validierung der Root-Anmeldung würde auch die Notwendigkeit beseitigen, ein Root-Passwort in der Shadow-Datei zu haben (obwohl es wünschenswert sein könnte, wenn die SSH-Verbindung unterbrochen wird).

Wenn Sie Ihre Benutzer nicht über eine separate Datenbank oder einen LDAP-Host authentifizieren möchten, können Sie alternativ auch eigene PAM- und NSS-Module erstellen, deren Daten aus einer nicht standardmäßigen Datei gelesen werden. Diese Option würde ich jedoch nicht empfehlen.

Wenn Sie versuchen möchten, sie zu verwenden, vergessen Sie nicht, auf eine bekannte, funktionierende Authentifizierungsebene zurückzugreifen. Andernfalls können Sie sich selbst mit root aus dem System ausschließen.

Beachten Sie, dass nicht alle Anwendungen PAM unterstützen (viele jedoch). NSS kann jedoch verwendet werden, um die Authentifizierung für Apps zu implementieren, die PAM nicht unterstützen. Einige Websites, die ich über NSS gelesen habe, schlagen diesen Ansatz tatsächlich vor. Dies bedeutet jedoch, dass das NSS-Modul jedem, der auf die NSS-Authentifizierungsebene zugreifen kann, das (potenziell) gehashte Kennwort zur Verfügung stellt. Dies ist fast immer etwas, das Sie vermeiden möchten (dies entspricht im Grunde dem Gewähren von Lesezugriff auf die Schattendatei ohne Rootberechtigung) )! Wenn Sie diesen Ansatz wählen, stellen Sie immer sicher, dass NSS nur verwendet wird, um dem Benutzer die Basisdaten (wie den Inhalt von /etc/passwd) bereitzustellen, und PAM als Authentifizierungsebene verwendet wird.

2
SztupY

Sie können diese Dateien nicht einfach umbenennen. Viele Prozesse und Programme werden danach suchen, da dies ein Standard in Linux-Systemen ist. Sie können Ihren Server auf die richtige Weise sichern.

2
Frantique