SSH auf Linux Debian Server einrichten und absichern

SSH Zugang einrichten

Wir werden in diesem Artikel den ssh-Zugang für den Benutzer root sperren, Den ssh-Port verändern und einen neuen Benutzer erzeugen, der alleiniges Recht besitzt, sich über ssh zu verbinden und der sich ausschließlich mit dem Private-/Public-Key-Verfahren authentifizieren lässt.

Falls ihr einen Server bei netcup gehostet habt, wird ssh schon vorinstalliert sein und ihr könnt die Installation überspringen und beim Erstellen des ssh-users beginnen.

SSH Installation und root den Zugang ermöglichen

apt-get install openssh-server

Dann gebt ihr dem root die Erlaubnis per ssh zuzugreifen. Dafür öffnet ihr folgende Datei:

vim /etc/ssh/sshd_config

Dort ändert ihr folgende Zeile ab:

PerminRootLogin yes

Damit die Änderungen wirksam sind, muss der ssh-Service neu gestartet werden:

service sshd restart

Jetzt könnt ihr euch von egal wo mit eurem Server über PuTTY verbinden. Diese Schritte sind bei der Debian-Version von netcup schon voreingerichtet und ihr könnt mit dem nächsten Punkt weitermachen.

SSH-User erstellen

Leider gibt es automatische Skripte, die auf alle IP Adressen die sie finden ein Bruteforcing-Angriff starten, indem sie sich mit root auf eure Server-IP und Port 22 versuchen drauf zu schalten und alle möglichen Passwörter einfach ausprobieren, bis sie Glück haben und ein System knacken.

Das können wir verhindern, indem wir dem root verbieten sich mit ssh zu verbinden und dafür einen neuen User anlegen, der einen möglichst komplizierten Namen hat. Außerdem sollten wir den Standardport von 22 auf irgendeinen freien Port umändern! Zusätzliche Sicherheit bekommen wir, wenn der neue User gar kein Passwort bekommt, sondern sich ausschließlich über ein Private-/Public-Key-Verfahren authentifizieren lässt.

In folgendem Eingabefeld könnt ihr euren Benutzernamen eingeben und die Konsolenbefehle passen sich eurem Namen an (zum leichteren rauskopieren). Ich habe mich für folgenden kryptischen Benutzernamen entschieden, indem ich einmal wild auf der Tastatur rumgeklimpert habe:

adduser --shell /bin/bash --disabled-password --ingroup 'ssh' isufhveqruitiuoargezb 

Jetzt könnt ihr euch als dieser User am System anmelden:

su - isufhveqruitiuoargezb

Danach erzeugt ihr als isufhveqruitiuoargezb ein Schlüsselpaar, welches eine von euch gewählte Passphrase (=Passwort) bekommt:

ssh-keygen -t rsa -b 4096

Wenn ihr kein anderes Verzeichnis gewählt habt, wird das Erzeugnis in folgendem Pfad liegen:

/home/isufhveqruitiuoargezb/.ssh/id_rsa (Das ist euer privater Schlüssel!)

/home/isufhveqruitiuoargezb/.ssh/id_rsa.pub (Das ist euer öffentlicher Schlüssel!)

Den öffentlichen Schlüssel benennen wir jetzt noch, in eine sich durchgesetzte Namenskonvention, um und geben vollen Zugriff darauf.

mv /home/isufhveqruitiuoargezb/id_rsa.pub /home/isufhveqruitiuoargezb/authorized_keys
chmod 700 /home/isufhveqruitiuoargezb/.ssh
chmod 600 /home/isufhveqruitiuoargezb/.ssh/authorized_keys

Speichert euch den privaten Key am besten auf eurem Client von dem ihr arbeitet, damit ihr dann im folgeschritt daraus den PuTTY Private Key erzeugen könnt!

Dem SSH-User den Zugriff erlauben, den root aussperren und den Standard-Port verändern

Für den Port müsst ihr euch einen freien aussuchen, hier findet ihr eine Belegungsliste. Ich habe mich für 28831 entschieden.

Die Einstellungen müssen in folgender Datei geändert bzw. hinzugefügt werden.

vim /etc/ssh/sshd_config
Port 28831
PerminRootLogin no
AllowUsers isufhveqruitiuoargezb

Und wieder den Service neu starten.

service sshd restart

Doch ACHTUNG!!! solltet ihr jetzt einen Fehler gemacht haben, sperrt ihr euch aus und ihr müsst, wie ich beim aller ersten Mal, die Rettungsfunktion von netcup nutzen und die ssh-Konfiguration zurücksetzen, weil ihr sonst nicht mehr auf den Server drauf kommt!

PuTTY Private Key erzeugen und erste Anmeldung

Ihr benötigt das Programm PuTTYgen um den PuTTY Private Key (ppk) zu erzeugen, den ihr an eure PuTTY-Session dranhängen müsst.

An dieser Stelle benötigen wir die id_rsa-Datei, die ihr vorhin beim Erzeugen auf euren Client gespeichert haben solltet. Dann werden folgende Schritte ausgeführt:

  1. Die Datei „id_rsa“ in „id_rsa.ppk“ umbenennen (ppk = PuTTY Private Key File)
  2. PuTTYgen öffnen und "Load an exisiting private key" klicken
  3. id_rsa.ppk auswählen und anschließend eure Passphrase eingeben
  4. Zum Schluss "Save private key" klicken → wieihrsiebenannthabt.ppk

Danach startet ihr eine neue PuTTY-Session und verbindet euch mit folgenden Daten: (Mein Testserver hat die IP: 192.168.2.107, ihr müsst an dieser Stelle natürlich die IP eures Servers eintragen)

Host: isufhveqruitiuoargezb@192.168.2.107

Port: 28831

Und unter folgendem Menüpunkt fügt ihr die mit PuTTYgen erzeugte wieihrsiebenannthabt.ppk-Datei hinzu:

ConnectionSSHAuth → ganz unten bei "Browse"

Dann speichert euch die Session unter einem beliebigen Namen ab und verbindet euch. Jetzt müsst ihr nur noch eine Abfrage mit Ja bestätigen und eure Passphrase eingeben, dann seid ihr verbunden! Mit dem einfachen Befehl su könnt ihr euch als root einloggen und seid voll handlungsfähig!