Login-Konfiguration neuer vServer

  • Benutze seit Jahren ausschlieszlich Linux und habe jetzt meinen ersten vServer bestellt.


    Ich werde hier mal reinschreiben, was meine ersten Schritte waren und sind. Einerseits als Hilfestellung fuer andere Anfaenger, andererseits um evtl. hilfreiche Kommentare von euch zu bekommen.


    • Login, Passwortaenderung:
      user@workstation:~$ ssh root@my_vserver
      root@my_vserver:~# passwd
    • Anlegen eines normalen Benutzers:
      root@my_vserver:~# adduser my_user
      root@my_vserver:~# exit
    • RSA-Key hinzufuegen:
      user@workstation:~$ ssh-copy-id my_user@my_vserver
    • Testen:
      user@workstation:~$ ssh my_user@my_vserver
      my_user@my_vserver:~$ su -
      root@my_vserver:~# exit
      my_user@my_vserver:~$ exit
    • SSHD-Konfiguration anpassen
      user@workstation:~$ ssh my_user@my_vserver
      my_user@my_vserver:~$ su -
      root@my_vserver:~# vi /etc/sshd_config

      • Zeile aendern: PermitRootLogin no
      • Zeile hinzufuegen: Port 24
        (prinzipiell beliebig; empfehlenswert ist ein unbenutzter Standardport, damit man auch von Rechnern hinter restriktiven Firewalls (Arbeitsplatz, Hochschule, ...) aus zum Server durchkommt)
      • Zeile aendern/hinzufuegen: MaxStartups 3:30:10
        (Die Werte im Beispiel bedeuten, dass 2 (= 1. Wert minus 1) "unauthenticated" (also im Login-Stadium befindliche) sshd-Verbindungen immer erlaubt sind. Ab der 3. (= 1. Wert) Verbindung wird mit einer Wahrscheinlichkeit von 30% (2. Wert) die Verbindung abgelehnt. Diese Wahrscheinlichkeit steigt linear an, bis bei 10 (3. Wert) offenen Verbindungen jeder weitere Verbindungsversuch zu 100% abgelehnt wird.)


    • neue Konfiguration laden und sshd neu starten:
      root@my_vserver:~# /etc/init.d/ssh reload
      root@my_vserver:~# /etc/init.d/ssh restart
    • Testen in neuer Shell. Die bestehende Shell-Verbindung nicht trennen, bevor sichergestellt ist, dass die Konfigurationsaenderung erfolgreich war und funktionsfaehig ist.
      user@workstation:~$ ssh -p 24 my_user@my_vserver
      my_user@my_vserver:~$ su -
      root@my_vserver:~# vi /etc/sshd_config

      • Zeile "Port 22" auskommentieren


    • neue Konfiguration laden und sshd neu starten:
      root@my_vserver:~# /etc/init.d/ssh reload
      root@my_vserver:~# /etc/init.d/ssh restart
    • Passwort-Authentifizierung deaktivieren
      user@workstation:~$ ssh -p 24 my_user@my_vserver
      my_user@my_vserver:~$ su -
      root@my_vserver:~# vi /etc/sshd_config

      • Zeile auskommentieren/aendern: PasswordAuthentication no


    • neue Konfiguration laden und sshd neu starten:
      root@my_vserver:~# /etc/init.d/ssh reload
      root@my_vserver:~# /etc/init.d/ssh restart


    Zusammenfassung:

    • SSH laeuft ueber einen alternativen Port (reduziert die Anzahl an Brute-Force-Angriffen drastisch)
    • root-Login ist per SSH nicht mehr moeglich
    • Authentifizierung ausschl. per RSA-Key
    • Beschraenkte Anzahl gleichzeitiger Login-Vorgaenge (weniger Serverauslastung durch massenhafte Loginversuche)


    Habe ich etwas wichtiges vergessen? Sollte ich irgendwas anderes machen? Kommentare?

  • Sehr gut. Konnte jetzt nix finden was fehlt.


    Evtl könnte man noch den Zugang mit SSH via openVCP Firewall auf eine IP Beschränken. Ginge wenn man einen Internet Anschluss mit fester IP Adresse hat. (Wie zB bei uns auf der Arbeit)


    //edit
    Ah doch, man könnte den Zugang zu Server nur mit Keys erlauben. Sprich ssh user@server -i keyfile.

  • Danke fuer deinen Kommentar.


    Pro Rechner (Desktop, Laptop, ...) habe ich einen RSA-Schluessel. Diese habe ich mittels ssh-copy-id zur ~/.ssh/authorized_keys des vServers hinzugefuegt.


    ~/.ssh/id_rsa
    ~/.ssh/id_rsa.pub


    Dadurch, dass die RSA-Schluessel jeweils im Standardpfad liegen, spare ich mir uebrigens die -i Option mit expliziter Schluesselangabe.


    Eine Beschraenkung auf RSA-Authentifizierung habe ich mir auch schon ueberlegt (Punkt 3 der Zusammenfassung). Falls mir nix mehr einfaellt, was dagegenspraeche, werde ich das auch entsprechend umstellen.


    Eine feste IP kommt fuer mich nicht in Frage. Ich gehe von sehr vielen verschiedenen Netzen (Hochschule, Zuhause, Eltern, Freunde, ...) aus online. Darueber hinaus haben die meisten der Netze dynamische IPs.

  • Mal ne Frage. Angenommen mir geht irgendwann mal der Schlüssel (ppk) verloren. Gibt es dann gar keine Möglichkeit mehr über ssh auf den Server zu gelangen?


    PasswordAuthentication no


    Kann man sich vielleicht irgendwelche Sicherheitsmaßnahmen anlegen?


    mfg Chris

  • Wuesste ich aus dem Stegreif nicht.


    Ich wuerde da auf jeden Fall zu Redundanz raten. Ich habe bei mir auf Laptop, Desktop und Homeserver jeweils einen RSA-Schluessel (also insgesamt drei). Alle drei RSA-Schluessel sind in der ~/.ssh/authorized_keys des vServers eingetragen.


    Falls mir mal eine der drei Kisten abraucht, habe ich also noch zwei weitere gueltige Schluessel, mit denen ich an den Server rankomme.

  • Zitat von masterchris_99;10226

    Gibt es dann gar keine Möglichkeit mehr über ssh auf den Server zu gelangen?


    Einfach den vServer im Rettungsmodus booten und die SSH-Config anpassen :)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)