Was sollte getan werden, um Raspberry Pi zu sichern?


82

Wenn Zehntausende von Himbeer-Pis mit dem Internet verbunden sind, wird dies möglicherweise das Interesse einiger Leute wecken, die den kleinen Computern unangenehme Dinge antun möchten, insbesondere wenn viele Leute ihren Pi für Netzwerkserver verwenden. Linux ist ein solides Betriebssystem, das aus Sicherheitsgründen nicht nur das Kennwort ändert, sondern auch, was zu tun ist, um den Raspberry Pi zu "härten", wenn ich internetfähige Dienste auf dem Gerät hosten möchte.

Nur um meine „Zehntausende“ Bonmot, Eben Upton hat gesagt zu unterstützen , dass „The Raspberry Pi über 200.000 seiner grundlegenden Computermodule verkauft hat und zur Zeit ist die Schifffahrt 4.000 Einheiten pro Tag“ . Es ist wahrscheinlich sicher anzunehmen, dass Zehntausende dieser 200.000 mit dem Internet verbunden sind. Es ist weniger sicher anzunehmen, dass Zehntausende dieser mit dem Internet verbundenen Raspberry Pis einen öffentlich zugänglichen Webdienst hosten, aber das Potenzial für Hacker-Begeisterung besteht weiterhin.


3
Denken Sie daran, dass, obwohl möglicherweise "Zehntausende" verbunden sind, (derzeit) 3 separate Linux-Distributionen verfügbar sind (von denen ich weiß), und ich denke, dass es sogar ein paar Projekte gibt, die nicht auf Linux basieren. Dies beeinflusst die Perspektive des Hackers. Wenn die Sicherheit dennoch wichtig ist, halten Sie Ihre Distribution auf dem neuesten Stand und bewahren Sie Ihr Gerät, falls erforderlich, hinter einer Firewall auf.
RLH

Guter Punkt RLH Ich werde der Frage, die die Anzahl der Raspberry Pis in freier Wildbahn unterstützt, einige zusätzliche Informationen hinzufügen, um eine bessere Vorstellung von der Angriffsfläche des Raspberry Pi zu erhalten, die Steve in seiner Antwort erwähnt hat.
Dan B

@DanB Angriffsfläche ist keine Funktion der Anzahl der Pi, sondern der Anzahl der Systeme und Dienste, die zum Angriff zur Verfügung stehen. en.wikipedia.org/wiki/Attack_surface
Steve Robillard

@SteveRobillard Entschuldigung, wenn ich in dem Kommentar unklar war, aber bei der Bearbeitung der Frage habe ich versucht, die Anzahl der Pis, die öffentlich zugängliche Dienste hosten und daher einen für Angriffe verfügbaren Dienst darstellen, auf eine qualitative Art und Weise zu reduzieren .
Dan B

Ich habe ein kurzes Tutorial gefunden, wie Sie Ihre Himbeer-Pi sichern, wenn Sie SSH verwenden, scheint ziemlich ordentlich. -> Tutorial
Dominik St.

Antworten:


54

Das Sichern eines Computers ist kein einfacher Vorgang, es werden ganze Bücher zu diesem Thema geschrieben. Die Größe des Pis verringert nicht die Sicherheitsbedrohung oder Angriffsfläche, die einem möglichen Angreifer präsentiert wird. Als Ergebnis werde ich die Schritte beschreiben und Links zu detaillierteren Anleitungen und Tutorials bereitstellen.

Da Sie nicht erwähnt haben, welche Distribution Sie verwenden, gehe ich von der empfohlenen Raspbian Distribution aus.

  1. Ändern Sie das Standardkennwort. Die Raspbian-Distribution nimmt dies als Option in das anfängliche Startskript auf. Wenn Sie dies noch nicht getan haben, können Sie es mit dem Befehl passwd ändern. Stellen Sie sicher, dass Sie ein sicheres Passwort wählen .
  2. Deaktivieren Sie nicht verwendete Dienste . Ich habe gesehen, dass die empfohlene Raspbian-Distribution den Apache-Webserver enthält und ihn beim Start aktiviert (kann jemand dies bestätigen) . Brauchen Sie wirklich einen Webserver? Wenn nicht, deaktivieren Sie es. Wenn Sie Apache ausführen müssen, stellen Sie sicher, dass es sicher ist , und tun Sie dies auch für andere Dienste (z. B. FTP, NGINX, MySQL usw.). Bei einer Google-Suche sollten mehrere Ressourcen verfügbar sein.
  3. Installieren und Konfigurieren von iptables .
  4. Halten Sie Ihr System auf dem neuesten Stand. Sie können dies mit cron oder mit cron-apt automatisieren .
  5. Konfigurieren Sie die Protokollierung , um Anmeldungen und fehlgeschlagene Anmeldeversuche zu überwachen. Wenn möglich, verwenden Sie eine externe Festplatte, um Ihre / var-Partition zu hosten. Dadurch erhalten Sie mehr Speicherplatz. Vermeiden Sie, dass die Protokolldateien die SD-Karte füllen, und verlängern Sie die Lebensdauer Ihrer SD-Karte.

Einige zusätzliche Dinge, die Sie möglicherweise berücksichtigen möchten:

Sie sollten auch diese verwandte Frage lesen. Wie kann ich mich vor Eindringen und Malware schützen, bevor ich eine Verbindung zum Internet herstelle (insbesondere über eine öffentliche IP-Adresse)? .

Dies ist nur das Nötigste, um Ihren Pi zu sichern. Für weitere Informationen lesen Sie möglicherweise das Securing Debian Manual .


6
Stellen Sie sicher, dass Sie Ihre eigenen SSH-Schlüssel generieren. Ich denke, einige der Bilder hatten bereits Schlüssel.
John La Rooy

2
Apache ist nicht standardmäßig in Raspbian installiert (der Benutzer hat so etwas wie PHP5-MySQL IIRC installiert). Für einen Paketfilter, der ein bisschen freundlicher ist als die nackten iptables, sollten wir vielleicht ufw empfehlen und vielleicht sogar sein GUI-Frontend gufw?
Elmicha

1
Ist es sinnvoll, iptables zu installieren, auch wenn Sie sich hinter einem Router befinden?
Keiki

2
@ otakun85 Ja, es heißt Verteidigung in der Tiefe. Verlassen Sie sich vollständig auf Ihren Router, sollte jemand an Ihrem Router vorbeikommen und iptables zum Laufen bringen, werden weitere Exploits schwieriger.
Steve Robillard

2
Das Deaktivieren nicht verwendeter Dienste hilft auch beim Starten und spart (wenig) Speicher und CPU.
TomG,

11

Wenn Sie sich das RPi angesehen haben, scheint es ein ziemlich sicheres Gerät zu sein, solange Sie ein paar Dinge tun.

Der Standardbenutzer / -pass muss geändert werden. Ändern Sie zumindest das Kennwort. Ändern Sie zur erneuten Verbesserung der Sicherheit auch den Benutzernamen. (Fügen Sie einen neuen Benutzer hinzu und deaktivieren Sie dann PI. Überprüfen Sie, ob ROOT auch für die SSH-Anmeldung deaktiviert ist, obwohl dies meiner Meinung nach ohnehin standardmäßig der Fall ist.)

Beim Scannen des RPi wird nur ein offener Port zurückgegeben, 22, bei dem es sich um die SSH-Verbindung handelt, und selbst dieser muss aktiviert werden, bevor er angezeigt wird (obwohl die meisten Benutzer ihn anstelle eines Monitors, einer Tastatur und einer Maus verwenden, was ich besonders erwarte ein {web} server

Sie können die SSH-Portnummer ändern, aber das macht nicht viel, da der Port leicht genug gescannt werden kann. Aktivieren Sie stattdessen die SSH-Schlüsselauthentifizierung.

Sie haben jetzt keine Möglichkeit mehr, auf Ihren Computer zuzugreifen, ohne den richtigen SSH-Schlüssel, den richtigen Benutzernamen und das richtige Passwort.

Als nächstes richten Sie Ihren Webserver ein. Apache ist so ziemlich dort, wo es ist. Das überwacht standardmäßig Port 80 und antwortet automatisch auf Verbindungen von Browsern, die Ihre Webseiten bedienen.

Wenn Sie über eine Firewall oder einen Router verfügen, können Sie die RPi-Ports ändern und den Datenverkehr vom Router auf den anderen Port leiten lassen. Beispielsweise wird der Datenverkehr von Port 80 an den Router an Port 75 des RPi umgeleitet, und SSH an 22 wird an Port 72 umgeleitet. Dies würde eine weitere Schutzebene hinzufügen, ist jedoch etwas komplexer.

Halten Sie natürlich alles auf dem neuesten Stand und gepatcht.

Dies schützt Sie nicht vor Angriffen, bei denen Java, Flash, SQL Server usw. ausgenutzt werden, die Sie möglicherweise später hinzufügen werden.

Sie können auch eine Firewall hinzufügen, die verhindert, dass Personen, die in Ihr System eindringen, über einen anderen Port aussteigen, wenn sie einen neuen Dienst installieren. Ihr Router sollte sich damit befassen, aber wenn er direkt verbunden ist, richten Sie ihn ein, und wie lange es dauert, können Sie ihn trotzdem ausführen - es wird nicht viel an Systemressourcen hinzufügen.

Eine andere Sache, die Sie vielleicht hinzufügen möchten, ist fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ), das eine Firewall-Regel hinzufügt, um mehrere Anmeldeversuche zu blockieren und Wörterbuchangriffe zu verhindern. Obwohl diese auf Ihrem System nicht funktionieren, wenn Sie die obigen Anweisungen befolgt haben, können Sie einen Wörterbuchangriff verhindern, wenn Sie aus irgendeinem Grund nur die SSH-Authentifizierung für das Kennwort aktiviert lassen müssen (z. B. die Remote-Anmeldung von vielen verschiedenen Computern aus) von der Arbeit. Nach der von Ihnen angegebenen Anzahl von Versuchen werden für eine Weile alle weiteren Versuche von dieser IP-Adresse blockiert. (Achten Sie darauf, dass kein Router / keine lokale IP-Adresse erkannt wird, und sperren Sie diese zu früh oder zu lange!)

Bearbeitet, um hinzuzufügen: Wenn Sie alles richtig eingerichtet haben, verwenden Sie ein Tool wie dd oder Win32DiskImager, um eine vollständige bitweise Sicherung Ihrer SD-Karte zu erstellen. Auf diese Weise können Sie, wenn etwas schief geht, es auf derselben Karte wiederherstellen oder auf eine neue Karte schreiben und trotzdem weitermachen. (Aber wenn Sie gehackt werden, möchten Sie herausfinden, welches Loch gefunden wurde, und dieses Loch vielleicht zuerst schließen!)


1
Können Sie erklären, wie durch Ändern der RPi-Ports am Router eine weitere Schutzstufe hinzugefügt wird?
Andrei


-1

Sie können das Betriebssystem nicht nur härten, sondern auch einen Cloud-basierten Sicherheitsüberwachungsdienst verwenden, um die Aktivität von / zu / auf Ihrem Gerät zu überwachen und Benachrichtigungen zu erhalten, wenn etwas Unangenehmes erkannt wird. Es gibt heutzutage einige Cloud-basierte SIEM-Tools, und einige (wie Siemens) betreiben ein Freemium-Modell, sodass Privatanwender keinen Cent bezahlen müssen. Um einen solchen Dienst zu nutzen, müssen Sie sich mit Dingen wie rsyslog / syslog vertraut machen, die ein Standardbestandteil aller Linux-Betriebssystemdistributionen sind.


1
Cloud-Tools erhöhen die Angriffsfläche, lokale Sicherheitsüberwachung (logwarn / check) sind gute Tools, aber diese Antwort ist unvollständig und eher ein Kommentar.
user1133275
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.