V-Server Sicherheit deutlich erhöhen - SSH Sicherheits-Konfiguration: Unterschied zwischen den Versionen

Aus Minehub.de Wiki
Wechseln zu: Navigation, Suche
(Einleitung)
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Einleitung ==
+
==Einleitung==
 
V-Server sind grundsätzlich öffentlich aus dem Internet erreichbar. Jeder andere Server der Welt, jeder andere Mensch aus jedem anderen Land ist nach der Installation des Servers in der Lage, sich mit diesem per SSH zu verbinden.
 
V-Server sind grundsätzlich öffentlich aus dem Internet erreichbar. Jeder andere Server der Welt, jeder andere Mensch aus jedem anderen Land ist nach der Installation des Servers in der Lage, sich mit diesem per SSH zu verbinden.
  
Zeile 8: Zeile 8:
 
Sie versuchen, sobald gefunden, mehrere hundert/tausend Male, das Passwort des Servers zu erraten. Ist das Passwort schwach, ist es nach 2-3 Wochen geknackt und euer Server wird Teil dieses Botnetzes.
 
Sie versuchen, sobald gefunden, mehrere hundert/tausend Male, das Passwort des Servers zu erraten. Ist das Passwort schwach, ist es nach 2-3 Wochen geknackt und euer Server wird Teil dieses Botnetzes.
  
Die Konsequenz ist die Sperrung eures Servers. Die 2 besten Maßnahmen gegen all diese Botnetze, findet ihr in den folgenden Abschnitten.
+
Die Konsequenz ist die Sperrung eures Servers. Die 2 besten Maßnahmen gegen all diese Botnetze findet ihr in den folgenden Abschnitten.
  
Jede einzelne Maßnahme allein reicht schon, euren Server um ein Vielfaches sicherer zu machen und das Risiko quasi gegen 0 zu reduzieren. Beide in Verbindung bieten natürlich keinen hundertprozentigen Schutz - aber euren Server dann zu knacken erfordert fast ausschließlich das direkte Anschließen des Kabels an diesen.
+
Jede einzelne Maßnahme allein reicht schon euren Server um ein Vielfaches sicherer zu machen und das Risiko quasi gegen 0 zu reduzieren. Beide in Verbindung bieten natürlich keinen hundertprozentigen Schutz - aber euren Server dann zu knacken erfordert fast ausschließlich das direkte Anschließen des Kabels an diesen.
  
== SSH-Port ändern ==
+
==SSH-Port ändern==
 
Den SSH-Port zu ändern ist die einfachste, aber eine extrem effektive Methode, euren Server gegen Botnetze aller Art abzusichern.
 
Den SSH-Port zu ändern ist die einfachste, aber eine extrem effektive Methode, euren Server gegen Botnetze aller Art abzusichern.
  
Zeile 22: Zeile 22:
 
Um den Port zu ändern, müssen wir die Konfiguration des SSH-Servers anpassen.:
 
Um den Port zu ändern, müssen wir die Konfiguration des SSH-Servers anpassen.:
  
<code>nano /etc/ssh/sshd_config</code>
+
<code><big>nano /etc/ssh/sshd_config</big></code>
 
[[Datei:Port 22.png|ohne|mini|1051x1051px]]
 
[[Datei:Port 22.png|ohne|mini|1051x1051px]]
 
Der neue Port muss zwischen 1024 und 65535 liegen. Wählt einen aus, den ihr euch gut merken könnt.
 
Der neue Port muss zwischen 1024 und 65535 liegen. Wählt einen aus, den ihr euch gut merken könnt.
Zeile 30: Zeile 30:
 
Ich habe mich für 45678 entschieden.
 
Ich habe mich für 45678 entschieden.
  
<code>STRG X, Y, ENTER</code> um die Änderungen zu speichern. Danach SSH mit <code>/etc/init.d/ssh restart</code> neustarten.
+
<code><big>STRG X, Y, ENTER</big></code> um die Änderungen zu speichern. Danach SSH mit <code><big>/etc/init.d/ssh restart</big></code> neustarten.
  
 
Fertig. Ihr könnt euch nun mit dem neuen Port zu eurem Server verbinden.
 
Fertig. Ihr könnt euch nun mit dem neuen Port zu eurem Server verbinden.
  
== Private-Key Authentifizierung aktivieren, Passwort-Authentifizierung deaktivieren ==
+
==Key-Authentifizierung aktivieren, Passwort-Authentifizierung deaktivieren==
 
Den SSH-Port zu ändern hilft gegen 99% aller Botnetze. 1% der Botnetze, inklusive realer Menschen suchen den gesamten Server ab und scannen alle Ports.
 
Den SSH-Port zu ändern hilft gegen 99% aller Botnetze. 1% der Botnetze, inklusive realer Menschen suchen den gesamten Server ab und scannen alle Ports.
  
Zeile 40: Zeile 40:
  
 
Was könnte also schlauer sein, als die Authentifizierung via Passwort schlichtweg zu unterbinden? Der Angreifer kann 50 Jahre lang versuchen, ein Passwort zu erraten, Millionen/Milliarden von verschiedenen Kombinationen ausprobieren. Er wird niemals eine Verbindung zum Server herstellen können.
 
Was könnte also schlauer sein, als die Authentifizierung via Passwort schlichtweg zu unterbinden? Der Angreifer kann 50 Jahre lang versuchen, ein Passwort zu erraten, Millionen/Milliarden von verschiedenen Kombinationen ausprobieren. Er wird niemals eine Verbindung zum Server herstellen können.
 +
 +
===Software installieren===
 +
Auf dem Smartphone können viele SSH-Clients das Erstellen von SSH-Keys per default, ebenso das Einbinden des Keys in den SSH-Client.
 +
 +
Bei Putty (für den PC) hingegen muss man das Gesamtpaket installieren, nicht nur den Client.
 +
 +
Das beinhaltet Client (für die Verbindung), PuttyGen (für das Generieren des Schlüsselpaares) und Putty-Agent (für das Einbinden des Schlüsselpaares in die SSH-Verbindung).
 +
 +
Wähle den MSI-Installer auf dieser Seite aus: <nowiki>https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html</nowiki>
 +
 +
===Schlüsselpaar erstellen===
 +
Öffne Puttygen.
 +
 +
Sofern du nicht weißt, was die ganzen Einstellungen bedeuten, klicke einfach auf Generate. Ansonsten passe die Werte auf deine Bedürfnisse an und klicke anschließend auf Generate.
 +
[[Datei:Puttygen 1.png|ohne|mini|474x474px]]
 +
Bewege anschließend deine Maus im Fenster, um die nötige Randomness für deinen einzigartigen Key zu generieren.
 +
[[Datei:Puttygen 2.png|ohne|mini|468x468px]]
 +
Herzlichen Glückwunsch! Du hast soeben einen SSH-Keypair erstellt.
 +
[[Datei:Puttygen 3.png|ohne|mini|475x475px]]
 +
Lege anschließend eine "Key passphrase" fest, sodass dein SSH-Privatekey mit einem Passwort verschlüsselt auf deinem PC abgelegt werden kann.
 +
 +
So verhinderst du, dass, wenn jemand in den Besitz deines privaten Schlüssels gelangt, er diesen benutzen und damit auf deinen Server kommen kann.
 +
 +
Wenn du das getan hast, klicke auf "Save private key" und speichere deinen privaten Schlüssel auf deinem PC. Achte darauf, dass er in deinem Benutzer-Verzeichnis liegt und niemand, der sonst Zugang zum PC hat, auf diesen Schlüssel zugreifen kann.
 +
 +
Gib diesen privaten Schlüssel niemals weiter. Trage ihn nirgendwo ein. Der Schlüssel hat nirgends etwas zu suchen, außer auf deinem PC.
 +
<br />
 +
 +
===SSH-Key auf V-Server eintragen===
 +
Kopiere nach Speicherung des Private Keys den Public Key.
 +
 +
Der Public Key fängt mit "ssh-rsa AAA...." an und endet auf den im Fenster festgelegten "Key comment".
 +
 +
Verbinde dich als root-Benutzer mit deinem V-Server und gib folgenden Befehl ein:
 +
 +
mkdir /root/.ssh && chmod 700 /root/.ssh
 +
 +
Editiere anschließend die authorized_keys Datei: nano /root/.ssh/authorized_keys
 +
[[Datei:Putty 1.png|ohne|mini|479x479px]]
 +
Füge in diese Datei den kopierten Public-Key ein.
 +
 +
Speichere die Datei mit <code><big>STRG X, Y, ENTER.</big></code>
 +
 +
Der Weg ist frei, sich mit dem SSH-Key zum Server zu verbinden. Ihr könnt also die Funktion, sich mit Passwort zu verbinden, entfernen.
 +
 +
===Passwort-Authentifizierung komplett verbieten===
 +
Mit <code><big>nano /etc/ssh/sshd_config</big></code> müsst ihr die SSHD-Config erneut bearbeiten.
 +
 +
Ändert <code><big>PermitRootLogin yes</big></code>
 +
[[Datei:Permrootlogin1.png|ohne|mini|196x196px]]
 +
zu <code><big>PermitRootLogin without-password</big></code>
 +
[[Datei:Permrootlogin2.png|ohne|mini|279x279px]]
 +
Speichert die Datei mit <code><big>STRG X, Y, ENTER.</big></code>Startet den SSH-Server mit <code><big>/etc/init.d/ssh restart</big></code> neu.
 +
 +
Ab sofort ist die Verbindung mittels Passwort nicht mehr möglich. Nur noch SSH-Keys werden zur Authentifizierung zugelassen.
 +
 +
===Den SSH-Key zur Verbindung mit dem Server benutzen===
 +
<br />
 +
<br>
 +
{{#widget:AdSense}}

Aktuelle Version vom 10. August 2019, 23:56 Uhr

Einleitung

V-Server sind grundsätzlich öffentlich aus dem Internet erreichbar. Jeder andere Server der Welt, jeder andere Mensch aus jedem anderen Land ist nach der Installation des Servers in der Lage, sich mit diesem per SSH zu verbinden.

Selbstverständlich benötigt er dafür das Passwort.

Genau wegen diesem Umstand streifen jede Sekunde tausende Botnetze durch das Internet, stets auf der Suche nach Servern, dessen SSH ungeschützt und offen verfügbar ist.

Sie versuchen, sobald gefunden, mehrere hundert/tausend Male, das Passwort des Servers zu erraten. Ist das Passwort schwach, ist es nach 2-3 Wochen geknackt und euer Server wird Teil dieses Botnetzes.

Die Konsequenz ist die Sperrung eures Servers. Die 2 besten Maßnahmen gegen all diese Botnetze findet ihr in den folgenden Abschnitten.

Jede einzelne Maßnahme allein reicht schon euren Server um ein Vielfaches sicherer zu machen und das Risiko quasi gegen 0 zu reduzieren. Beide in Verbindung bieten natürlich keinen hundertprozentigen Schutz - aber euren Server dann zu knacken erfordert fast ausschließlich das direkte Anschließen des Kabels an diesen.

SSH-Port ändern

Den SSH-Port zu ändern ist die einfachste, aber eine extrem effektive Methode, euren Server gegen Botnetze aller Art abzusichern.

Botnetze suchen auf der ganzen Welt nach öffentlichen IP-Adressen, auf denen Port 22 (der Standard-Port für SSH) offen ist. Sofern das nicht der Fall ist, gehen sie einfach weiter.

Wenn euer Server also einfach einen anderen Port benutzt, werden Botnetze sich maximal 1 Sekunde mit eurem Server beschäftigen, bevor sie weitersuchen.


Um den Port zu ändern, müssen wir die Konfiguration des SSH-Servers anpassen.:

nano /etc/ssh/sshd_config

Port 22.png

Der neue Port muss zwischen 1024 und 65535 liegen. Wählt einen aus, den ihr euch gut merken könnt.

Die ersten 1024 Ports sind standartisiert (z.B. 21 FTP, 22 SSH, 80 HTTP, 443 HTTPS ......), 65535 ist der höchste, mögliche Port. Daher sind diese nicht möglich.

Port 45678.png

Ich habe mich für 45678 entschieden.

STRG X, Y, ENTER um die Änderungen zu speichern. Danach SSH mit /etc/init.d/ssh restart neustarten.

Fertig. Ihr könnt euch nun mit dem neuen Port zu eurem Server verbinden.

Key-Authentifizierung aktivieren, Passwort-Authentifizierung deaktivieren

Den SSH-Port zu ändern hilft gegen 99% aller Botnetze. 1% der Botnetze, inklusive realer Menschen suchen den gesamten Server ab und scannen alle Ports.

Bei Änderung des SSH-Ports wird dieser also ebenfalls gefunden werden und dann kann der Angreifer erneut versuchen, euer Passwort herauszufinden.

Was könnte also schlauer sein, als die Authentifizierung via Passwort schlichtweg zu unterbinden? Der Angreifer kann 50 Jahre lang versuchen, ein Passwort zu erraten, Millionen/Milliarden von verschiedenen Kombinationen ausprobieren. Er wird niemals eine Verbindung zum Server herstellen können.

Software installieren

Auf dem Smartphone können viele SSH-Clients das Erstellen von SSH-Keys per default, ebenso das Einbinden des Keys in den SSH-Client.

Bei Putty (für den PC) hingegen muss man das Gesamtpaket installieren, nicht nur den Client.

Das beinhaltet Client (für die Verbindung), PuttyGen (für das Generieren des Schlüsselpaares) und Putty-Agent (für das Einbinden des Schlüsselpaares in die SSH-Verbindung).

Wähle den MSI-Installer auf dieser Seite aus: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Schlüsselpaar erstellen

Öffne Puttygen.

Sofern du nicht weißt, was die ganzen Einstellungen bedeuten, klicke einfach auf Generate. Ansonsten passe die Werte auf deine Bedürfnisse an und klicke anschließend auf Generate.

Puttygen 1.png

Bewege anschließend deine Maus im Fenster, um die nötige Randomness für deinen einzigartigen Key zu generieren.

Puttygen 2.png

Herzlichen Glückwunsch! Du hast soeben einen SSH-Keypair erstellt.

Puttygen 3.png

Lege anschließend eine "Key passphrase" fest, sodass dein SSH-Privatekey mit einem Passwort verschlüsselt auf deinem PC abgelegt werden kann.

So verhinderst du, dass, wenn jemand in den Besitz deines privaten Schlüssels gelangt, er diesen benutzen und damit auf deinen Server kommen kann.

Wenn du das getan hast, klicke auf "Save private key" und speichere deinen privaten Schlüssel auf deinem PC. Achte darauf, dass er in deinem Benutzer-Verzeichnis liegt und niemand, der sonst Zugang zum PC hat, auf diesen Schlüssel zugreifen kann.

Gib diesen privaten Schlüssel niemals weiter. Trage ihn nirgendwo ein. Der Schlüssel hat nirgends etwas zu suchen, außer auf deinem PC.

SSH-Key auf V-Server eintragen

Kopiere nach Speicherung des Private Keys den Public Key.

Der Public Key fängt mit "ssh-rsa AAA...." an und endet auf den im Fenster festgelegten "Key comment".

Verbinde dich als root-Benutzer mit deinem V-Server und gib folgenden Befehl ein:

mkdir /root/.ssh && chmod 700 /root/.ssh

Editiere anschließend die authorized_keys Datei: nano /root/.ssh/authorized_keys

Putty 1.png

Füge in diese Datei den kopierten Public-Key ein.

Speichere die Datei mit STRG X, Y, ENTER.

Der Weg ist frei, sich mit dem SSH-Key zum Server zu verbinden. Ihr könnt also die Funktion, sich mit Passwort zu verbinden, entfernen.

Passwort-Authentifizierung komplett verbieten

Mit nano /etc/ssh/sshd_config müsst ihr die SSHD-Config erneut bearbeiten.

Ändert PermitRootLogin yes

Permrootlogin1.png

zu PermitRootLogin without-password

Permrootlogin2.png

Speichert die Datei mit STRG X, Y, ENTER.Startet den SSH-Server mit /etc/init.d/ssh restart neu.

Ab sofort ist die Verbindung mittels Passwort nicht mehr möglich. Nur noch SSH-Keys werden zur Authentifizierung zugelassen.

Den SSH-Key zur Verbindung mit dem Server benutzen