[Warnung/Erinnerung] Benutzt SSH Keys!

  • Viele von euch haben sicherlich mitbekommen das einige IOT (Internet Of Things) devices von einem virus infiziert wurden und nun teil eines riesigen botnets sind welches DNS server von einigen großen websiten in den USA und England lahmgelegt hat, einige nutzer in anderen ländern waren ebenfalls betroffen. Server sind zwar keine IOT devices werden aber trotzdem permanent angegriffen, in meinem auth log gibt es mindestens 1 fehlgeschlagenen loginversuch jede minute (bots werden nach ein paar versuchen von fail2ban gebannt).


    Jeder server auf den vom WWW aus zugegriffen werden kann sollte richtig geschützt sein. Leider gibt es einige leute die ein kurzes oder sehr einfaches passwort für ihren server benutzen da sie die gefahr unterschätzen.


    Egal ob ihr einen server bei netcup, zu hause oder wo anders hostet, bitte denkt dran das es millionen von gehackten PCs, servern und anderen geräten gibt von denen gerade einige wahrscheinlich dabei sind zu versuchen euer server passwort zu knacken.


    Es gibt viele gute anleitungen zum erstellen und benutzen von SSH Keys zur authentifizierung für fast alle Linux OS, solltet ihr trotzdem fragen haben könnt ihr sie hier gerne stellen.

    Edited 2 times, last by f3dora ().

  • Mir ist auch der Aufwand mit den Keys zu hoch. Aktuell habe ich diese im Google Drive, aber dann ist das ganze spiel eigentlich auch hinfaellig..


    Ich habe nur einen Benutzer, der SSH-Login darf, mit einem ca 20-Stelligen Passwort(-Satz). Das Klappt auch auf Smartphone-Tastaturen gut und ich kann mich an allen Geraeten einloggen.

  • Für das smartphone kann man eine app wie Serverauditor oder JuiceSSH benutzen, beide apps unterstützen auch SSH Keys.


    Google Drive ist zwar nicht optimal zum speichern von SSH keys aber Google hat ziemlich gute anti bruteforce listen (captcha) also sollte das eigendlich mit einem guten passwort kein problem sein.


    Für PCs (desktop, laptop und chromebook) kann man die Secure Shell extension von Google benutzen, keys muss man aber mit einem anderen programm wie puttygen generieren. Secure Shell - Chrome Web Store


    Wenn man sich von kundencomputern aus zum server mit SSH verbindet sollte man sowieso einen user benutzen der sehr gut von allem abgeriegelt ist wo er nichts ändern oder lesen soll. Für den root user oder user die root rechte haben sollte man auf jeden fall immer einen SSH key benutzen und sich nur von eigenen geräten einloggen.

    Edited 6 times, last by f3dora ().

  • Wenn man die Keyfiles mit einem Passwort schützt, ist es eigentlich fast egal, ob diese in der Cloud abgelegt werden. Meine liegen am NAS, über mein VPN kann ich mir jederzeit fehlende auf z.B. Handy oder Notebook herunterladen. (Und eine Passphrase sollten Keyfiles immer haben, außer für automatisierte Aufgaben über Scripte!)


    Ich finde Keyfiles extrem praktisch. So muss ich mir nur die Passphrase merken. Am Smartphone bzw. Tablet verwende ich VX Connectbot, dort werden sie einwandfrei unterstützt. Und auf fremden Rechnern würde ich niemals eine SSH-Verbindung zu meinen Servern herstellen! Das ist meiner Ansicht nach eine der schlimmsten Aktionen, die man machen kann. Würde bei mir aber sowieso nicht gehen, weil SSH nur über das VPN erreichbar ist.



    MfG Christian

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

  • Ich speichere meine (passwort geschützten) keyfiles auch auf meinem NAS welcher sie auch auf Google Drive nochmal verschlüsselt hochlädt.

  • In wiefern ist der aufwand für SSH-Keys zu hoch?


    Key machen fertig.
    Den kannst du dann auch für "AndFTP" z.B. für android nutzen oder putty oder im Terminal bei linux oder Filezilla etc.


    Der KEy muss ja auch nicht per se immer ein Passwort haben. Du solltest ihn halt nur gut schützen.

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Viel wichtiger als SSH-Keys finde ich eigentlich Fail2Ban und eine Mailbenachrichtigung bei erfolgreichem Login,
    so beugt man Brute-Force effektiver vor und bekommt auch im Notfall bescheid.


    Dienste wie blocklist.de finde ich auch sehr interessant dafür.


    Viele Grüße!
    margau

  • Das stimmt. Fail2Ban sehe ich mit Key files beide auf Platz 1.


    Wobei ein login ohne File ja sowieso ausgeschlossen ist. Bei richtiger Konfiguration.

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Naja eig. Standard. Denke auch bei Management Servern sollte das von Anfang an so sein. Oder ist das so?


    Allerdings kommen wir jetzt ja immer tiefer in die Materie. Jemand der den Ssh port ändert und ändern kann sollte wissen welche Dienste laufen und welche Ports die brauchen. Wer eigene Dienste installiert und die Ports frei gibt beschäftigt sich mit der Firewall. Wer das macht und Ssh key nutzen kann der sollte genug Erfahrung haben um zu wissen wie wichtig das ist.


    Leider gibt es so schrecklich viele Server auf port 22 ohne Schutz :( wie so ein Baby allein in der Wildnis :D
    Nur das aus den Servern keine Chance besteht zu Mogli zu werden :D

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Sry, dass ich jetzt direkt werde, aber bei solchen Beiträgen bekomme ich immer dass kalte Kotzen. Hier wird darüber geredet, dass ein SSH-Key den Server schützen würde. Dass die meisten IoT-Geräte, die hier ja als Beispiel aufgeführt werden, ein Standardpasswort verwenden oder von schwerwiegenden Bugs wie dem Heartbleed betroffen sind und deshalb leicht zu knacken sind, das wird wieder einmal nicht erwähnt. Ebenso wenig, wie hier erwähnt wird, dass die meisten Server wegen veralteter Software oder Sicherheitslücken geknackt werden.


    Denn wenn wir uns das Ganze einmal anschauen, sollte jedem schnell klar werden, dass ein fehlerfreier (Theorie, also ohne Sicherheitslücken) SSH-Zugang bei nur minimalen Sicherheitsvorkehrungen kaum zu knacken ist. Als Erstes sollte man sich dazu anschauen, was solche Bots versuchen. Meistens werden nur Standard Logins wie root, admin, administrator, ... und Passwörter aus sogenannten Wörterbüchern versucht. Diese enthalten in der Regel nahezu alle Standardpasswörter und die am häufigsten verwendeten Passwörter. Wer also ein ungewöhnliches Passwort hat, der ist schon einmal nicht ungeschützt. Bei einem acht-stelligem Passwort bestehend aus Zahlen und Buchstaben (also 36 hoch 8) sind bis zu 2,25 Trillionen Versuche notwendig.Zwar wäre das, wenn den Angreifer den Hash kennen würde, mit der heutigen Rechenleistung in weniger als einer Minute knackbar. Da er diesen in den meisten Fällen jedoch nicht kennt, müsste der Angreifer also bis zu 2,25 Trillionen Login Versuche an eurem Server unternehmen. Dadurch würde es wieder mehrere Jahre dauern oder euren Server ansonsten Lahmlegen und selbst Wald und Wiesen Admins aufhorchen lassen. Bei einem Passwort nach aktuellem Sicherheitsverständnis, also zwölf Zeichen, bestehend aus Zahlen, Buchstaben und Sonderzeichen (72 hoch 12), wären schon bis zu 19 Sextillionen Versuche notwendig. Selbst bei bekanntem Hash würde aktuelle Cluster viele Jahrzehnte für das Knacken brauchen.


    Natürlich ist es immer besser die besten Sicherheitsvorkehrungen zu nutzen. Alleine weil Keys ja nicht nur vor Brute-Force Attacken, sondern auch vor Man-in-the-Middel-Angriffen schützen.


    Deshalb meine Empfehlung (insbesondere an unerfahrenen): Bemüht euch nicht nur um die Standards, denn diese lassen sich leicht absichern. Aber wer von euch hat sich ausgiebig mit seinem Web- und Mailserver beschäftigt? Wer weiß was ein Reverse-Proxy ist und wie er ihn aktiviert ... damit er sich sicher sein kann, dass dieser nicht aktiviert ist? Übrigens eine häufig genutzte Angriffsfläche um DDoS zu verstärken. Wie lange braucht Ihr um Update einzuspielen? ....

  • Tolive


    Das mit den IOT devices war nur ein beispiel was passieren kann wenn ein server von einem virus infiziert wird.


    Natürlich sollten solche einfachen passwörter ausreichen, aber nur wenn es aus einem passwort generator sind. 100% sicher ist es trotzdem nicht, die wahrscheinlichkeit das ein bot das passwort knackt is zwar weniger als 1%, trotzdem ist es nicht annähernd so sicher wie ein 2048 oder 2096 RSA key.


    Web server sind eigendlich kein problem, apache2 und php7 installieren, cloudflare aktivieren, alle HTTP(S) verbindungen die nicht durch CF kommen blockieren und optional auch den zugriff von fremden domains verbieten. Software die eine SQL database benutzt vermeiden, wenn es keine alternative gibt einfach MySQL installieren und sehr vorsichtig bei der installation sein, die test datenbank und anonymous user entfernen und den remote access deaktivieren.


    Außerdem software wie Wordpress, Joomla und andere selbst gehostete "website builder" software auf jeden fall vermeiden, bei denen werden dauernd neue sicherheitslücken gefunden.

    Edited 4 times, last by f3dora ().

  • @f3dora:
    Wenn ich Software wir Wordpress oder Joomla vermeiden soll kann ich den Server auch gleich heruntergefahren lassen :)


    Ein Server ist nunmal dazu da Dienste anzubieten. Und Dienste anbieten ist immer gefährlich.
    Wenn ich selbst geschriebene oder unbekannte Software nehme so sind da drin hunderte Sicherheitslücken dir nur noch keiner gefunden hat weil sie keiner sucht.
    Nehme ich bekannte Software so werden da die Sicherheitslücken zumindest geschlossen.

  • Wenn man erfahrung mit Linux servern hat und einen hack erkennen kann kann man auch Wordpress oder Joomla hosten, ich habe von anfängern geredet.


    Die beste lösung ist natürlich einfach docker container zum hosten der website zu benutzen, leider ist das für anfänger sehr kompliziert.

  • Woran erkennt man einen hack abgesehen von log files und traffic?


    Gibt es bezüglich diesen Themas gute Lektüre oder so? Würde mich gern da etwas mehr einlesen.

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Die beste lösung ist natürlich einfach docker container zum hosten der website zu benutzen, leider ist das für anfänger sehr kompliziert.


    Ääähm nein - Docker ist so ziemlich alles, aber kein Sicherheitsfeature.
    Bei Lücken in genutzten Kernelfunktionen ist es ganz egal ob mit oder ohne Docker...


    Docker birgt im Gegenteil sogar die Gefahr, dass die darin laufende Software nicht vernünftig geupdated wird: aus einer Agentur weiß ich, dass Kunden gerne mal Docker-Container inkl. Webserver anfordern um die neue Webseite mit wenig Aufwand online gehen zu lassen. Als ob sich einer der eigenen Sysadmins einem Docker-Container einer Webagentur annimt...