SSH-Server absichern…

Ein Server kann noch so sicher sein, es geht immer besser 🙂


Kümmern wir uns hier mal um den SSH-Server. Es gibt folgende Optionen, das ganze etwas „abzuriegeln“

  • Den Standardport von 22 auf etwas anderes (am besten über 1024) ändern. Achtung – an die Portfreigabe im Router denken
  • Die Passwort-Authentifizierung abschalten und nur noch mit Key-Anmeldung arbeiten
  • 2-Faktor-Authentifizierung bei SSH (aber nur für ganz paranoide)

Bisher war es recht einfach diesen in der /etc/ssh/sshd_config zu ändern, neuere Ubuntu-Versionen haben hier aber wieder einen anderen Weg eingeschlagen.

Hier müsst ihr in der /etc/default/ssh bei den SSHD_OPTS= euren Port eintragen. Z. b. SSHD_OPTS=“-p 8888″ für Port 8888

Dann noch mit folgendem Befehl den SSH-Server neu starten.

sudo systemctl restart ssh

Auf neueren Systemen lässt sich der Port nicht mehr einfach in der sshd_config ändern. Wenn ihr das trotzdem wollt, müsst ihr zwei Befehle eingeben:

systemctl disable --now ssh.socket
systemctl enable --now ssh.service

Öffne das Terminal und gib folgenden Befehl ein

cd ~/.ssh/
ssh-keygen -t rsa -b 4096

Gebt den Namen für den Key ein (Beispiel testkey) und anschließend eine Passphrase – GUT MERKEN!!!

Jetzt muss euer Public-Key halt noch auf den Server, den ihr bedienen möchtet. Auch hier beachten, dass ich als Beispiel den Port 8888 mi eingebaut habe. Als user müsst ihr den User von eurem Server angeben.

ssh-copy-id -i testkey.pub -p 8888 user@domain.tld

Jetzt könnt ihr euch schon mit dem Key anmelden

ssh -i testkey -p 8888 user@domain.tld

Wenn das funktioniert, müssen wir die Passwort-Auth auf dem Zielserver abschalten. Dazu geht ihr in die /etc/ssh/sshd_config. Dort den Wert

#PasswordAuthentication yes

ändern auf

PasswortAuthentication no

Die Datei speichern, und den SSH-Server neu starten mit

sudo systemctl restart ssh