Die Serversysteme, welche wir in der Cloud gemietet haben, stehen transparent im Internet und sind somit weltweit für jeden erreichbar. Dadurch sind die Systeme aber auch potenziell gefährdet, denn jeder kann die Systeme ungefiltert angreifen.
Der erste Dienst, welcher für einen sicheren Betrieb unseres Systems abgesichert werden muss, ist der OpenSSH Server. Der OpenSSH Server ist auf unserem System bereits vorinstalliert und bietet uns die Möglichkeit auf die Kommandozeile aus der Ferne zuzugreifen. Das macht den Dienst natürlich auch attraktiv für Angreifer, um die Kontrolle über das System zu übernehmen.
🚨 Gefahr - Bruteforce Attacken
Sogenannte Bruteforce Attacken sind die wahrscheinlich einfache Art und Weise eine Authentifizierung anzugreifen. Beim Bruteforce werden automatisiert alle möglichen Passwörter ausprobiert, bis das richtige gefunden wurde.
Aufgabe - Fail2Ban einrichten
Eine Möglichkeit wie solche Bruteforce Angriffe weitestgehend unterbunden werden können, ist die Software Fail2Ban
. Recherchieren Sie, wie die Software das System gegen Bruteforce Angriffe schützt und installieren Sie es auf Ihrem System.
Hilfe 💡
Installation von Fail2Ban auf dem System
$ apt update
$ apt install fail2ban
🚨 Gefahr - Anmeldung als root
Zunächst gibt es auf unserem System nur einen root
Benutzer, mit welchem wir uns auf dem System anmelden können. Der root Benutzer ist der Administrator und hat damit alle Rechte zur Verwaltung des Systems, wodurch er sehr interessant für Hacker ist. Außerdem ist auf jedem Linux System ein root User vorhanden, wodurch Angreifer wissen, dass sie diesen Zugang angreifen können.
Aufgabe - Anmeldung als root verbieten
Eine erste Vorkehrung ist die direkte Anmeldung per SSH mit dem root Benutzer zu verbieten, dadurch können Angreifer aus dem Internet nicht einfach das root Konto angreifen.
Dafür muss zunächst ein neuer Benutzer angelegt werden über welchen man sich anschließend mit dem System verbinden kann. Anschließend verbieten Sie dem root Benutzer die Anmeldung per SSH.
Eine Anleitung dafür finden Sie im Internet!
Prüfen Sie anschließend, ob der Login mit dem root Benutzer tatsächlich nicht mehr funktioniert und melden Sie sich stattdessen mit Ihrem neu erstellten Benutzer an.
Hilfe 💡
Neuen Benutzer anlegen
$ adduser akmann # Neuen Benutzer anlegen
... # den Dialog durchklicken
$ usermod -aG sudo akmann # Ggf. den neuen Benutzer zu sudo Gruppe hinzufügen
Root Login verbieten
$ nano /etc/ssh/sshd_config # Konfigurationsdatei des OpenSSH Servers öffnen
Die Datei wie folgt anpassen:
PermitRootLogin no # Root Login verbieten
AllowUsers akmann # Login für neuen Benutzer erlauben
$ service ssh restart # Server neustarten
🚨 Gefahr - Anmeldung mit Passwort
Die Anmeldung per SSH mit einem Passwort ist nicht unbedingt eine Gefahr, unsichere Passwörter sind es aber schon! Da Passwörter häufig wiederverwendet oder an persönlichen Dingen festgemacht werden, bieten Sie häufig eine potenzielle Sicherheitslücke für Angreifer.
Aufgabe - Einrichtung SSH Keys
Um diese Gefahr auszuschließend und die Verbindung mit dem Server im gleichen Zuge ein wenig zu erleichtern, können sogenannte SSH Keys genutzt werden. Diese Keys ersetzen das Passwort beim Login und müssen gar nicht mehr manuell beim Verbinden angegeben werden.
Richten Sie die Anmeldung mit Hilfe von SSH Keys auf ihrem System ein.
Eine Anleitung dafür finden Sie im Internet!
Verbinden Sie sich anschließend mit Hilfe des SSH Keys (ohne Passworteingabe) mit Ihrem Serversystem.
Hilfe 💡
SSH Keys generieren
$ ssh-keygen
Enter file in which to save the key (...) # mit Enter bestätigen
Enter passphrase: [Zufälliger Text] # mit Enter bestätigen
Enter passphrase again: [Zufälliger Text] # nochmal eingeben und bestätigen
Your identification has been saved in .../id_rsa
Your public key has been saved in .../id_rsa.pub
The key fingerprint is: ...
Den Public Key auf das Serversystem kopieren
Am einfachsten ist es den Inhalt der id_rsa.pub
Datei per copy & paste auf den Server zu bringen.
$ mkdir .ssh
$ nano ~/.ssh/authorized_keys
In diese Datei muss nun der Inhalt der id_rsa.pub Datei eingefügt werden.
Anschließend speichern und schließen.
Wichtig! ~
steht für das jeweilige Homeverzeichnis eines Benutzers. Wenn Sie auf ihrem Serversystem z.B. den User akmann
registriert haben, muss die authorized_keys
Datei also unter dem folgenden Pfad liegen: /home/akmann/.ssh/authorized_keys