Guten Tag!
Nachdem ich nun wenige Tage jeweils bei Habbo.st und Jabbo.st mitgewirkt habe, viel mir unter anderem auf, dass viele Linuxserver nur sehr einfach geschützt wurden. Würmer welche durch Bruteforce die Kennwörter solcher Server erraten und sie in Spamschleudern verwandeln haben dort ein leichtes Spiel. Kennwörter sind, in Relation zu RSA-Keys gesetzt, nur sehr kurz und daher unsicher.
Ich möchte euch heute zeigen, wie man bei dem SSH Server die Kennwort-Authentifizierung deaktiviert und gegen eine RSA-Key basierte Authentifizierung austauscht. Dazu benötigen wir nichts mehr als einen Linux Server. In diesem Falle verwende ich auf meiner Testmaschine einen Debian-Derivat names Ubuntu Server 12.10. Diese Schritte sollten also auch mit anderen Debian-Derivaten Funktion zeigen.
Da man sich hier schnell von seinem eingenen Server ausschließen kann, empfehle ich, das Ganze vorher auf einer Testinstallation zu testen, bevor dies auf einem Produktivserver Einsatz findet.
Schritt 1
- Als erstes müssen wir uns in den Server als "root" einloggen und navigieren in den Ordner "/root/.ssh" mit dem Befehl:
# cd /root/.ssh
Schritt 2
- Wir können nun mit dem Befehl "ssh-keygen" einen neuen SSH Schlüssel generieren und jeweils den öffentlichen sowie privaten SSH Schlüssel abspeichern lassen. Wir werden nach dem Ausführen des Befehls gefragt in welchem Ordner wir den SSH Schlüssel abspeichern wollen. Diese Frage sollte mit einem einfachen Enter beantwortet werden, somit wird der Standardordner "/root/.ssh" verwendet. Danach wird mach nach einem Kennwort gefragt, welches benötigt wird um den RSA-Key wieder zu entschlüsseln, was die Sicherheit erhöht:
Schritt 3
- Nach erfolgreicher Ausführung sollte das SSH Fenster nun so ähnlich wie der Ausschnitt aus dem Screenshot aussehen. Wir müssen nun die Datei "id_rsa" auf den eigenen Computer kopieren. Diese Datei wird in Zukunft die Eingabe des Kennwortes ersetzten und sollte daher redundant auf verschiedenen Medien aufbewahrt werden, um einen Verlust zu vermeiden. Wenn dies geschehen ist fügen wir der Datei "authorized_keys" den öffentlichen Schlüssel hinzu. Es handelt sich dabei um die Datei "id_rsa.pub". Dies geht wie Folgt:
cat id_rsa.pub >> authorized_keys
Schritt 4
- Nun ist der Schlüssel erfolgreich installiert. Wir werden nun die Authentifizierung per Kennwort deaktiveren. Dazu müssen wir die Datei /etc/ssh/sshd_config bearbeiten, sodass folgende Werte wie Folgt vorhanden sind:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
Schritt 5
- Den SSH Server starten wir nun mit dem Befehl:
/etc/init.d/ssh restart bzw service ssh restart
neu.
Schritt 6
- Ab jetzt ist es nicht mehr möglich sich mit einem Kennwort einzuloggen. Die Keyfile muss ab jetzt verwendet werden. Dazu öffnen wir z.B. Putty und navigieren in der Sidebar zu "Connection", weiter zu dem Unterpunkt "SSH" und wählen dort den Unterpunkt "Auth" aus. In der erscheinden Maske kann man nun einen RSA-Key (welchen wir vorher generiert haben) auswählen:
Nun kann man wie gewohnt auf den Server verbinden und hat dieses Gefühl, seinen Server ein Stück weit sicherer gemacht zu haben.