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:
PermitRootLogin yes
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).
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/pi/.ssh/id_rsa.
Your public key has been saved in /home/pi/.ssh/id_rsa.pub.
Wie Sie sehen, wurden zwei Dateien erstellt, der private id_rsa
und der öffentliche Schlüssel id_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:
ssh-copy-id pi@address
Wo pi
ist der Raspberry Pi-Benutzername und address
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:
Wenn auf einem SSH-Server Ihr öffentlicher Schlüssel gespeichert ist und Sie eine Verbindung anfordern, wird Ihr öffentlicher Schlüssel zum Erstellen und Senden einer Herausforderung verwendet. Diese Herausforderung ist wie eine codierte Nachricht und muss mit der entsprechenden Antwort beantwortet werden, bevor der Server Ihnen Zugriff gewährt. Was diese verschlüsselte Nachricht besonders sicher macht, ist, dass sie nur von jemandem mit dem privaten Schlüssel verstanden werden kann. Während der öffentliche Schlüssel zum Verschlüsseln der Nachricht verwendet werden kann, kann er nicht zum Entschlüsseln derselben Nachricht verwendet werden. Nur Sie, der Inhaber des privaten Schlüssels, können die Herausforderung richtig verstehen und die richtige Antwort geben.
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:
cat /etc/shadow
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:
cat: /etc/shadow: Permission denied
Wir können sehen, warum dies so ist, indem wir uns die Berechtigungen der Datei ansehen:
ls -l /etc/shadow
-rw------- 1 root root 821 Jun 11 22:13 /etc/shadow
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.
-rw-------
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:
drwxrwxrwx 10 root root 280 Jun 20 11:40 tmp/
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:
drwxr-xr-x 10 pi users 280 Jun 20 11:40 home/pi
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:
chmod 600 /path/to/file
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:
chmod 700 ~/.ssh
ls -la ~/.ssh
drwx------ 2 james users 4096 Jun 18 03:05 .
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.
su
zu ihnen zu gelangen.