Wir haben Verschlüsselung und sicheren Fernzugriff als Methoden zur Sicherung und Absicherung von Linux untersucht. Verschlüsselung macht Daten ohne den Entschlüsselungsschlüssel unlesbar. In dem Szenario, in dem ein Angreifer vollständigen physischen Zugriff auf Ihren Laptop hat, beispielsweise indem er ihn stiehlt, möchten wir sicherstellen, dass er ihm keinen Nutzen bringt. Ein Festplattenlaufwerk voller verschlüsselter Daten sollte so gut sein wie ein beschädigtes. Wenn Sie Ihr Linux-System mit SSH für die Fernverwaltung einrichten, machen Sie Ihre Linux-Box auch für alle interessierten Parteien verfügbar. Viele böswillige Hacker suchen im Internet nach lauschenden SSH-Servern und beginnen, die Anmeldeinformationen zu erraten; normalerweise versuchen sie es mit root und den gängigsten Passwörtern. Dies war Teil von TryHackMe Linux-Systemhärtung

Holen Sie sich Blue Team Notes

Verschlüsselung

Durch Verschlüsselung werden Daten ohne den Entschlüsselungsschlüssel unlesbar. In einem Szenario, in dem ein Angreifer beispielsweise durch Diebstahl vollständigen physischen Zugriff auf Ihren Laptop hat, möchten wir sicherstellen, dass er ihm keinen Nutzen bringt. Ein Festplattenlaufwerk voller verschlüsselter Daten sollte genauso gut sein wie ein beschädigtes.

Es gibt verschiedene Softwaresysteme und Tools, die eine Verschlüsselung ermöglichen Linux Systeme. Da viele moderne Linux-Distributionen mit LUKS (Linux Unified Key Setup) ausgeliefert werden, wollen wir genauer darauf eingehen.

Wir verfügen über folgende Fachgebiete:

  • LUKS phdr: Es steht für LUKS PartitionsheaderLUKS phdr speichert Informationen über die UUID (Universally Unique Identifier), die verwendete Verschlüsselung, den Verschlüsselungsmodus, die Schlüssellänge und die Prüfsumme des Hauptschlüssels.
  • KM: KM steht für Wichtiges Material, wo wir KM1, KM2, …, KM8 haben. Jeder Schlüsselmaterialabschnitt ist mit einem Schlüsselschlitz verknüpft, der als aktiv angezeigt werden kann in LUKS phdr. Wenn der Schlüsselsteckplatz aktiv ist, enthält der zugehörige Schlüsselmaterialabschnitt eine Kopie des Hauptschlüssels, der mit dem Kennwort eines Benutzers verschlüsselt ist. Mit anderen Worten: Wir könnten den Hauptschlüssel mit dem Kennwort des ersten Benutzers verschlüsselt und in KM1 gespeichert haben, mit dem Kennwort des zweiten Benutzers verschlüsselt und in KM2 gespeichert haben und so weiter.
  • Massendaten: Hiermit sind die mit dem Hauptschlüssel verschlüsselten Daten gemeint. Der Hauptschlüssel wird in einem Schlüsselmaterialabschnitt gespeichert und mit dem Kennwort des Benutzers verschlüsselt.

LUKS verwendet vorhandene Blockverschlüsselungsimplementierungen wieder. Der Pseudocode zum Verschlüsseln von Daten verwendet die folgende Syntax:

enc_data = verschlüsseln(Chiffrename, Chiffremodus, Schlüssel, Original, Originallänge)

Wie wir sehen können, LUKS funktioniert mit verschiedenen Chiffren und Verschlüsselungsmodi. Original bezieht sich auf die Klartextdaten der Länge, ursprüngliche_länge. Das vom Benutzer bereitgestellte Passwort wird verwendet, um den Verschlüsselungsschlüssel abzuleiten. Der Schlüssel wird mithilfe der passwortbasierten Schlüsselableitungsfunktion 2 (PBKDF2) abgeleitet.

Schlüssel = PBKDF2(Passwort, Salt, Iterationszahl, Länge des abgeleiteten Schlüssels)

Verwendung einer Salz mit einer Hash-Funktion, die eine Iterationsanzahl stellt sicher, dass der resultierende Schlüssel sicher genug für die Verschlüsselung ist. Weitere Informationen finden Sie im Einführung in die Kryptographie Zimmer.

Um Daten zu entschlüsseln und den ursprünglichen Klartext wiederherzustellen, LUKS verwendet die folgende Syntax:

original = entschlüsseln(Chiffrename, Chiffremodus, Schlüssel, Verschlüsselungsdaten, Originallänge)

Bei den meisten Distributionen können Sie ein Laufwerk über eine grafische Oberfläche verschlüsseln. Wenn Sie jedoch LUKS Von der Befehlszeile aus sind die Schritte etwa diese:

  • Installieren cryptsetup-luks. (Sie können apt installiere Cryptsetupyum installiere cryptsetup-luks oder dnf installiere Cryptsetup-luks für Ubuntu/Debian, RHEL/Cent Betriebssystem, bzw. Fedora.)
  • Bestätigen Sie den Partitionsnamen mit fdisk -llsblk oder schwarzkind. (Erstellen Sie eine Partition mit fdisk Falls benötigt.)
  • Einrichten der Partition für LUKS Verschlüsselung: cryptsetup -y -v luksFormat /dev/sdb1. (Ersetzen /dev/sdb1 durch den Namen der Partition, die Sie verschlüsseln möchten.)
  • Erstellen Sie eine Zuordnung für den Zugriff auf die Partition: cryptsetup luksOpen /dev/sdb1 EDC-Laufwerk.
  • Mapping-Details bestätigen: ls -l /dev/mapper/EDCdrive Und cryptsetup -v status EDCdrive.
  • Vorhandene Daten mit Null überschreiben: dd wenn=/dev/zero von=/dev/mapper/EDCdrive.
  • Formatieren Sie die Partition: mkfs.ext4 /dev/mapper/EDCdrive -L "Strategos USB".
  • Mounten Sie es und verwenden Sie es wie eine normale Partition: mount /dev/mapper/EDCdrive /media/secure-USB.

Wenn Sie die LUKS Einstellung können Sie den Befehl cryptsetup luksDump /dev/sdb1. In der Terminalausgabe unten sehen wir die UUID der verschlüsselten Festplatte. Wir können auch sehen, dass die verwendete Chiffre aes-xts-plain64. Was den Schlüssel betrifft, verwendete PBKDF2 SHA256 mit dem bereitgestellten Salt für 194180 Iterationen.

Sicherer Fernzugriff

Der Fernzugriff auf ein System ist eine sehr praktische Möglichkeit, auf Ihr System und Ihre Dateien zuzugreifen, wenn Sie nicht physisch an der Tastatur des Zielsystems anwesend sind. Dies bedeutet jedoch auch, dass Sie freiwillig einen Dienst bereitstellen, auf den Angreifer abzielen. Zu den häufigsten Angriffen gehören:

  1. Passwort-Sniffing
  2. Erraten von Passwörtern und Brute-Force-Angriffe
  3. Ausnutzen des Listening-Dienstes

Schutz vor Passwort-Sniffing

Der Fernzugriff kann über viele verschiedene Protokolle und Dienste erfolgen. Obwohl alle modernen Systeme verschlüsselte Protokolle verwenden, wie z. B. SSH Für den Fernzugriff verwenden ältere Systeme möglicherweise noch Klartextprotokolle, beispielsweise das Telnet-Protokoll.

Obwohl der Benutzer in der folgenden Abbildung ein sicheres Kennwort ausgewählt hat, wird es im Klartext gesendet, sodass es für jeden mit einem Paketerfassungstool über den Netzwerkpfad lesbar ist.

Es ist wichtig, dass Sie ein Protokoll auswählen, das den Datenverkehr verschlüsselt. SSH Das Protokoll gibt es seit mehr als zwei Jahrzehnten. Es hat sich bewährt. Es hat viele Einsatzmöglichkeiten, vom sicheren Fernzugriff bis hin zu sicheren Dateiübertragungen.

Schutz vor dem Erraten von Passwörtern

Wenn Sie Ihr Linux System mit SSH für die Remote-Verwaltung, machen Sie Ihre Linux-Box auch für alle interessierten Parteien verfügbar. Viele böswillige Hacker suchen im Internet nach lauschenden SSH-Servern und beginnen, die Anmeldeinformationen zu erraten; normalerweise versuchen sie Wurzel mit den gebräuchlichsten Passwörtern.

Die folgende Abbildung zeigt, dass das System die SSH Protokoll, um verschlüsselte Kommunikation zu gewährleisten; die Authentifizierung basiert jedoch auf Anmeldeinformationen. Viele Benutzer sind versucht, schwache Passwörter zu verwenden oder dasselbe Passwort für andere Dienste wiederzuverwenden. Obwohl qwerty1234 Obwohl es nicht im englischen Wörterbuch steht, ist es häufig unter den 10 oder 20 am häufigsten verwendeten Passwörtern zu finden und somit leicht zu erraten.

Weil du SSH Der Server wird so konfiguriert, dass er 24 Stunden am Tag, 365 Tage im Jahr auf eingehende Verbindungen wartet. Böse Benutzer haben alle Zeit der Welt, ein Passwort nach dem anderen auszuprobieren. Es gibt ein paar Richtlinien, die Sie verwenden können:

  1. Deaktivieren Sie die Remote-Anmeldung als Wurzel; Anmeldung als Nicht-Root-Benutzer erzwingen.
  2. Deaktivieren Sie die Kennwortauthentifizierung. Erzwingen Sie stattdessen die Authentifizierung mit öffentlichem Schlüssel.

Der Grund für die oben genannten Richtlinien ist, dass Sie nicht wollen, dass der Gegner in der Lage ist, die Wurzel Konto direkt. Außerdem möchten Sie nicht, dass ein Angreifer Zugriff erhält, wenn das Passwort schwach ist, auch wenn es sich nicht um ein Root-Konto handelt.

Die Konfiguration des OpenSSH-Servers kann über den sshd_config Datei, normalerweise gelegen unter /etc/ssh/sshd_config. Sie können den Root-Login deaktivieren, indem Sie die folgende Zeile hinzufügen:

PermitRootLogin nein

Obwohl ein Passwort wie 9bNfX2gmDZ4o ist schwer zu erraten, die meisten Benutzer finden es unbequem, es sich zu merken. Stellen Sie sich vor, das Konto gehört dem sudoers (Sudo Gruppe), und der Benutzer muss dieses Passwort jedes Mal eingeben, wenn er einen Befehl mit Sudo. Dazu müssen Sie vielleicht Disziplin aufbringen, aber Sie können nicht erwarten, dass es bei jedem funktioniert.

Viele Benutzer neigen dazu, ein benutzerfreundliches Passwort auszuwählen oder dasselbe Passwort für mehrere Konten zu verwenden. Beide Vorgehensweisen machen es dem Angreifer leichter, das Passwort zu erraten.

Am besten verlassen Sie sich auf die Public-Key-Authentifizierung mit SSH um die Sicherheit des Remote-Login-Systems zu verbessern und es so ausfallsicher wie möglich zu machen.

Wenn Sie noch kein SSH Schlüsselpaar müssen Sie den Befehl eingeben ssh-keygen -t rsa. Es wird ein privater Schlüssel generiert, der gespeichert wird in id_rsa und ein öffentlicher Schlüssel gespeichert in id_rsa.pub.

Für die SSH Server, der Sie mit Ihrem öffentlichen Schlüssel anstelle Ihrer Passwörter authentifiziert, muss Ihr öffentlicher Schlüssel auf den Ziel-SSH-Server kopiert werden. Eine einfache Möglichkeit hierfür wäre die Ausgabe des Befehls ssh-copy-id Benutzername@Server Wo Nutzername ist Ihr Benutzername und Server ist der Hostname oder die IP-Adresse des SSH Server.

Stellen Sie am besten sicher, dass Sie Zugriff auf das physische Terminal haben, bevor Sie die Kennwortauthentifizierung deaktivieren, um zu vermeiden, dass Sie sich aussperren. Möglicherweise müssen Sie sicherstellen, dass die folgenden beiden Zeilen in Ihrem sshd_config Datei.

  • PubkeyAuthentifizierung ja um die Authentifizierung mit öffentlichem Schlüssel zu aktivieren
  • PasswortAuthentifizierung nein um die Kennwortauthentifizierung zu deaktivieren

Raumantworten

Mit welchem Befehl kann man ein Passwort für den GRUB-Bootloader erstellen?

Wofür steht PBKDF2?

Wofür steht LUKS?

Wir können keinen externen Speicher an den VM, deshalb haben wir eine /home/tryhackme/secretvault.img Datei stattdessen. Sie ist mit dem Passwort verschlüsselt 2N9EdZYNkszEE3Ad. Um darauf zuzugreifen, müssen Sie es öffnen mit Verschlüsselungssetup und mounten Sie es dann in ein leeres Verzeichnis, wie zum Beispiel mein Tresor. Was ist die Flagge im geheimen Tresor?

Auf der Linux-VM läuft eine Firewall. Sie lässt Port 22 TCP zu, da wir uns per SSH auf die Maschine einloggen können. Sie lässt einen anderen TCP-Port zu. Welchen?

Was ist erlaubt UDP Hafen?

Welche Flagge versteckt sich im sshd_config Datei?
Eine Möglichkeit zum Deaktivieren eines Kontos besteht in der Bearbeitung des passwd Datei und ändern Sie die Shell des Kontos. Welcher Wert wird für die Shell empfohlen?

Wie lautet der Name der Sudoers-Gruppe der RedHat- und Fedora-Systeme?

Wie heißt die Sudoers-Gruppe auf Debian- und Ubuntu-Systemen?

Außer versuche mich Und Ubuntu, wie lautet der Benutzername, der zur Gruppe „sudoers“ gehört?

Was ist neben FTPS ein weiterer sicherer Ersatz für TFTP und FTP?
Welchen Befehl würden Sie verwenden, um ein älteres Red Hat-System zu aktualisieren?

Welchen Befehl würden Sie verwenden, um ein modernes Fedora-System zu aktualisieren?

Welche zwei Befehle sind erforderlich, um ein Debian-System zu aktualisieren? (Verbinden Sie die beiden Befehle mit &&.)

Was macht lecker stehen für?

Was macht nicht bestanden stehen für?

Welche Flagge versteckt sich im Quellenliste Datei?

Mit welchem Befehl können Sie die letzten 15 Zeilen von kern.log?

Mit welchem Befehl lassen sich die Zeilen anzeigen, die das Wort enthalten bestritten in der Datei sicher?

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen