Benenne / etc / passwd und / etc / shadow aus Sicherheitsgründen [geschlossen]

8

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

Ich dachte, ich kann einen Link machen, aber für einen Hacker wird es einfach sein ls -l zu tun.

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

    
Marco Caggiano 07.02.2014, 16:03

5 Antworten

29

Der Dateisystemhierarchiestandard für Unix-ähnliche Systeme enthält /etc/passwd an einem festen Ort und Werkzeuge sind daher normalerweise fest codiert, um danach zu suchen. Theoretisch könnten Sie alle relevanten Dienstprogramme erneut kompilieren, um nach einem neuen Speicherort zu suchen. Jeder Angreifer könnte in diesen Binärdateien immer nur nach Zeichenfolgen suchen, um die neue Datei zu finden, oder mithilfe von regulären Ausdrücken Dateien mit passwd -ähnlichen Inhalten finden .

Die Datei shadow sollte nur für root (und möglicherweise für eine Gruppe namens shadow ) lesbar sein. Wenn ein Angreifer Root-Zugriff auf Ihr System erhalten hat, haben sie die vollständige Kontrolle und ob sie Ihre Passwd / Shadow-Dateien lesen können, ist zu diesem Zeitpunkt ziemlich irrelevant.

Es gibt möglicherweise ein paar Situationen, in denen Dateien, die nicht an erwarteten Orten sind, hilfreich sein könnten, zB wenn Sie einen schlecht konfigurierten Webserver haben, der http://myserver/../../etc/passwd anfordert, aber im Allgemeinen erfordert diese Art der Indirektion viel Arbeit für einen minimalen Sicherheitsvorteil.

    
chronitis 07.02.2014 16:14
12

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

/etc/passwd enthält Kontonamen, aber jeder, der Shell-Zugriff auf das System hat, kann sie finden.

/etc/shadow enthält vertrauliche Informationen (die Passwort-Hashes), aber es ist nur für root lesbar. Wenn ein Eindringling Root-Rechte erhalten hat - wie buchstabieren Sie Katastrophe ?

    
guntbert 07.02.2014 18:43
9

In modernen Unices (und Unix-Likes, einschließlich Ubuntu) enthält /etc/passwd keine Geheimnisse. Das Umbenennen wäre problematischer, als es sich lohnt, wenn man bedenkt, wie viele Dienstprogramme neu erstellt werden müssen, um nach dem neuen Speicherort zu suchen.

/etc/shadow ist eine andere Sache, da es Geheimnisse in dieser Datei gibt, aber das Umbenennen wird nicht helfen. Es ist nur für root lesbar, selbst wenn ein Hacker als ein anderer Benutzer in das System gelangt, reicht das nicht aus, um zu der Datei zu gelangen. Aus diesem Grund wurden Passwörter von /etc/passwd an erster Stelle entfernt: Jeder muss in der Lage sein, /etc/passwd zu lesen, aber nur root muss die tatsächlichen Passwörter abrufen können, sodass die Passwörter in eine Datei verschoben wurden nur root konnte lesen.

Wenn der Hacker root bekommt, wird ein Umbenennen Sie nicht retten. Ein einfaches rekursives grep könnte dem Hacker eine Liste von Dateien in einem /etc/shadow -ähnlichen Format geben, und dann muss der Hacker nur durch sie schauen, um die Daten zu finden, die er will. Sie haben ihn höchstens um ein paar Stunden und wahrscheinlich auch weniger verzögert: Es ist nicht mehr die Zeit wert, die benötigt wird, um alle Dienstprogramme zu ändern und neu zu kompilieren, die vom Speicherort von /etc/shadow abhängen.

    
The Spooniest 07.02.2014 19:55
2

Sie können diese Dateien nicht einfach umbenennen. Viele Prozesse und Programme werden nach ihnen suchen, da dies ein Standard in Linux-Systemen ist. Was Sie tun können, ist Ihren Server in der richtigen Weise zu sichern.

    
Frantique 07.02.2014 16:13
1

Obwohl es wahrscheinlich nicht sinnvoll ist, die Dateien /etc/passwd und /etc/shadow umzubenennen, sollten Sie, wenn Sie zusätzliche Sicherheit wünschen, PAM (Pluggable Authentication Modules) und NSS (Name Service Switch) betrachten. Wie hier.

PAM kann verwendet werden, um Authentifizierungsmodule hinzuzufügen, die ihre Authentifikation, wenn sie aus den Standarddateien stammen, aus einer anderen Quelle, wie aus ldap oder einer Datenbank, lesen. Die Verwendung würde bedeuten, dass die /etc/shadow fast vollständig eliminiert werden kann.

NSS ergänzt PAM, indem es einige der Namensauflösung (wie die Gruppen, denen dieser Benutzer angehört) unabhängig von den Standarddateien ( /etc/passwd , /etc/groups ) macht. Wenn Sie es verwenden, bedeutet das, dass Ihre passwd-Datei möglicherweise nur eine Fallback-Option für root und nichts mehr enthält. Die Verwendung von SSH-Schlüsseln zur Validierung der Root-Anmeldung würde auch die Notwendigkeit eines Root-Passworts in der Shadow-Datei überflüssig machen (obwohl dies bei einer Unterbrechung der SSH-Verbindung wünschenswert sein könnte).

Alternativ, wenn Sie Ihre Benutzer nicht über eine separate Datenbank oder einen LDAP-Host authentifizieren möchten, können Sie auch eigene PAM- und NSS-Module erstellen, die ihre Daten aus einer nicht standardmäßigen Datei lesen, obwohl ich dies nicht empfehlen würde diese Option.

Wenn Sie versuchen, sie zu verwenden, vergessen Sie nie, eine Art von Fallback zu einer bekannten, funktionierenden Authentifizierungsschicht beizubehalten, andernfalls können Sie sich selbst mit root aus dem System ausschließen.

Beachten Sie, dass nicht alle Anwendungen PAM unterstützen (viele von ihnen jedoch). NSS kann jedoch verwendet werden, um die Authentifizierung für Anwendungen zu implementieren, die PAM nicht unterstützen, und einige Websites, die ich über NSS gelesen habe, schlagen diesen Ansatz vor. Dies bedeutet jedoch, dass das NSS-Modul jedem Benutzer, der auf die NSS-Authentifizierungsschicht zugreifen kann, das (potentiell) gehashte Kennwort zur Verfügung stellt. Dies ist fast immer etwas, das Sie vermeiden möchten (im Prinzip das Gleiche wie das Nicht-Root-Lesen der Schattendatei) )! Wenn Sie also diesen Ansatz verfolgen, stellen Sie immer sicher, dass NSS nur verwendet wird, um dem Benutzer die grundlegenden Daten zur Verfügung zu stellen (wie der Inhalt von /etc/passwd ), und PAM wird als Authentifizierungsschicht verwendet.

    
SztupY 07.02.2014 23:14

Tags und Links