SSH-Server sichern

Selbst (und vor Allem) Server bedürfen regelmäßiger Wartungen. Um diesen nachkommen zu können, hat sich das SSH-Protokoll etabliert. Mit dessen Hilfe kann der Administrator auf die entfernten Maschinen zugreifen. Dieser Zugriff erlaubt aber nicht nur die Wartung oder Reparaturen. Traurig aber wahr: Die destruktive Kraft im Internet ist sehr hoch, da sich der Irrglaube standhaft hält, man sei anonym. Das heißt, dass es viele Menschen gibt, die nichts weiter mit ihrem Leben anzufangen wissen, als die Arbeit anderer zu zerstören. Es ist klar, dass eine solche Zugriffsmöglichkeit, für jeden kranken Freak, die Krönung seines bedauerlichen Daseins ist. Aus diesem Grund sollte man einige Vorsichtsmaßnahmen ergreifen, um den Zugriff nur denen zu gestatten, die mit diesem auch verantwortungsbewusst umgehen können.

Die wichtigste Vorkehrung ist, wie so häufig, die, bei der es um ein sicheres Kennwort geht. Auch hier kommt es durchaus auf die Länge an. ;-) Auch ist die Komplexität nicht zu unterschätzen. Wer sich "Kennwörter" aussucht, die in jedem Wörterbuch stehen, wird nur wenig Freude haben. Es bringt auch wenig, einfach mal eine Zahl dahinter zu setzen. Diese "Passwörter" bieten Schutz; aber keine Sicherheit.

Es wäre auch schlau, einen Benutzer einzurichten, über den man sich ausschließlich auf die Maschine aufschaltet. Das heißt, dass die meisten Angriffe mit dem Systembenutzer "root" versucht werden. Heißt der Benutzer z.B. "OmaIst98", sinkt die Wahrscheinlichkeit immens. Ähnlich wie bei dem Kennwort, kann man auch hier Pluspunkte sammeln, wenn man einfach etwas kreativ wird. Kryptische Benutzernamen können nicht schaden. ;-) Benutzer und Kennwort...Es gibt da noch etwas besseres! Es ist die sogenannte "Autorisierung per Schlüssel". Bei diesem Schlüssel gibt es einen Privaten und einen Öffentlichen. Der Öffentliche befindet sich auf der Zielmaschine (Server) und der Private natürlich ausschließlich auf dem privaten System (Client). Mit ssh-keygen ssh-keygen -b 2048 wird dieses Schlüsselpaar erstellt und mit ssh-copy-id ssh-copy-id -i id_dsa Benutzer@server.net sehr bequem auf der Zielmaschine installiert. Nun muss man nur noch dem Server "beibringen" diese, alternative Anmeldung zu akzeptieren.

SSH "horcht" normalerweise auf Port 22. Das ist, wenn man so will, die Tür zu dem Server. Würde man nun den Port auf einen anderen setzen, so kann man "sicher sein", dass die meisten Attacken schon mal ins Leere laufen. Hierbei sollte man nur drei Dinge bedenken: 1. der Port muss "real" sein (zwischen 0 und 65536) 2. der Port darf sich nicht mit andren, benutzen Ports überschneiden 3. ein engagierter Hacker findet auch diesen problemlos

Ich empfehle einen Port zwischen 1025 und 32000, da unter 1024 die Ports zumeist durch das Betriebssystem reserviert sind und über 32000 Ports für variable Verbindungen genutzt werden. Um es kurz zu machen: Ich ist exemplarisch eine SSH-Konfiguration: vi /etc/ssh/sshd_config

Port 1234 PermitRootLogin without-password StrictModes yes MaxAuthTries 3 LogLevel INFO UsePrivilegeSeparation yes RSAAuthentication no PubkeyAuthentication yes PermitEmptyPasswords no ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no AllowUsers Benutzer

Nun kann der SSH-Server neu gestartet werden. /etc/init.d/sshd reload

Das Tolle an diesem System ist, dass die bereits geöffneten Verbindung weiterhin bestehen, bis sie aktiv (durch den Nutzer) abgebaut werden. Das heißt, dass man gut daran tun, diese Verbindungen auch vorerst offen zu lassen und mit einer anderen Shell nun "versucht" sich zu verbinden. ssh -p 1234 Benutzer@server.net

Funktioniert dieses und kann "Benutzer" auch "root" werden su - Nun kann davon ausgegangen werden, dass die Umstellung funktionierte. Wenn nicht, dann hoffe ich, dass du auf meinen Rat hörtest und die Verbindung offen gelassen hast.

Es kann vorkommen, dass "reload" zu einem Fehler führt. Ein /etc/init.d/sshd restart funktioniert auch.

Nun, was hat die Konfiguration angestellt. Vor allem hat sie den aktiven Port verändert und verhindert in der Zukunft, dass sich andere Benutzer über SSH anmelden. Das Hauptaugenmerk sollte aber auf der Tatsache liegen, dass sich von nun an nur noch mit Hilfe des Schlüssels angemeldet werden kann. Sollte der Schlüssel verloren gehen, verabschiedet euch von der Idee "es dennoch irgendwie hinzubekommen". Ihr habt euch nun ausgesperrt und die Möglichkeit sich trotzdem anmelden zu können, würde die ganze Aktion grundsätzlich in Frage stellen. :-)

Ein kleiner Tipp: Sollte dein privater Schlüssel wegkommen, ist das schon mal sehr schlecht. Also muss/sollte diese Datei gesichert werden. Nicht viel besser ist es jedoch, wenn dieser Schlüssel in die Hände derer fällt, die für gewöhnlich (immer) die Kennwörter erraten haben. Daher ist es schlau, die Aufforderung nach einer "Passphrase" mit eben einer entsprechenden Eingabe zu bestätigen. Schlussendlich ist es nichts weiter als ein Passwort für den Schlüssel. Fällt der Schlüssel nun in die falschen Hände, so geht von diesen erst mal keine Gefahr aus. ...so lange nur das Schlüssel-Kennwort nicht zu leicht zu erraten ist und man den Schlüssel bei Zeiten ändert. ;-)

Für alle, die nun verzweifelt nach Lösungen suchen: Schlau ist der, der bevor er tätig wird, diesen Text bis zum Ende verfolgt hat. Denn wenn nicht, dann gehe ich davon aus, dass du dich nun ausgesperrt hast und nun nach hilfreichen Tricks suchst, wie du es wieder rückgängig machen kannst. Wenn du einen Zugang über eine Remote-Console oder gar physischen Zugang zur Maschine hast, dann ist alles gut. Wenn du dich auch in diesem Punkt vom Glück verlassen siehst, dann kann ich dir sagen, dass der Tag nicht besser für dich wird. (Ein Neustart des Servers bringt übrigens gar nichts.) Dies ist nun ein klassischer Grund, um einen Tobsuchtsanfall zu bekommen oder einer ausgedehnten Alkoholsucht zu beginnen. :-)

Postskriptum: Fühlst du dich nun "erleuchtet" und willst das neu erworbene Wissen gleich mal an diesem Server ausprobieren, so seist du gewarnt. Zum Einen wirst du keinen SSH-Port finden. Nicht, weil ich mir einen ganz Tollen ausgedacht hätte. - Nein! Es gibt einfach keinen! Zum Anderen sei an dieser Stelle gesagt, dass "Hacking" in Deutschland eine Straftat ist und man sehr wohl erkennen kann, wer sich da gerade am Server zu schaffen macht. Es sind nur die wenigsten Hacker wirklich Helden, auf die, nach vollbrachter Tat, ein großartiger Job wartet. - Die meisten enden beim Tütenkleben. ;-)