Wie sichert man einen OpenSSH-Server?

Wie der Name schon verrät, handelt es sich bei OpenSSH um einen Open-Source-Client und eine Server-Applikation von SSH Protokoll (Secure Shell), welches nahezu von jedem Linux und Unix Vertrieb verwendet wird. Es ist ein Netzwerk-Traffic-Verschlüsselungstool, welches von Netzwerkadministratoren genutzt wird, um Zugriff zu erhalten auf *nix und *BSD Server. Diese Applikation verschlüsselt alle Daten, die von und zum SSH Protokoll transferiert werden, weshalb es sehr effektiv gegen alle Arten von Angriffen wie Sniffling, Session Hi-Jacking, etc. ist.

Sicherheitsmaßnahmen

Im Folgenden werden Ihnen sieben erforderliche Sicherheitsmaßnahmen aufgelistet, um die Sicherheit Ihres SSH Server Setups zu gewährleisten:

  • Es erfordert ein sicheres Passwort.
  • Ändern Sie den Standard-Port für die SSH-Konnektivität.
  • Verwenden Sie Protocol Version 2.
  • Schränken Sie den Login vom Benutzer-Root ein.
  • Begrenzen Sie den Benutzerzugriff.
  • Verwenden Sie anstelle eines Passworts eine Key-based Authentifizierung.

Ein sicheres Passwort ist erforderlich

Im Folgenden erhalten Sie Beispiele für sichere Passwörter. Das Passwort kann eine Kombination von Alphanummern und Sonderzeichen beinhalten oder sogar ASII Codes wie (ß æ ê etc). Was Sie vor Augen halten müssen ist, dass Sie kein leicht zu erratendes Passwort wählen wie admin2015, admin1234 oder root786. Ein Beispiel für ein sicheres Passwort wäre /H3lL0w.@RD/ (Slashes sind auch Bestandteile eines Passworts).

Ändern Sie den Standard Port für die SSH-Konnektivität

Der Standard Port für SSH ist der TCP Port 22. Mit Änderung des Standardports weichen Sie nicht nur Angriffen aus, sondern reduzieren die potenzielle Menge an Traffic, die Angreifer an Ihre Server anhängen bei einem Brute-Force-Angriff. Port 22 ist ein allgemeiner Zielport für SSH Angriffe.
Um den Standardport zu ändern müssen Sie die Konfigurationsdatei „sshd_config“ in ihrem Ordner /etc/ssh/ editieren.
Nutzen Sie die unten aufgeführten Befehle zum Editieren:

 nano /etc/ssh/sshd_config 

Drücken Sie Strg+W, um die Zeichenkette „port“ zu suchen.

 port 22 

Sobald Sie die Zeichenkette gefunden haben, ändern Sie dies nach Belieben zu einer anderen Port Nummer um. WIe zum Beispiel 1984.

 port 1984 

Anmerkung: Stellen Sie sicher, dass der Port nicht bereits vom Server genutzt wird. Der nachfolgende Befehl sollte Ihnen zeigen, ob Ihr gewünschter Port bereits vergeben ist (Sollten Sie als Ergebnis keine Antwort erhalten, bedeutet dies, dass Ihr Port frei ist).

 netstat -ntap | grep 1984 

Verwenden Sie Protocol Version 2

Um dieses Ziel zu erreichen, müssen Sie weiterhin die Konfigurationsdatei /etc/ssh/sshd_config editieren. SSH ist so konfiguriert, um zwei mögliche Protokollversionen zu nutzen. Es ist jedoch empfehlenswert Protocol Version 2 zu nutzen, was sicherer und verschlüsselt ist.

Schränken Sie den Login vom Benutzer-Root ein

Es wird empfohlen die direkte Anmeldung vom Benutzer-Root zu deaktivieren, da es sonst direkte Brute Force Angriffe auf die Rootrechte ermöglicht. Sind die Angriffe einmal erfolgreich, erhalten die Angreifer volle administrative Zugriffsrechte. Bevor Sie die Rootanmeldung deaktivieren, stellen Sie sicher, dass ein alternativer Benutzername zur Verfügung steht, um auf Ihren SSH Servern zuzugreifen.

Schränken Sie den Root-Benutzeranmeldung ein

Nachdem Sie das Root-Konto für SSH deaktiviert haben, sollten Sie die Anzahl der Benutzer einschränken, die auf den Server zugreifen können. Es können sich mehr als 2, sogar mehr als 100 Benutzer auf einem Server befinden, die aber nicht alle Zugriff auf SSH haben sollten. Sie lassen beispielsweis zwei Benutzer zu: Fred und Alice . Die Befehlszeile, um dies umzusetzen, sieht folgendermaßen aus:

 AllowUsers fred alice 

Verwenden Sie anstelle eines Passworts eine Key-Based Authentifizierung

Da es immer eine Möglichkeit für einen Brute Force Angriff gibt oder das Passwort unsicher und erratbar ist, ist es ratsam den Nutzerzugriff auf SSH mit einem Passwort zu deaktivieren. Eine alternative Methode, um auf SSH zuzugreifen, ist eine verschlüsselte Key-Based Authentifizierung.
Um dies zu ermöglichen, müssen wir einen öffentlichen/privaten Key – mittels folgender Befehlszeile – erstellen:

Dies erstellt 2 Dateien im Verzeichnis ~/.ssh/: eine Datei namens id_rsa als privater Key und id_rsa.pub als öffentlicher Key. Der öffentliche Key id_rsa.pub sollte mittels folgender Befehlszeile auf Ihren Server hochgeladen werden:

 ssh-copy-id -i ~/.ssh/id_rsa.pub serverusername@serveripaddress 

Dies erstellt einen öffentlichen Key in der Datei ~/.ssh/authorized_keys auf Ihrem Server.
Im Anschluss gehen Sie zurück auf die SSH Konfigurationsdatei und kommentieren Sie folgende Zeile aus:

Letzte Schritte wären ein Neustart des SSHD Dienstes und eine Wiederverbindung an das SSH durch die neue Portnummer.

 systemctl restart sshd
 ssh -p 1984 username@serverIPaddress