Angesichts der großen Anzahl von Raspberry Pis in freier Wildbahn und der Tatsache, dass große Gruppen von ihnen identisch konfiguriert sind (wenn eine neu geflashte SD-Karte mit einem der wenigen verfügbaren Images installiert ist), sind sie wahrscheinlich ein verlockendes Ziel für Malware, einschließlich Botnets.
Was kann getan werden, um dies zu mildern?
Es ist hinreichend bekannt, dass man das Passwort für den "pi" -Benutzer (Debian) und "root" (Arch.) Ändern sollte. Aber wie steht es mit anderen Systemkonten (z. B. "tli", "pnd"?)? universelle Passwörter, die vermutlich für alle Geräte gleich sind?
Und gibt es bekannte Schwachstellen in anderen Paketen, die in den für den Pi verfügbaren SD-Images installiert sind (z. B. aufgrund von Hardwareeinschränkungen oder reduzierten Versionen dieser Pakete?)
Insbesondere ssh
mache ich mir Sorgen um MySQL und andere Dienste, die möglicherweise auf einem neu installierten Image ausgeführt werden.
quelle
su
zu ihnen zu gelangen.vipw
; ist das eine schlechte idee Nein, ist es nicht. +1 für implizite Verwendung vonvipw
.Es gibt viele Möglichkeiten, um Sicherheitslücken zu schließen. Als Erstes sollten Sie jedoch wissen, dass Linux nicht so anfällig für Eingriffe ist wie andere Betriebssysteme. Dies ist hauptsächlich auf den Mangel an Malware zurückzuführen, die auf * NIX abzielt. Dennoch möchten Sie wissen, wie auf Ihr System zugegriffen werden kann.
Passwörter
Zunächst sollten Sie die Standardkennwörter für alle Benutzer ändern, die sich anmelden können. Für Debian ist dies nur der Standardbenutzer Pi . Für Arch Linux ist dies der Superuser root . Kennwörter werden geändert, wenn Sie als Benutzer angemeldet sind, indem Sie in
passwd
die Befehlszeile eingeben .Es wird empfohlen, eine sichere Kennwortrichtlinie zu verwenden, da Brute-Force-Wörterbuchangriffe auf Ihren Standardbenutzer recht einfach sind. Wählen Sie ein anständiges Passwort mittlerer Länge.
Dunkelheit
Der Fernzugriff ist wahrscheinlich die wichtigste Sicherheitslücke. Was wir hier verwenden können, heißt Sicherheit durch Dunkelheit . Eine häufige Angriffsmethode besteht darin, einen Bereich von IP-Adressen nach offenen Ports zu durchsuchen. Eine der einfachsten Gegenmaßnahmen ist es, Benutzer zu sein, die nicht die Standardports verwenden .
Hier müssen lediglich die Standardports für häufig verwendete Protokolle geändert werden. Beispielsweise ist der Standard-SSH-Port 22 und FTP 21. Auf meinem System verwendet SSH 222 und FTP 221, wodurch diese Protokolle vor automatischen Angriffen geschützt werden sollten.
Verbindungssicherheit
Erstens ist das wichtigste Sicherheitsproblem, dass sich das Root-Konto nicht über SSH anmelden kann. Sie können die Root-Anmeldung in der
/etc/ssh/sshd_config
Datei deaktivieren, indem Sie diese Zeile kommentieren oder entfernen:Es sollte standardmäßig auf no gesetzt sein, aber es ist am besten, dies sicherzustellen.
Wenn Sie häufig SSH verwenden und sich Sorgen um Menschen in der Mitte machen, können Sie Wörterbuchangriffe gegen Ihr Passwort verwenden
SSH Keys
.Die schlüsselbasierte Authentifizierung bietet mehrere Vorteile gegenüber der Kennwortauthentifizierung. Beispielsweise sind die Schlüsselwerte wesentlich schwieriger zu erzwingen als einfache Kennwörter.
Um die SSH-Schlüsselauthentifizierung einzurichten, müssen Sie zuerst das Schlüsselpaar erstellen. Dies geschieht am einfachsten auf Ihrem Client-Computer (dem Computer, mit dem Sie auf den Pi zugreifen möchten).
Wie Sie sehen, wurden zwei Dateien erstellt, der private
id_rsa
und der öffentliche Schlüsselid_rsa.pub
.Der private Schlüssel ist nur Ihnen bekannt und sollte sicher verwahrt werden . Im Gegensatz dazu kann der öffentliche Schlüssel frei mit jedem SSH-Server geteilt werden, zu dem Sie eine Verbindung herstellen möchten.
Wir möchten also den öffentlichen Schlüssel auf den Raspberry Pi kopieren . Wir können das sehr einfach machen:
Wo
pi
ist der Raspberry Pi-Benutzername undaddress
ist die IP-Adresse des Pi.Ich werde es noch einmal wiederholen, wir verteilen den öffentlichen Schlüssel. Der private Schlüssel liegt bei Ihnen. Halten Sie es fest, um diesen Schlüssel loszulassen, der die Sicherheit des Systems beeinträchtigt.
Das Arch-Wiki bietet eine hervorragende Beschreibung, wie dies funktioniert:
Für weitere Informationen zur Sicherheit der Authentifizierung mit öffentlichen Schlüsseln bietet Wikipedia eine ausführliche Erklärung .
Mit der vorhandenen SSH-Sicherheit können Sie eine Menge verschlüsselter, sicherer Datenübertragungen durchführen. Praktisch jede andere Portverbindung kann bei Bedarf über SSH geroutet werden. Sie können die X-Sitzung sogar über SSH weiterleiten, sodass sie auf einem anderen Computer angezeigt wird.
Als interessantes Beispiel habe ich gestern Eclipse auf meinem Desktop ausgeführt, auf meinem Raspberry Pi angezeigt und Maus und Tastatur von meinem Netbook aus gesteuert. Das ist die Kraft von SSH.
Berechtigungen
Dateiberechtigungen sind der Kern des Linux-Sicherheitssystems. Sie wirken sich darauf aus, wer Ihre Dateien und Ordner sehen kann, und können beim Schutz Ihrer Daten sehr wichtig sein. Melden Sie sich beispielsweise als normaler Benutzer beim Raspberry Pi an und führen Sie Folgendes aus:
Die
shadow
Datei enthält verschlüsselte Passwörter für die Benutzer des Systems, sodass wir nicht möchten, dass sich irgendjemand die Datei ansieht! Sie sollten also diese Antwort sehen:Wir können sehen, warum dies so ist, indem wir uns die Berechtigungen der Datei ansehen:
Dies sagt uns, dass die Datei im Besitz von root ist und nur der Eigentümer Lese- / Schreibrechte hat. Lassen Sie uns diese Ausgabe aufschlüsseln.
Dies ist der Status der Berechtigungen. Das erste Bit gibt den Dateityp an (
-
bedeutet reguläre Datei). Die nächsten drei Bits stellen die Aktionen dar, die dem Eigentümer der Datei zur Verfügung stehen. Die zweiten drei Bits stellen die Gruppe dar und die letzten drei sind für andere oder alle anderen. Ein Verzeichnis mit vollen Berechtigungen würde also so aussehen:Das sind Lese-, Schreib- und Ausführungsberechtigungen für den Eigentümer, die Gruppe und alle anderen.
Der nächste wichtige Teil sind die beiden Namen. In unserem Fall
root root
. Der erste Benutzer ist der Eigentümer der Datei. Die zweite ist die Benutzergruppe . Zum Beispiel wäre es üblich zu sehen:Dies würde dem Benutzer Lese- / Schreibzugriff
pi
auf sein Basisverzeichnis und allen anderen Benutzern Lesezugriff gewähren.Berechtigungen, auf die am häufigsten verwiesen wird und die mithilfe von Oktalwerten gesteuert werden. Wenn wir zum Beispiel rw nur für den Eigentümer festlegen möchten, geben wir Folgendes ein:
Dies ist eine grundlegende Übersicht. Weitere Informationen zu Linux-Dateiberechtigungen finden Sie in diesem Artikel.
Dieses Verständnis ist wichtig beim Sichern von Dateien und Ordnern. Angenommen, wir haben gerade SSH-Schlüssel eingerichtet. Wir möchten definitiv nicht, dass andere Benutzer in unser
~/.ssh
Verzeichnis gelangen, da sie sonst unseren privaten Schlüssel übernehmen können. So entfernen wir ihre Leserechte:Ich hoffe, dies klärt einige Ihrer Bedenken hinsichtlich der Sicherung von Linux. Daran sollten Sie erkennen können, dass es sich um ein ziemlich sicheres System handelt, und wenn Sie vorsichtig sind, sollten Sie keine Sicherheitsprobleme haben.
quelle
Um Bruteforce-Angriffe zu verhindern, können Sie installieren und konfigurieren
fail2ban
. Es werden Protokolldateien (z. B./var/log/auth.log
) analysiert, und es wird versucht, festzustellen, ob mehrere Anmeldeversuche fehlgeschlagen sind. Dann werden die Quell-IP-Adressen mit automatisch gesperrtiptables
.Es gibt eine Reihe von Anleitungen rund um das Internet.
quelle