Rootserver absichern: SSH

Ein SSH-Zugang ist für die Administration des Servers unerlässlich. Gleichzeitig bedeutet ein unsicherer Zugriff die größte Gefahr. Natürlich kann man argumentieren, dass mit einem sicheren Passwort schon sehr viel getan ist, hier soll noch ein wenig darüber hinaus getan werden.

Hierbei wird die Datei /etc/ssh/sshd_config geändert. Wie bei allen Änderungen an Konfigurationsdateien empfiehlt es sich, vorher eine Kopie der Originaldatei anzulegen:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

Zugang per Public-Key

SSH ermöglicht es, den Zugang über eine Schlüssel-Authentifizierung zu steuern, und Passwort-gesteuerte Logins zu verbieten. Das hat mehrere Vorteile:

  • Unmöglichkeit eines Brute-Force-Angriffs auf Passwörter.

  • Man muss sich das Passwort für den Login nicht merken, nur den für den eigenen Schlüsselbund.

Tutorials zur Einrichtung des Public-Key-Verfahrens gibt es sehr viele im Web, zum Beispiel bei huschi.net. Zu beachten ist eigentlich nur, dass Ubuntu OpenSSH verwendet.

Passwort-Login verbieten

Wenn das mit dem Schlüssel gemacht ist, kann man Passwort-Logins auch ganz verbieten:

/etc/ssh/sshd_config

PasswordAuthentication no

Port ändern

Es gibt leider genug Bots und Scripts, die Server nach offenen Ports abgrasen und dort alles mögliche probieren. Den SSHd haben wir zwar schon gut abgesichert, aber wenn auf Port 22 gar nicht erst etwas zu finden ist, ziehen solche Störenfriede (hoffentlich) schnell wieder weiter, ohne erst tausend Dinge erfolglos auszuprobieren, die den Server nur unnötig belasten.

So wird der Port geändert:

/etc/ssh/sshd_config

Port 6022

Die 6022 ist beliebig gewählt, es sollte irgendein nicht anders genutzter Port sein. Portscanner gehen normalerweise nur die „bekannten“ (http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers) Ports durch, alles andere dauert schlicht zu lange.

Den Port muss man dann explizit beim Login angeben:

ssh -p 6022 mein.root.server

Damit der Dienst in Logfiles, netstat usw. wie bisher mit seinem Namen (statt schlicht seinem Port) ausgewiesen wird, muss der Port in der Datei /etc/services geändert werden:

ssh             6022/tcp      # SSH Remote Login Protocol
ssh             6022/udp

Änderungen speichern

Nach einem beherztem sudo /etc/init.d/sshd restart sind die Änderungen aktiv. Die aktuelle Verbindung sollte davon nicht betroffen sein, also kann man erst mal eine zweite Verbindung parallel testen. Denn wenn man jetzt nicht mehr reinkommt, muss man mit Pech nochmal ganz neu anfangen, wenn es nicht vom Hoster eine Art Notfall-Lösung gibt.

 

Ein Gedanke zu „Rootserver absichern: SSH“

Kommentare sind geschlossen.