Jeffrey Cross
Jeffrey Cross

Ergreifen Sie diese Schritte, um Ihren Himbeer-Pi gegen Angreifer zu sichern

Raspberry Pi-Boards eignen sich hervorragend für jedes Projekt - sie sind billig, einfach zu bedienen, können eine Vielzahl von möglichen Betriebssystemen ausführen und bieten programmierbare GPIO-Pins sowie Verfügbarkeit von Multi-Core-CPU und mehrere USB-Anschlüsse.

Sie können Raspberry Pi-Boards für alle Arten von Automatisierungs- und Informationserfassungsprojekten verwenden. Wenn Sie nicht vorsichtig sind, kann Ihr kleines Hobbyprojekt zu einem Sicherheitsrisiko führen, das als Einstiegspunkt in Ihr Netzwerk fungiert. Sie können keine sicheren Startvorgänge ausführen, wie z. B. ARM Trustzone, und die SD-Karte und das Betriebssystem werden nicht einfach verschlüsselt. Befolgen Sie diese Sicherheitstipps, um Ihren Pi und andere Geräte in Ihrem Netzwerk zu schützen.

Warum sollte jemand einen Himbeer-Pi hacken?

  • Seine Rechenleistung kann für Vorgänge wie das Mining von Kryptowährung missbraucht werden.
  • Es kann als Absprungpunkt verwendet werden, um andere Hosts anzugreifen, um die Spuren des Angreifers abzudecken.
  • Es ist ein Einstiegspunkt zum Rest eines internen Netzwerks. Ein Angreifer kann die Dateiserver leicht erreichen und versuchen, Ransomware zu installieren, Dokumente für Erpressung zu erhalten oder die Firewall- und Routereinstellungen zu manipulieren, um in Zukunft einen permanenten Zugriff für spätere schändliche Aktionen sicherzustellen, entweder durch Angriff auf die Webkonsole des Routers oder durch Ausführen von uPNP Manipulation, um dem Angriff mehr Ports für das Internet zu ermöglichen.

Kennwörter

Ändern Sie die Standardkennwörter - Wenn Sie eine neuere Version von NOOBS oder Raspbian installieren, müssen Sie das Standardkennwort für den Benutzer "pi" in etwas ändern, das schwer zu erraten ist. Eine Passphase wie "iamasuckerfor5dollarmojitos" ist viel besser als [email protected]! Selbst wenn Sie vorhaben, das Konto zu deaktivieren, ist dieser erste Schritt der grundlegende Schutz für den Fall, dass Sie es vergessen.

Benutzerkonten

Der nächste Schritt sollte sein, das Standard-Pi-Konto in Raspbian zu deaktivieren. Erstellen Sie zuvor einen neuen Account im System. Du kannst den ... benutzen useradd Befehl dazu mit einigen zusätzlichen Flags, um anzugeben, dass ein neues Basisverzeichnis für den Benutzer erstellt werden soll. Melden Sie sich als Pi-Benutzer an und geben Sie den Befehl ein:

$ sudo / usr / sbin / useradd --groups sudo -m makezine

Verwenden Sie Ihren eigenen Benutzernamen anstelle von "makezine". Dadurch wird ein neues Konto erstellt. Erstellen Sie ein Verzeichnis für das Konto (z. B. / home / makezine) und fügen Sie das neue Konto der sudo-Gruppe hinzu, damit der Benutzer den sudo-Befehl verwenden kann. Nachdem das neue Benutzerkonto erstellt wurde, müssen wir ein Kennwort für das Konto festlegen. Sie können dies mit dem Befehl tun:

$ sudo passwd makezine

Setzen Sie anschließend das Root-Passwort zurück. Wähle etwas langes und schwer zu erraten.

$ sudo passwd root

Schließlich möchten Sie das Pi-Konto deaktivieren:

$ sudo passwd --lock pi

Jetzt können Sie sich vom Pi-Konto abmelden und sich mit Ihrem neuen Konto und Kennwort anmelden.

Sicherung von SSH

Standardmäßig installiert Raspbian eine Remote Access Shell (SSH), auf die von überall aus zugegriffen werden kann. Sie können dies deaktivieren, indem Sie SSH so einrichten, dass sich nur Computer mit einem autorisierten SSH-Schlüssel anmelden können. Sichern Sie Ihre privaten Schlüssel an mindestens zwei vertrauenswürdigen Speicherorten.

Um sie einzurichten, bearbeiten Sie die SSH-Konfigurationsdatei mit vi oder einem anderen Texteditor mit dem Befehl:

$ sudo vi / etc / ssh / sshd_config

Stellen Sie sicher, dass die folgenden Zeilen festgelegt und unkommentiert sind. Dies bedeutet, dass sich die Zeilen in der Datei befinden und keinem Hash-Tag-Symbol vorangestellt wird, das eine Zeile als Kommentar markiert und zu Konfigurationszwecken ignoriert:

# Authentication: LoginGraceTime 120 PermitRootLogin Nein StrictModes Ja RSAAuthentication Ja PubkeyAuthentication Ja AuthorizedKeysFile% h / .ssh / Authorized_keys # Um leere Kennwörter zu aktivieren, ändern Sie in Ja (NOT EMPFEHLEN). PermitEmptyPasswords Nein # einige PAM-Module und -Threads) ChallengeResponseAuthentication no # In no ändern, um die Klartextpasswörter im Tunnel zu deaktivieren. PasswordAuthentication no UsePAM-Nr

Die letzte Zeile ist sehr wichtig, da dadurch Pluggable Authentication Modules (PAM) oder native Linux-Authentifizierung deaktiviert werden und Benutzer sich nur mit einem Schlüssel anmelden können. Als Nächstes generieren Sie einen SSH-Schlüssel. Dies ist mit PuTTY unter Windows oder mit dem Befehl ssh-keygen unter Linux möglich. Erstellen Sie ein .ssh-Verzeichnis im Basisverzeichnis Ihres Benutzers und eine Datei mit dem Namen "Authorized_keys" mit den folgenden Befehlen. Stellen Sie sicher, dass Sie die Berechtigungen richtig festlegen (andernfalls schlägt die schlüsselbasierte Authentifizierung fehl):

$ mkdir ~ / .ssh $ chmod 0700 ~ / .ssh $ touch ~ / .ssh / Authorized_keys $ chmod 0600 ~ / .ssh / Authorized_keys

Verwenden Sie als Nächstes den Texteditor, um die Datei authorized_keys zu bearbeiten und in den von Ihnen generierten öffentlichen Schlüssel einzufügen, um sich anmelden zu können. Stellen Sie sicher, dass Sie SSH neu starten, um sicherzustellen, dass die Änderungen mit dem folgenden Befehl wirksam werden:

$ sudo systemctl ssh neu starten

Firewall

Nachdem Sie SSH gesperrt haben, möchten Sie sicherstellen, dass die iptables-Firewall auf Ihrem Pi ausgeführt wird. Sie können die Firewall so konfigurieren, dass sie eine Nachricht protokolliert, wenn eine Firewall-Regel aktiviert und eine Verbindung blockiert wird. Stellen Sie zunächst sicher, dass iptables mit dem Befehl installiert ist:

$ sudo apt-get install iptables iptables-persistent

Beachten Sie, dass die Verwendung der iptables-Firewall das Laden neuer Kernelmodule erfordert. Am einfachsten laden Sie sie, indem Sie Ihren Pi neu starten. Sobald iptables installiert ist, überprüfen Sie die aktuellen iptables-Regeln mit dem Befehl:

$ sudo / sbin / iptables -L

Dadurch werden die Regeln aufgelistet, die wahrscheinlich leer sind. Sie können diese Regeln in einer Textdatei speichern und mit dem Befehl bearbeiten:

$ sudo / sbin / iptables-save> /etc/iptables/rules.v4

Diese Datei wird von iptables-persistent beim Booten oder Neustarten des Systems verwendet, um sicherzustellen, dass die Firewall weiterhin ausgeführt wird. Speichern Sie die Datei, und bearbeiten Sie sie dann so, dass sie ungefähr wie folgt aussieht (wobei Sie die Regeln ändern, die Sie benötigen):

$ sudo cat /etc/iptables/rules.v4: INPUT ACCEPT [0: 0]: FORWARD ACCEPT [0: 0]: OUTPUT ACCEPT [0: 0] # Erlaubt allen Loopback-Verkehr (lo0) und den gesamten Datenverkehr auf 127 / 8 das lo0 nicht verwendet -EINGANG -i lo -j AKZEPTIEREN-EINGABE! -i lo -d 127.0.0.0/8 -j ABLEHNEN # Akzeptiert alle bestehenden eingehenden Verbindungen. -A INPUT -m-Status --Stat ESTABLISHED, RELATED -j ACCEPT # Erlaubt allen ausgehenden Datenverkehr. # Sie können dies ändern, um nur bestimmten Datenverkehr zuzulassen. - A OUTPUT -j ACCEPT # Erlaubt SSH-Verbindungen. # Die --dport-Nummer stimmt mit der in / etc / ssh / sshd_config überein. EINGABE -p tcp -m state --state NEW --dport 22 -j ACCEPT # Protokoll iptables abgelehnt Anrufe (Zugriff über Befehl 'dmesg') -A INPUT -m Limit --limit 5 / min -j LOG --log-Präfix "iptables denied:" --log-level 7 # Alle anderen eingehenden Nachrichten ablehnen - Standardverweigerung, sofern nicht explizit erlaubte Politik: -A INPUT -j REJECT -A FORWARD -j REJECT COMMIT

Stellen Sie als Nächstes sicher, dass Ihre Iptables ordnungsgemäß funktionieren. Dies kann schwierig sein, da Sie möglicherweise über SSH aus der Ferne verbunden sind, und wenn Sie etwas durcheinander gebracht haben, möchten Sie nicht, dass Ihre Verbindung getrennt wird. Glücklicherweise gibt es einen Befehl, der Ihnen hilft, indem Sie Regeln anwenden und um Bestätigung bitten, dass Sie immer noch eine Verbindung herstellen können. Wenn Sie nicht innerhalb einer bestimmten Zeit antworten, geht das Programm davon aus, dass Sie die Verbindung getrennt haben, und Ihre Änderungen werden rückgängig gemacht. Wenn Sie antworten, werden Ihre Änderungen dauerhaft übernommen. Verwenden Sie dazu den Befehl:

$ sudo / usr / sbin / iptables-apply /etc/iptables/rules.v4

Wenn alles funktioniert, werden Ihre Änderungen übernommen und Sie können sie mit dem Befehl überprüfen:

$ sudo / sbin / iptables -L

Schalten Sie aus, was Sie nicht brauchen. Stellen Sie sicher, dass Ihre Firewall nur die gewünschten Dienste verfügbar macht, vorzugsweise für nicht standardmäßige Ports.

Legen Sie es in ein eigenes Netzwerk. Stellen Sie sicher, dass der Pi in einem eigenen Netzwerk installiert ist und keine anderen Teile des Netzwerks erreichen kann, während sichergestellt ist, dass die ausgehenden Verbindungen zum Internet bekannt sind und für den täglichen Gebrauch gefiltert werden. Sie sollten nicht in der Lage sein, Ihren Heim-Dateiserver oder andere Systeme vom Pi aus zu kontaktieren, und die Internetverbindung sollte eingeschränkt sein.

Updates und Backups

Aktualisieren Sie Ihre Pakete regelmäßig. Überprüfen Sie die Raspberry Pi-Website auf Updates. Sie können automatische Updates einrichten, indem Sie das Paket "unbeaufsichtigte Upgrades" installieren, wie im offiziellen Debian-Wiki beschrieben.

Sichern Sie Ihre Konfigurationen. Ihre SD-Karte schlägt fehl. Erwarten Sie einen Fehler und sichern Sie Ihre Daten oder die SD-Karte als Ganzes auf einem externen USB-Stick als Teil eines verschlüsselten Pakets, einer Datei oder eines Dateisystems.

Vermeiden Sie vorinstallierte Ready-to-Go-Images, wenn Sie können. Wenn Sie ein vorinstalliertes Image von irgendwo verwenden, fragen Sie sich, warum. Sie müssen voll und ganz auf den Ersteller vertrauen, der möglicherweise eingeschnittene und anfällige Software oder sogar Hintertüren installiert hat. Dies kann sogar unbeabsichtigt sein. Prüfen Sie, ob Sie das Image oder die Software selbst installieren können. Wenn dies nicht möglich ist oder nicht, stellen Sie sicher, dass sich Ihr Pi in einem eigenen Netzwerk befindet und keine anderen Systeme in Ihrem Netzwerk erreichen kann. Wenn Ihr Router über ein DMZ-Segment oder ein WLAN-Gastnetz verfügt, ist dies eine ausgezeichnete Wahl für einen Pi, sofern nur die Dienste, die Sie nutzen möchten, dem Internet zur Verfügung stehen. Wenn Sie unbedingt ein vorgefertigtes Bild verwenden müssen:

  • Ändern Sie alle Kennwörter für alle Konten, einschließlich, aber nicht beschränkt auf den Benutzer "pi" und "root". Die mit dem Raspberry Pi gelieferte Software enthält möglicherweise mehr Dienste. Erkundigen Sie sich bei „netstat“, welche Dienste gerade ausgeführt werden, und überprüfen Sie Ihre Firewall- und Routerkonfiguration, um sicherzustellen, dass Sie nur das Nötigste preisgeben.
  • Generieren Sie die SSH-Schlüssel erneut, indem Sie folgende Schritte ausführen:
# / bin / rm -v / etc / ssh / ssh_host_ * # dpkg-reconfigure openssh-server
  • Erwägen Sie, die laufenden Dienste in Richtung auf nicht standardmäßige Ports zu ändern, um Drive-by- und Massenscan der Dienste zu vermeiden. Die meisten Angreifer sind nur darauf aus, Opfer zu finden, die Standardports verwenden.
  • Wenden Sie sich an den Autor des Bildes, um Informationen zu Updates und Sicherheitsnachrichten zu erhalten.

Kontinuität sicherstellen

Hardware-Watchdog-Timer: Wenn Ihr Raspberry Pi während Ihres Urlaubs abstürzt, werden auch Ihre automatisierten Systeme ausfallen. Raspberry Pi wird mit einem Broadcom-Hardware-Watchdog-Timer geliefert, der den Pi neu starten kann, falls er nicht mehr reagiert.

Kühlkörper: Es wäre schade, wenn Ihr Raspberry Pi aufgrund von Wetter oder Übertaktung zu heiß laufen würde. Vergewissern Sie sich, dass sich auf der CPU ein Kühlkörper befindet, damit wirklich schwere Spitzen nicht zum Stillstand kommen. Sie kosten nur wenige Dollar und sind einfach zu installieren.

Logwatch: Mit Logwatch erhalten Sie nächtliche E-Mails, die über die Aktivitäten und Warnungen des vorherigen Tages berichten. Sie müssen sicherstellen, dass E-Mails auf Ihrem Pi funktionieren, der Exim4-Mail-Relay-Agent sollte jedoch einwandfrei funktionieren. Installieren Sie Logwatch mit dem Befehl:

$ sudo apt-get install logwatch

Passen Sie dann die Konfigurationsdatei unter /usr/share/logwatch/default.conf/logwatch.conf an Ihre Anforderungen an. Standardmäßig sendet Logwatch eine E-Mail an das Root-Konto. Daher möchten Sie wahrscheinlich eine Art Relay einrichten. Sie können meinen Artikel über E-Mail-Relays für weitere Hinweise lesen.

Aktie

Leave A Comment