Kontoverwaltung unter Linux. Teil 1. Speicherung von Anmeldeinformationen / Sudo Null IT News

Dateien und ihre Eigentümer

Dateien in Betriebssystemen der Linux-Familie können als Grundlage von allem bezeichnet werden. Für Linux ist alles eine Datei. Mit anderen Worten, Dateien sind nicht nur Objekte zum Speichern von Informationen, sondern auch Geräte, Tunnel, Steckdosen und vieles mehr. Gleichzeitig müssen wir den Zugriff auf bestimmte Dateien einschränken, abhängig von den Rechten des Benutzers, der auf die Datei zugreift.

Jede Datei in Linux-Systemen hat einen Eigentümer (Benutzer). Und wie wir bereits gesagt haben, hat jeder Benutzer eine eindeutige Kennung – Benutzer-ID. Es gibt auch Gruppen, dh Vereinigungen von Benutzern auf der einen oder anderen Basis. Jeder Benutzer muss Mitglied mindestens einer Gruppe sein, aber es ist möglich, einen Benutzer mehreren Gruppen hinzuzufügen. Genau wie ein Benutzer hat eine Gruppe eine eindeutige Gruppenkennung namens GID – Gruppen-ID.

Wo werden die Konten gespeichert?

Das Linux-Betriebssystem speichert Kontoinformationen in der Datei /etc/passwd.
Es enthält Folgendes:

Wo:
Benutzer-ID – Anmeldung;
Passwort – das Vorhandensein eines Passworts;
UID – Benutzerkennung;
GID – Standardgruppen-ID;
Benutzerinfo – zusätzliche Informationen über den Benutzer (vollständiger Name, Kontakte usw.)
Home Dir – Anfangsverzeichnis (auch bekannt als Home-Verzeichnis);
Shell – Registrierungs-Shell oder Shell.

In den frühen Tagen von Linux speicherte die Datei /etc/passwd auch Passwort-Hashes für Benutzerkonten. Aber dann wurden diese Daten zu einer leichten Beute für Eindringlinge, da jeder Benutzer diese Datei lesen und die Hashes zur späteren Entschlüsselung kopieren konnte.

Testweise können Sie unter einem normalen Benutzerkonto (nicht root) cat /etc/passwd eingeben und erhalten den Inhalt der Datei.

Die /etc/shadow-Datei wird verwendet, um Passwort-Hashes in modernem Linux zu speichern.

Und normale Benutzer haben keinen Zugriff mehr auf den Inhalt dieser Datei. Somit sind Hashes vor Benutzerzugriffen geschützt.

Die Datei /etc/shadow hat folgende Struktur:

loginID:password:lastchg:min:max:warn:inactive:expire

wo:

loginID – Benutzername;
Passwort – verschlüsseltes Passwort;
lastchg – die Anzahl der Tage seit dem 1.1.1970, als das Passwort zuletzt geändert wurde;
min – Mindestanzahl von Tagen zwischen Passwortänderungen;
max – die maximale Anzahl von Tagen, während der das Passwort gültig ist;
warn – die Anzahl der Tage, in denen der Benutzer vor dem Ablauf des Passworts gewarnt wird;
inaktiv – die Anzahl der Tage, die der Benutzer inaktiv sein kann, bevor er gesperrt wird;
abgelaufen – das Datum, an dem das Benutzerkonto abläuft.

Der fehlende Zugriff auf /etc/shadow für normale Benutzer macht potenziellen Crackern sicherlich das Leben schwer, schließt aber den Zugriff auf Hashes nicht vollständig aus. Mit physischem Zugriff kann ein Angreifer von einem Flash-Laufwerk booten und die Partition mounten und die gewünschte Datei auf sich selbst kopieren. Ebenso können Sie im Fall der Virtualisierung die ausgeschaltete virtuelle Maschine auf sich kopieren und dann auch von Wechselmedien booten.

Für den Fall, dass ein Hacker normale Benutzerrechte wie www erhalten hat, kann er versuchen, die Berechtigungen zu erhöhen, um die Datei zu lesen. Außerdem kann der Benutzer, wenn er beliebige Docker-Container laden kann, unter bestimmten Bedingungen die Rechte zum Lesen von /etc/shadow erhalten. Darüber werden wir im dritten Artikel ausführlich sprechen.

Schnelle Aufzählung

Ohne auf das Thema Hacking einzugehen (schließlich geht es in diesem Artikel eher um die Linux-Administration), beschreiben wir kurz die weiteren Aktionen des Angreifers nach dem Zugriff auf Passwort-Hashes.

Das Aufzählen von Passwörtern ist selbst auf einem ziemlich leistungsfähigen Rechner ein ziemlich langwieriger Prozess. Und um es so schnell wie möglich zu beschleunigen, gibt es im Voraus generierte Sätze von Passwort-Hashes, zum Beispiel alle Zahlenkombinationen bis zu 10 Zeichen lang, kleine lateinische Buchstaben bis zu 10 Zeichen usw. Komplexere Kombinationen können auch fertig bezogen werden, aber das kostet schon Geld. Ein Cracker kann jedoch viel Zeit sparen, indem er fertige Hashes verwendet.

Und ein bisschen mehr … Salz

Um das Problem der Verwendung vorgefertigter Hashes zu lösen, begannen die Entwickler von Linux-Betriebssystemen, Salt (Salt) zu verwenden, dh einen Satz von mehreren zusätzlichen Bytes, die dem Passwort vor dem Hashing hinzugefügt wurden.

Typischerweise ist das Format des in /etc/shadow gespeicherten Passworts:
$id $salt $hashed, wobei $id der Passwortverschlüsselungsalgorithmus ist ($1 ist MD5, $2a ist Blowfish, $2y ist Blowfish, $5 ist SHA-256, $6 ist SHA-512).

Daher erschwert die Verwendung eines Salzes zur Verschlüsselung von Passwörtern Brute Force, da es die Verwendung vorgefertigter Tabellen nicht zulässt.

Fazit

In diesem Artikel haben wir die Mechanismen für die Arbeit mit Konten in der Linux-Betriebssystemfamilie untersucht, insbesondere den Mechanismus zur Gewährleistung der Sicherheit beim Speichern von Passwort-Hashes. Im nächsten Artikel beginnen wir damit, über Zugriffseinstellungen und die Fehler zu sprechen, die Administratoren beim Vornehmen dieser Einstellungen machen können.

Statt eines Fazits möchte ich Sie zu kostenlosen Linux-Demos von OTUS einladen. Über die folgenden Links können Sie sich für die Kurse anmelden:

Similar Posts

Leave a Reply

Your email address will not be published.