Steigende Anzahl an Login-Versuchen bei SSH

  • Nur zum Verständnis. Du meinst damit, dass ich die Bantime hochschrauben kann, weil ich damit nicht mehr iptables belaste?

    Zumindest finde ich bei ipset und fail2ban schon mal die gleiche Anzahl IPs

    Ja, Du kannst die Bantime hochschrauben. Das ipset kann 1000000 Einträge aufnehmen. Bei größeren ipset's solltest aus Performancegründen die hashsize auf 65536 setzen. Hier noch einmal die action.d/ipset.conf

    Code
    actionstart = ipset create fail2ban_set hash:net family inet hashsize 32768 maxelem 1000000 -exist

    Das sollte eine Weile reichen. Werd aber nicht zum IP-Messie. :D

    Natürlich habe ich bei iptables noch jede Menge geblockter IP-Adressen drin. Ich hoffe, die verschwinden trotzdem automatisch, weil ich das Ganze ja nach ipset umgeleitet habe. :/

    Eigentlich sollten keine einzelnen F2B Bans mehr in der Iptables drinstehen. Vielleicht habe ich auch den Schritt gedanklich übersprungen. Ich hatte bevor ich das umgestellt hatte, mit

    Code
    fail2ban-client unban --all

    alles an IP's rausgeworfen. Mach mal nen Screenshot von der aktuellen Iptables-Liste.

    Gute Gedanken, Gute Worte, Gute Taten. (Film: Bohemian Rhapsody)
    Wer nach Art 5 Abs. 1 GG schreit, muss auch Abs. 2 gelesen und verstanden haben. Nur weil mir das Eine gefällt, heißt das nicht, das ich das Andere ignorieren kann.Ich teile meine Erfahrungen und Lösungswege gerne, das heißt aber nicht, dass sie richtig sind.
  • Mach mal nen Neustart. ;) 3000 IP's wäre mir zu fett zum einzenen löschen. :)

    Des Weiteren empfehle ich die Regeln von F2B auf DROP zu setzen, statt auf REJECT. Ist dann eine Art Mini-Tarpit. Die kleben solange an Deiner Backe, bis sie selbst die Verbindung unterbrechen. Dich tangiert es aber nicht weiter und ein Anderer wartet dann vergeblich auf nen Bot. In Zeiten, wo man inzwischen auch für ausgehenden Traffic bezahlen muss (bei dem einen oder anderen Tarif, wenn auch erst nach bspw. 10 TB), muss man seine Ressourcen nicht unbedingt darauf verschwenden, so einem Bot auch noch zu antworten. Sofern Interesse...

    Code
    nano /etc/fail2ban/action.d/iptables-common.conf

    ändern des blocktype von REJECT auf...

    Code
    blocktype = DROP
    Gute Gedanken, Gute Worte, Gute Taten. (Film: Bohemian Rhapsody)
    Wer nach Art 5 Abs. 1 GG schreit, muss auch Abs. 2 gelesen und verstanden haben. Nur weil mir das Eine gefällt, heißt das nicht, das ich das Andere ignorieren kann.Ich teile meine Erfahrungen und Lösungswege gerne, das heißt aber nicht, dass sie richtig sind.
  • Wer hat hier schon mit Crowdsec gearbeitet? Das soll wohl "besser" sein, jedenfalls liest sich das immer so. Ich habs mal versucht zu installieren aber mit deren Anleitung komm ich nicht wirklich weit.

    Ich habe es noch nicht ausprobiert. Packe ich aber auf meine Planliste, wenn ich demnächst einen Server wieder fit mache. Bei laufenden Systemen will ich nicht ran.

    Gute Gedanken, Gute Worte, Gute Taten. (Film: Bohemian Rhapsody)
    Wer nach Art 5 Abs. 1 GG schreit, muss auch Abs. 2 gelesen und verstanden haben. Nur weil mir das Eine gefällt, heißt das nicht, das ich das Andere ignorieren kann.Ich teile meine Erfahrungen und Lösungswege gerne, das heißt aber nicht, dass sie richtig sind.
  • Habe in der fail2ban.log diesen Eintrag gefunden. Wie kann denn das sein?

    Der müsste nach meinem Verständnis doch eigentlich schon durch die Firewall blockiert werden und zu f2b gar nicht mehr durchkommen. Oder mache ich hier einen Gedankenfehler?

    WARNING [portscan] 188.165.253.193 already banned

  • Guten Morgen Sojan,

    vermutlich hast Du den gleichen Logikfehler drin, den ich auch gemacht habe. Und dafür muss ich mich entschuldigen, weil ich sie ja auch mitgegeben habe. Vermutlich stehen Deine iptables-Regel auf ACCEPT. Das heißt, sobald eine Gültigkeit erfüllt ist, überspringt er alle anderen INPUT-Rules. Hab da auch eine Weile gebraucht, bis ich dahinter gestiegen bin. Dachte immer, dass er wenn einer Regel fertig ist, würde er die Nächste durchlaufen. Das Zauberwort ist aber RETURN.

    Hier noch einmal die Regelsätze, damit auch alle Regeln durchlaufen werden müssen. Passe die CHAINS und IPSETS nach Deinen Benennungen an. Diese Regelsätze enthalten jetzt noch einmal das hier im Thread Besprochene: IPSET, FAIL2BAN, BLOCKLISTDE und GEOBLOCK.

    1. FAIL2BAN
    2. GEOBLOCK
    3. BLOCKLISTDE

    Hier noch einmal abschließend die dafür nötigen INPUT-Regeln Achte auf die Reihenfolge. Passe die

    4. INPUT
    Code
    sudo iptables -F INPUT
    sudo iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
    sudo iptables -I INPUT 2 -i lo -j ACCEPT
    sudo iptables -I INPUT 3 -p tcp -j FAIL2BAN
    sudo iptables -I INPUT 4 -p tcp --match multiport --dports 20,21,22,25,80,110,143,443,567,8080,8443,993,995 -j GEOBLOCK
    sudo iptables -I INPUT 5 -p tcp --match multiport --dports 20,21,22,25,80,110,143,443,567,993,995,8080,8443 -j BLLISTDE
    sudo iptables -I INPUT 7 -p icmp --icmp-type echo-request -j ACCEPT

    Zum Abschluss. Es verirrt sich immer mal wieder jemand auf den Server und schafft es bis zum Login. Aber dafür ist ja dann Fail2ban da. Meine Logs, mit Ausnahme der Protokolleinträge bzgl. Iptables, sind jetzt stiller als auf dem Friedhof. Meine Logprefixe hab ich alle auf 16 Zeichen gesetzt, damit das Log nicht immer so verschoben aussieht.

    Gute Gedanken, Gute Worte, Gute Taten. (Film: Bohemian Rhapsody)
    Wer nach Art 5 Abs. 1 GG schreit, muss auch Abs. 2 gelesen und verstanden haben. Nur weil mir das Eine gefällt, heißt das nicht, das ich das Andere ignorieren kann.Ich teile meine Erfahrungen und Lösungswege gerne, das heißt aber nicht, dass sie richtig sind.
  • Eine Frage wenn ich dich richtig verstehe willst du ja dass IPs aus bestimmten Ländern nicht angenommen werden.

    Warum gehst du dass ganze nicht anders an und blockierst erst mal alles und gibst via Geo Blocking dann nur Adressbereiche frei die du haben möchtest?

  • faxxy,

    Guter Einwand. Die Regeln sind so gestaltet, dass ich wenn ich absolut fertig bin, auch die INPUT POLICY auf DROP setze. Bis dahin will ich erst einmal gucken, wie sich die einzelnen Dienste verhalten. Z.Zt. sind die iptables Regeln auch noch nicht fix in Stein gemeißelt. Sie funktionieren, aber da gibt es bestimmt noch Luft nach oben.:)

    Gute Gedanken, Gute Worte, Gute Taten. (Film: Bohemian Rhapsody)
    Wer nach Art 5 Abs. 1 GG schreit, muss auch Abs. 2 gelesen und verstanden haben. Nur weil mir das Eine gefällt, heißt das nicht, das ich das Andere ignorieren kann.Ich teile meine Erfahrungen und Lösungswege gerne, das heißt aber nicht, dass sie richtig sind.
  • Seit ein paar Tagen nimmt Brute-Force am SSH-Port kräftig zu. Liegt das Grundrauschen sonst so bei 200 bis 300 Versuchen, so bin ich zur Zeit eher bei 5 bis 7000 am Tag.

    Wer hat einen Server und kann Ähnliches berichten? Oder bin ich mit meinem bedeutungslosen Server irgendwie in den Fokus geraten? :/

    Das ist vollkommen normal. Es ist Sommer, viele Kids weltweit haben ggf. Ferien sitzen am PC und spielen rum.

    vielleicht ein neues Kit entdeckt mit dem man da bischen was testen und machen kann uvm.

    Dazu kommt noch die vielen unwissenden, die unueberlegt in panic verfallen und dann rumwirbeln und sinnfrei ihre Netzwerke testen und somit auch das Netz belasten, weil sie das Wissen nicht haben, wie mans wirklich richtig macht.

    Kann man immer beobachten, wenns wieder mal Sicherheitsmeldungen gab.

    Nur mal so, wenn du ne richtige BF hast, dann geht bei dir fast nix mehr, weils im ms tackt befeuert wird.

  • Naja aber du musst ja dann alles komplett umschreiben wenn du erst am schluss alles auf DROP setzt es stimmt ja dann keine Regel mehr.

    Korrigiere mich ruhig, wenn ich falsch liege. Ich kann immernoch etwas dazulernen. :)


    Code
    iptables -P INPUT DROP

    Sagt aus, verwerfe erst einmal alles.

    Code
    ##################### GEOBLOCK
    sudo iptables -A INPUT -p tcp --match multiport --dports 80,443 -j GEOBLOCK

    Sagt, nehme Pakete an, für Port 80 und 443 und leite sie zur weiteren Verarbeitung in die CHAIN Geoblock

    Code
    sudo iptables -A GEOBLOCK -m set --match-set de src -j RETURN

    CHAIN: Geoblock: Alles was Deutsch ist, ab in die Weiterverarbeitung der INPUT Regeln.... Und warten, weil erst die nachfolgenden Dinge abgearbeitet werden müssen.

    Code
    sudo iptables -A GEOBLOCK -p tcp --match multiport --dports 80,443 -m limit --limit 1/m -j LOG --log-prefix "IPT-APACHE---GEO: "

    Protokolliere Nichtzugriffsberechtigen.

    Code
    sudo iptables -A GEOBLOCK -p tcp --match multiport --dports 80,443 -j DROP

    Schmeiß das Paket wech.

    Code
    sudo iptables -A GEOBLOCK -j RETURN

    Kümmere Dich um die weitere Abarbeitung der INPUT Chain.

    Meine INPUT CHAIN läuft immo auf DROP und alle Regeln laufen sauber durch.

    Gute Gedanken, Gute Worte, Gute Taten. (Film: Bohemian Rhapsody)
    Wer nach Art 5 Abs. 1 GG schreit, muss auch Abs. 2 gelesen und verstanden haben. Nur weil mir das Eine gefällt, heißt das nicht, das ich das Andere ignorieren kann.Ich teile meine Erfahrungen und Lösungswege gerne, das heißt aber nicht, dass sie richtig sind.
  • Das ist vollkommen normal. Es ist Sommer, viele Kids weltweit haben ggf. Ferien sitzen am PC und spielen rum.

    vielleicht ein neues Kit entdeckt mit dem man da bischen was testen und machen kann uvm.

    Immerhin hat es dazu geführt, dass ich mich mit dem Thema näher beschäftigt habe. :)

  • Ja wobei an bestehenden List rumdoktoren bloedsinn ist aber eigene erstellen sollte man schon koennen.

    Aber bei meiner FW wird eh jedes Paket gescannt.

    Bei mir macht das alles die FW, damit belaste ich meinen Rechner nicht noch extra.

  • Bei SSH kommt gar nichts mehr an. Vermutlich, weil ich jetzt auch die Portscans rigoros unterbinde (maxretry=0). Bei dem

    Moin,

    hmm...bei einem Server würde ich prinzipiell nur die Ports nach Außen lassen, die ich auch brauche, alles andere ist hinter eine Firewall, das kann im Zweifel auch was einfaches wie iptables sein.

    Und dann erstmal ALLES zu, und bestimmte benötigte Ports öffnet man dann. Fail2ban ist ein nettes zusätzliches Tool, aber kein Allheilmittel.

    LG Olav

    Die Grundlage aller Fundamente ist die Basis. :!::?::)

    Das Linux Universum ist unendlich. groß . Daher ist es manchmal schwer die passende Lösung zu finden. A b e r es gibt immer eine :)


    Bitte beachten Sie dass nicht alle meine Kommentare für Anfänger immer geeignet sind.

  • hmm...bei einem Server würde ich prinzipiell nur die Ports nach Außen lassen, die ich auch brauche, alles andere ist hinter eine Firewall, das kann im Zweifel auch was einfaches wie iptables sein

    Bei mir sind nur die Ports 80, 443 und 4711 (SSH) offen. Also nur das absolut Notwendige.

    Und dann erstmal ALLES zu, und bestimmte benötigte Ports öffnet man dann. Fail2ban ist ein nettes zusätzliches Tool, aber kein Allheilmittel.

    Möchte ja auch so viel wie möglich schon in der Firewall abfangen, damit fail2ban weitestgehend arbeitslos ist. ;)

  • Sojan

    Was hast Du fuer ne FW?

    Ich hab hinter dem Starlinkrouter ne Buechse mit opnsense.

    Steht nicht bei mir zu Hause, ist ein angemieteter V-Server bei Netcup.

    Daheim habe ich einen Mikrotik stehen, aber da ist eh nichts nach außen hin geöffnet. Wäre mir zu riskant.

  • MyLibertad

    Irgendwie hatte alles nichts gebracht, es kamen immer noch already banned im fail2ban.log an. Habe dann erst einmal alles auf Anfang gestellt.

    Dann hatte ich gesehen, dass in deiner Anleitung immer hash:net steht, obwohl von fail2ban einzelne IP-Adressen geliefert werden. Habe es dann in hash:ip geändert und jetzt kommen die Hinweise nicht mehr - zumindest in der letzten Stunde. Ich werde es weiter beobachten.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!