Server administrieren - wo fange ich an?

  • Da über die letzten Wochen oder teilweise gar Monate meine fail2ban´s auf 6 Servern nichts gebannt haben, bin ich ein bisschen misstrauisch geworden. Oder habe ich einfach nur Glück?

    Auf jeden Fall wollte ich es an einem Server selbst testen, und habe einfach mal bei folgenden Regeln fünfmal telnet IP Port versucht.

    Hattest Du nicht Deinen SSH-Port geändert?


    Dann kann es Monate dauern bis die Deinen Server finden und Login-Versuche starten.


    fail2ban bannt ja nur dann, wenn es Angriffe gab. Das kannst Du selbst auch checken indem Du in die Logs schaust:


    Code
    journalctl -u ssh
    
    # oder falls vorhanden
    
    more /var/log/auth.log

    Wenn Du einen Angriff simulieren willst, kannst Du versuchen dich mit SSH, einem nicht vorhandenen Benutzer und/oder falschen Passwort anzumelden. Nicht vergessen Deinen Port mit anzugeben:


    Code
    ssh -p 12345 wronguser@server


    Kannst das ja von einem Deiner anderen Server aus machen, statt von Deiner IP daheim. Dann kannst Du Dich immer noch einloggen.


    Vergiss folgenden Satz. Du hattest es ja 5 mal versucht: Außerdem reicht ein Versuch nicht aus. Du musst den Login mehrfach versuchen, oder maxretry auf 1 setzen.


    Außerdem solltest Du noch


    Code
    [sshd]
    port    = 12345 #was-auch-immer-dein-port-ist


    hinzufügen.

  • Welches OS und welche Version hast du installiert?

    Als OS läuft Debian 12

    Wird da ins Journal geloggt oder hast du noch "klassische" Logfiles?

    Laut fail2ban.conf wird nach /var/log/fail2ban.log geloggt.

    Das "backend = systemd" überwacht das Journal und nicht die auth.log soweit ich weiss.

    Was genau bedeutet das? Ich habe leider erst nach dem Hinzufügen von backend = systemd angefangen, meine eigene Doku zu schreiben. Alles, was ich noch weiß ist, dass fail2ban nicht lief, und nach langer Suche das die Lösung war.

    Ausserdem, ich glaube nicht, dass ein einfaches telnet auf den SSH Port schon reicht, oder hast du auch ein falsches Passwort eingegeben?

    Ah okay. Ja, da war ich mir nicht sicher. Dann werde ich mal schauen wie ich fail2ban testen kann, bzw. wie ich meinen Server selbst "angreifen" kann. Dachte das könnte reichen.

    Dass allerdings auf 6 Servern monatelang gar nichts gebannt wird deutet schon darauf hin, dass eventuell was schief läuft. Andererseits, viele "Angreifer" sind vorsichtig geworden und benutzen Botnetze anstatt einfach brute force Zugangsdaten auszuprobieren mit ein und derselben IP. Teilweise probieren sie es nur zweimal mit der selben IP oder mit längeren Zeitabständen. Was sagt die fail2ban.log? Wurden Versuche erkannt? Existiert sie überhaupt?

    Die log an sich existiert, allerdings sieht man halt nur das fail2ban gestartet wurde und mit welcher config. Oder der klassische rollover Kommentar.

    Hattest Du nicht Deinen SSH-Port geändert?

    Richtig. Und 22 ist auch zu (ufw).

    fail2ban bannt ja nur dann, wenn es Angriffe gab. Das kannst Du selbst auch checken indem Du in die Logs schaust

    Ich kann die log teilweise nicht lesen, bzw. bin mir nicht sicher, ob das Angriffe waren. Hier mal ein Ausschnitt von tauri:

    Man sieht ein paar Versuche, sich zu verbinden. Oder habe ich das falsch interpretiert? Kann ich fail2ban beibringen, Versuche, welche auf von ufw geschlossene Ports stattfinden, beim ersten Versuch zu bannen?

    Wenn Du einen Angriff simulieren willst, kannst Du versuchen dich mit SSH, einem nicht vorhandenen Benutzer und/oder falschen Passwort anzumelden. Nicht vergessen Deinen Port mit anzugeben:


    Code
    ssh -p 12345 wronguser@server


    Kannst das ja von einem Deiner anderen Server aus machen, statt von Deiner IP daheim. Dann kannst Du Dich immer noch einloggen.

    Ich hab es jetzt mal wie folgt versucht:

    Und dann natürlich nochmal in die /var/log/fail2ban.log von tauri geschaut:

    Okay, hat also funktioniert. Auch Munin hat das erste mal was geloggt:

    Hätte ich nicht gedacht. Scheint ja dann alles in Ordnung zu sein... Hm.

    Außerdem solltest Du noch


    Code
    [sshd]
    port    = 12345 #was-auch-immer-dein-port-ist


    hinzufügen.

    Habe ich gemacht. Danke dir. Aber ich dachte fail2ban bannt auch unabhängig davon, ob ich meinen SSH-Port angebe oder nicht? Also auf allen Ports?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • "Hattest Du nicht Deinen SSH-Port geändert?"


    Richtig. Und 22 ist auch zu (ufw).

    Dann ist das nicht ungewöhnlich.

    Auf fast allen meiner Server (ssh-Port überall geändert) hat fail2ban nichts zu tun.


    EDIT: Eben mal nachgesehen. Tatsächlich auf allen


    Setz den Port doch versuchsweise mal auf 22 zurück. ;)

    Dann sollte sich schnell was tun ^^

  • Dann ist das nicht ungewöhnlich.

    Auf fast allen meiner Server (ssh-Port überall geändert) hat fail2ban nichts zu tun.

    Als ich euch damals gefragt hatte, wie ich einen Linux-Server absichere, meinte irgendjemand, dass das Ändern des SSH-Ports nicht viel bringt ^^ Deswegen hatte ich mir auch nicht allzu viel davon versprochen... Aber die ganzen Zugriffe die geloggt wurden, waren ja auch andere Ports als 22?

    Setz den Port doch versuchsweise mal auf 22 zurück. ;)

    Dann sollte sich schnell was tun ^^

    Done (auf meinem Testserver)

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • .... meinte irgendjemand, dass das Ändern des SSH-Ports nicht viel bringt ^^

    Ja, das ist so ne Glaubensfrage. ^^

    Es gibt die Meinung, das sei ja doch nur "security by obscurity" und bringe keinen Sicherheitsgewinn.

    Ich selbst mach das immer und bin damit schon mal 99% der Angreifer auf ssh los. :) (Und die logs bleiben schön sauber ;) )

  • Aber die ganzen Zugriffe die geloggt wurden, waren ja auch andere Ports als 22?

    Done (auf meinem Testserver)

    Wie aRaphael - schreibt, es bringt nichts gegen gezielte Angriffe - aber die meisten Scannen, scannen nur die Standard Ports, da man so am wenigsten Nois verursacht (nmap z. B. scannt standardmäßig auch nur die "most common 1,000 ports for each protocol.")

  • Gerade wenn man sowieso mehrere Server hat, lohnt es sich auch einen Jumphost / MGT Host zu konfigurieren, über den die SSH Verbindungen laufen. Dann kann man auf allen produktiven Systemen SSH komplett schließen und nur vom Jumphost erlauben. Der Jumphost kann dann entsprechend "gehärtet" werden (Fail2ban & Co.) und sollte auch nichts anderes (nach außen) laufen haben als SSH (minimale Angriffsfläche). Ggfs kann man auch noch ein VPN konfigurieren - muss man aber nicht. Das nur nochmal als kleine Ergänzung.

  • Also brauche ich quasi einen weiteren Server? I see what you did there..


    Spaß beiseite: Kommt auf meine Liste.

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

    Haha 2
  • Zwar nicht so schlimm wie bei RAD750, aber zumindest ist mal was zu sehen:

    Allerdings hab ich nach dem Kommentar von tom434 mal meinen SSH-Port mit der Liste von nmap vergleichen. Joar... Was soll ich sagen... Ich brauche wohl einen neuen SSH-Port...

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Apropos hostnames: Ist es wichtig, diese geheim zu halten? Eigentlich nicht, oder?
    Wie sieht es mit Sudo-Benutzern aus?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • Apropos hostnames: Ist es wichtig, diese geheim zu halten? Eigentlich nicht, oder?

    Ich nehme an, die Frage wurde dadurch getriggert, dass ich in meinem Beitrag drei unkenntlich gemacht habe?

    Das war nur, weil dort der dnsdomainname jeweils der domain des Servers entspricht.

  • Apropos hostnames: Ist es wichtig, diese geheim zu halten?

    Nö, kann ruhig jeder wissen, dass dein Server Peter Griffin heißt.


    Wie sieht es mit Sudo-Benutzern aus?

    Hier würde ich sagen ja, weil dann erst die richtige Kombi gefunden werden muss und es einen weiteren Layer bildet. Ich wüsste spontan nicht wie das jemand von außerhalb herausfinden könnte, abgesehen von brute force oder Service, der das versehentlich ausplaudert. Aber letztenendes ist das wichtigste immer noch dein Passwort oder Key bzw. wenn man noch weitergehen will 2FA.


    Fun fact: Gaben von Valve hat der ganzen Welt seine Steam Zugangsdaten mitgeteilt, weil er solches Vertrauen in seine 2FA Systeme hatte!

  • Hola zusammen, ich mal wieder ;)

    Ich verzweifle gerade daran, den Benutzer zu wechseln. Ich habe den Benutzer example erstellt, und wenn ich mit su example wechseln will, werde ich nach einem Passwort gefragt, obwohl ich ihn mit --disable-password erstellt habe.

    Was habe ich falsch gemacht?

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE