• Blockieren von IP Adressen

    From Manfred Rebentisch@21:1/5 to All on Wed Aug 24 12:40:01 2022
    Hallo,

    mit meiner neuen Software für Websites und Webapplications kann ich IP-Adressen automatisch komplett vom Serverzugriff aussperren, wenn
    bestimmte URLs aufgerufen werden. Das funktioniert wahlweise mit
    iptables oder fail2ban und läuft super.

    Doch was passiert, wenn tausende von Bots Millionen von Bad-Urls
    aufrufen? [Bad-Urls sind nicht Schreibfehler, sondern sowas wie "\x80w\x01\x03\x01" oder "wp-login.php"]

    Hat jemand Lese-Tipps, über die ich in das Thema eintauchen kann?

    Danke!

    Manfred

    --
    Manfred Rebentisch

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ulf =?ISO-8859-1?Q?Br=FCggemann?=@21:1/5 to All on Wed Aug 24 13:30:01 2022
    Hallo Manfred,

    Lese-Tipps habe ich dazu nicht.
    Vielleicht helfen Dir meine Erfahrungen.

    Hast Du dich vielleicht im Internet auf irgend welchen Seiten "bekannt gemacht"?

    Ich hatte das mal und darauf hin ging die Anfragenflut los. Meinem Raspberry Pi hatte das nicht wirklich gestört, Protokolldateien wurden halt rasant größer. Aber mein Router hob dann doch mal die weiße Flagge. Ich hatte damals etwa 3000 Anfragen pro
    Sekunde.

    Letztendlich habe ich meine DNS geändert, um das Problem loszuwerden.

    Nicht schön, aber was will man machen. Das Internet merkt sich alles.

    Ich persönlich halte nicht viel von Filterprogrammen. Jede Anfrage, die kommt, muss da erst mal durch. Wenn es nur ein paar tausend Adressen sind, ist das ja ok. Alles andere ist für mich das Verschwendung von Energie, die man anderweitig einsetzen kö
    nnte. Gesunder Menschenverstand, auch wenn es Arbeit kostet, ist da für mich doch besser.

    Gruß Ulf
    --
    Ulf Brüggemann <ulf_brueggemann@t-online.de>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From debian-mailing-lists@thomas.freit.a@21:1/5 to Manfred Rebentisch on Wed Aug 24 17:40:01 2022
    Hallo Manfred,

    On 24.08.22 12:21, Manfred Rebentisch wrote:
    mit meiner neuen Software für Websites und Webapplications kann ich IP-Adressen automatisch komplett vom Serverzugriff aussperren, wenn
    bestimmte URLs aufgerufen werden. Das funktioniert wahlweise mit
    iptables oder fail2ban und läuft super.

    Doch was passiert, wenn tausende von Bots Millionen von Bad-Urls
    aufrufen? [Bad-Urls sind nicht Schreibfehler, sondern sowas wie "\x80w\x01\x03\x01" oder "wp-login.php"]

    Du kannst mit fail2ban auch Deine Webserverlogs überwachen und entsprechend sperren. Dazu musst Du einen entsprechenden Filter konfigurieren und in den Logs per Regex nach solchen Zugriffen suchen.

    Infos findest Du unter: https://fail2ban.readthedocs.io/en/latest/filters.html#developing-filter-regular-expressions,
    zusätzlich gibt es auch schon vorgefertigte Filter, z.B. bei GitHub: https://github.com/topics/fail2ban-filter, aus denen Du Anregungen
    ziehen kannst (oder einfach direkt verwenden).

    Wie viel Aufwand du darein stecken willst, musst Du Dir aber überlegen, diese Anfragen kommen in der Regel automatisiert aus irgendwelchen Botnetzen und bekommen
    von deinem Webserver einen entsprechenden HTTP Status (404 Not Found) und das war es.
    Die IP kommt nicht so schnell wieder, das Sperren hat also wenig Effekt.

    Hat jemand Lese-Tipps, über die ich in das Thema eintauchen kann?

    Viele dieser Botnetze landen relativ schnell auf DNS Blacklists. Für Apache httpd
    gibt es ein Modul mod_defensible (https://packages.debian.org/bullseye/libapache2-mod-defensible)
    mit dem Du Requests von solchen IPs auch vorab blocken kannst. Die XBL von SPAMHAUS
    (https://www.spamhaus.org/xbl/) ist kostenlos verfügbar und hat bei mir merklich dafür
    gesorgt, dass weniger Bot-Zugriffe beim Webserver aufschlagen.

    Für beides gilt: Potenziell sperrst Du mit solchen Mechanismen auch valide Nutzer
    aus (die über dynamische IP-Ranges kommen), zu lange Blocken ist daher nicht ratsam, kurz blocken bringt nicht übermäßig viel. In dem Zusammenhang ist es praktisch, dass fail2ban bei mehr Verstößen auch die Sperrzeit erhöhen kann, damit kann man zunächst kurz sperren und dann verlängern (siehe z.B.: https://visei.com/2020/05/incremental-banning-with-fail2ban/). Das geht auch über verschiedene Dienste, die Du mit fail2ban überwachst hinweg (und damit erwischt man dann eher sinnvoll zu sperrende IPs).

    --
    hth,
    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Manfred Rebentisch@21:1/5 to All on Thu Aug 25 05:30:02 2022
    Hallo Thomas,
    danke für Deine lange Antwort.

    fail2ban wird bei mir seit langem eingesetzt.

    Am 24.08.22 um 17:13 schrieb debian-mailing-lists@thomas.freit.ag:

    Wie viel Aufwand du darein stecken willst, musst Du Dir aber überlegen, diese
    Anfragen kommen in der Regel automatisiert aus irgendwelchen Botnetzen und bekommen
    von deinem Webserver einen entsprechenden HTTP Status (404 Not Found) und das war es.
    Die IP kommt nicht so schnell wieder, das Sperren hat also wenig Effekt.

    Wahrscheinlich hast Du recht, dass ich fail2ban noch stärker nutzen
    könnte. Auch meine IP-Blocks gelten immer für 10 Minuten und verhindern genauso, wie bei fail2ban massenweise folgende Zugriffe auch über andere Ports. Bei meinem System kann ich zur Laufzeit URLs rein- oder rausnehmen.


    Viele dieser Botnetze landen relativ schnell auf DNS Blacklists. Für Apache httpd
    gibt es ein Modul mod_defensible (https://packages.debian.org/bullseye/libapache2-mod-defensible)
    mit dem Du Requests von solchen IPs auch vorab blocken kannst. Die XBL von SPAMHAUS
    (https://www.spamhaus.org/xbl/) ist kostenlos verfügbar und hat bei mir merklich dafür
    gesorgt, dass weniger Bot-Zugriffe beim Webserver aufschlagen.

    Ach ja, das ist eine gute Idee! Muss mal schauen, ob es sowas auch für
    NGINX gibt...


    Für beides gilt: Potenziell sperrst Du mit solchen Mechanismen auch valide Nutzer
    aus (die über dynamische IP-Ranges kommen), zu lange Blocken ist daher nicht ratsam, kurz blocken bringt nicht übermäßig viel. In dem Zusammenhang ist es
    praktisch, dass fail2ban bei mehr Verstößen auch die Sperrzeit erhöhen kann,
    damit kann man zunächst kurz sperren und dann verlängern (siehe z.B.: https://visei.com/2020/05/incremental-banning-with-fail2ban/). Das geht auch über verschiedene Dienste, die Du mit fail2ban überwachst hinweg (und damit erwischt man dann eher sinnvoll zu sperrende IPs).


    Valide Nutzer werden mit meiner Methode nicht ausgesperrt. Sämtliche
    Zugriffe auf PHP-Urls sind Angriffe, da bei mir kein PHP installiert ist.



    --
    Manfred Rebentisch

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Manfred Rebentisch@21:1/5 to All on Thu Aug 25 05:40:01 2022
    Hallo Thomas,

    Nachtrag:

    Am 24.08.22 um 17:13 schrieb debian-mailing-lists@thomas.freit.ag:

    Viele dieser Botnetze landen relativ schnell auf DNS Blacklists. Für Apache httpd
    gibt es ein Modul mod_defensible (https://packages.debian.org/bullseye/libapache2-mod-defensible)
    mit dem Du Requests von solchen IPs auch vorab blocken kannst. Die XBL von SPAMHAUS
    (https://www.spamhaus.org/xbl/) ist kostenlos verfügbar und hat bei mir merklich dafür
    gesorgt, dass weniger Bot-Zugriffe beim Webserver aufschlagen.


    Use of Spamhaus's free public DNSBL service is restricted to low-volume non-commercial users only. To make sure you qualify for free use, please
    see the terms...

    Bin nicht sicher, ob ich dann einfach das Apache-Modul einsetzen kann,
    wenn da 20.000 Anfragen pro Tag gemacht werden...

    Grüße

    --
    Manfred Rebentisch

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Haber@21:1/5 to debianlist@comparat.de on Thu Aug 25 10:40:01 2022
    On Thu, 25 Aug 2022 05:17:43 +0200, Manfred Rebentisch
    <debianlist@comparat.de> wrote:
    Hallo Thomas,
    danke für Deine lange Antwort.

    fail2ban wird bei mir seit langem eingesetzt.

    Am 24.08.22 um 17:13 schrieb debian-mailing-lists@thomas.freit.ag:

    Wie viel Aufwand du darein stecken willst, musst Du Dir aber überlegen, diese
    Anfragen kommen in der Regel automatisiert aus irgendwelchen Botnetzen und bekommen
    von deinem Webserver einen entsprechenden HTTP Status (404 Not Found) und das war es.
    Die IP kommt nicht so schnell wieder, das Sperren hat also wenig Effekt.

    Wahrscheinlich hast Du recht, dass ich fail2ban noch stärker nutzen
    könnte. Auch meine IP-Blocks gelten immer für 10 Minuten und verhindern >genauso, wie bei fail2ban massenweise folgende Zugriffe auch über andere >Ports. Bei meinem System kann ich zur Laufzeit URLs rein- oder rausnehmen.

    Gegen welche Bedrohung möchtest Du Dich mit diesem Aufwand schützen?

    Grüße
    Marc
    --
    -------------------------------------- !! No courtesy copies, please !! ----- Marc Haber | " Questions are the | Mailadresse im Header Mannheim, Germany | Beginning of Wisdom " |
    Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alexander Reichle-Schmehl@21:1/5 to All on Thu Aug 25 11:50:01 2022
    Hi!

    Am 2022-08-25 05:17, schrieb Manfred Rebentisch:

    Valide Nutzer werden mit meiner Methode nicht ausgesperrt. Sämtliche Zugriffe auf PHP-Urls sind Angriffe, da bei mir kein PHP installiert
    ist.

    Und was stört dich dann daran? Wenn die Angriffe ohnehin ins leere
    laufen, stören sie ja eigentlich nicht. Ich kann mir kaum vorstellen,
    dass es einen signifikanten Performance Unterschied macht,.... Selbst
    bei 20.000 Angriffsversuche pro Tag, hast mehr als fünf Sekunden
    zwischen jedem einzelnen. Das sollte für einen Webserver eigentlich
    genug Zeit sein, einen 404 zu loggen und weiter zu machen. Und sollten
    die Log-Einträge selbst stören, wäre es vermutlich weniger Aufwand, das loggen von 404en abzuschalten.


    Mit besten Grüßen,
    Alexander

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From debian-mailing-lists@thomas.freit.a@21:1/5 to Manfred Rebentisch on Thu Aug 25 22:50:02 2022
    Hallo Manfred,

    On 25.08.22 05:17, Manfred Rebentisch wrote:
    Wie viel Aufwand du darein stecken willst, musst Du Dir aber überlegen, diese
    Anfragen kommen in der Regel automatisiert aus irgendwelchen Botnetzen und bekommen
    von deinem Webserver einen entsprechenden HTTP Status (404 Not Found) und das war es.
    Die IP kommt nicht so schnell wieder, das Sperren hat also wenig Effekt.

    Wahrscheinlich hast Du recht, dass ich fail2ban noch stärker nutzen
    könnte. Auch meine IP-Blocks gelten immer für 10 Minuten und verhindern genauso, wie bei fail2ban massenweise folgende Zugriffe auch über andere Ports. Bei meinem System kann ich zur Laufzeit URLs rein- oder rausnehmen.

    Ich habe bei unterschiedlichen Diensten da sehr gemischte Erfahrungen gemacht. Mein Mailserver (SMTP) ist seit Jahren Ziel von Password-Probing, seit ca. 2 Jahren
    kommen in der Regel innerhalb weniger Tage nur sehr wenige Versuche von einer IP,
    eher ein Versuch pro IP. Da bringt mir ein Blocken mit Fail2Ban quasi nichts. IMAPS
    wird nahezu nicht bei Password-Probing verwendet.

    SSH wird immer wieder versucht, hier auch häufiger von wiederkehrenden IPs (da bin ich allerdings sehr restriktiv mit erlaubten Ranges und sehe eigentlich nur Anfragen die vorab im tcpwrapper hängen bleiben.

    Web (ich mache nur HTTPS) wird relativ viel gescannt, vorallem auf aktuelle (und
    oft auch erschreckend alte) Lücken in gängiger Blog- oder Shopsoftware, hier auch
    einmal die Latte an Exploits/Lücken von einer IP. Da bringt Blocken beim ersten
    Zugriff aber auch eher nur ein wenig Loghygiene (also weniger 404er) in den Logs.
    Ich nutze mod_defensive auch tendenziell eher dazu um weniger Müll in den Logs zu
    haben und interessante Dinge eher zu sehen.

    Für beides gilt: Potenziell sperrst Du mit solchen Mechanismen auch valide Nutzer
    aus (die über dynamische IP-Ranges kommen), zu lange Blocken ist daher nicht
    ratsam, kurz blocken bringt nicht übermäßig viel. In dem Zusammenhang ist es
    praktisch, dass fail2ban bei mehr Verstößen auch die Sperrzeit erhöhen kann,
    damit kann man zunächst kurz sperren und dann verlängern (siehe z.B.:
    https://visei.com/2020/05/incremental-banning-with-fail2ban/). Das geht auch >> über verschiedene Dienste, die Du mit fail2ban überwachst hinweg (und damit
    erwischt man dann eher sinnvoll zu sperrende IPs).

    Valide Nutzer werden mit meiner Methode nicht ausgesperrt. Sämtliche Zugriffe auf PHP-Urls sind Angriffe, da bei mir kein PHP installiert ist.

    Wie schon andere geschrieben haben: Du betreibst potenziell Aufwand, der sich nicht lohnt, der erste Request wird sowieso durchschlagen und wie viel du potenziell
    blockst ist fraglich (ich schätze, dass bei mir maximal 10% von Folgerequests geblockt werden, weil in den letzten Jahren eben nicht mehr viel von einer IP aus
    passiert.

    Aber Spaß am Gerät ist immer ein valider Grund sich mit so etwas auseinanderzusetzen. ;-)


    --
    hth,
    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From debian-mailing-lists@thomas.freit.a@21:1/5 to Manfred Rebentisch on Thu Aug 25 22:30:01 2022
    Hallo Manfred,

    On 25.08.22 05:27, Manfred Rebentisch wrote:

    Viele dieser Botnetze landen relativ schnell auf DNS Blacklists. Für Apache httpd
    gibt es ein Modul mod_defensible (https://packages.debian.org/bullseye/libapache2-mod-defensible)
    mit dem Du Requests von solchen IPs auch vorab blocken kannst. Die XBL von SPAMHAUS
    (https://www.spamhaus.org/xbl/) ist kostenlos verfügbar und hat bei mir merklich dafür
    gesorgt, dass weniger Bot-Zugriffe beim Webserver aufschlagen.

    Use of Spamhaus's free public DNSBL service is restricted to low-volume non-commercial users only. To make sure you qualify for free use, please
    see the terms...

    Bin nicht sicher, ob ich dann einfach das Apache-Modul einsetzen kann,
    wenn da 20.000 Anfragen pro Tag gemacht werden...

    Ich habe (über verschiedene Dienste) ca. 50.000 Anfragen/Tag, nutze dafür einen
    eigenen caching Resolver (bin für SPAMHAUS also mit meiner Resolver-IP sichtbar) ohne
    Probleme. Ein konkretes Volumen geben die nicht an, wenn Du aber keine validen Antworten mehr bekommst (kannst Du einfach testen, indem du den Google-DNS oder einen anderen großen Anbieter verwendest, weißt Du, dass es hängt.

    Viele Grüße,
    Thomas

    --
    hth,
    Thomas

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Manfred Rebentisch@21:1/5 to All on Sat Sep 24 06:40:01 2022
    Hallo in die Runde, hallo Thomas,

    sorry, ich hatte ein paar Wochen keine Zeit zum Lesen.

    Vielen Dank für eure Antworten!

    Kurz erzählt, warum ich diese IP-Blockade programmiert habe: ich wollte
    gleich den ersten Request blockieren. Ich hatte mich gerärgert über
    kaputte Bots, die meinen Server mit falschen und uralten Url-Abfragen
    fluteten. fail2ban reagierte mir zu spät.
    Die Logs zeigten, dass von einer IP oft hunderte von Varianten
    aufgerufen wurde, mit denen irgendeine Lücke gefunden werden kann. Nach
    dem Webzugriff kamen ssh Versuche.

    Naja, ich denke über eure Antworten nach.

    Einen schönen Tag!
    Manfred

    --
    Manfred Rebentisch

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)