Linux Server ein Stück sicherer machen

  • 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.


    :!: FileXs #Lieblingsmod. :!:
    ... still making kids cry since 2015.

  • Vielen Dank, da ich einen Linux Server nutze ist es sehr interessant dies zu wissen.
    Eventuell solltest du den Vorschlag an SemperVideo schicken, sodass diese ein Video daraus machen.

  • Ich entschuldige mich für meinen nicht zum Thema passenden Beitrag, aber ich kenne mich mit RSA-Verschlüsselung nicht aus.
    Meine Frage: Weißt du noch, wozu ST und Jabbo den Linuxserver genutzt haben ? Für deren Retro oder hat das eher weniger damit zutun ?

    Natürlich musst du mir nicht antworten :D

    Ein Unwissinder, der sich auf RetroTown rumtreibt :P

  • Ich entschuldige mich für meinen nicht zum Thema passenden Beitrag, aber ich kenne mich mit RSA-Verschlüsselung nicht aus.
    Meine Frage: Weißt du noch, wozu ST und Jabbo den Linuxserver genutzt haben ? Für deren Retro oder hat das eher weniger damit zutun ?

    Natürlich musst du mir nicht antworten :D

    Einen bestimmt um den Webserver drauf zu hosten, den anderen vlt. als ein TCP Proxy der bei OVH steht oder Online.net.

  • Nice, habe es sofort an meinem Linux Root ausprobiert, hat problemlos geklappt.

    Mit freundlichen Grüßen,
    Unaytix

    Zitat

    Man wird vergessen, was du gesagt hast.
    Man wird vergessen, was du getan hast.
    Man wird aber nicht vergessen, welche Gefühle du ausgelöst hast.

  • Ich würde außerdem den SSH Standard Port von 22 zu irgendeiner anderen Zahl (die nicht schon besetzt ist) verändern.

    Spät. nach paar Minuten hab ich eh die ganzen Ports raus die offen sind.

    Da bringt ein Portchange nichts.

    Stichwort ist Fail2ban und Iptables.
    Und natürlich ne normale konfigurierte IPConfig oder als alternative ne Firewall.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!