Länderzuordnung für fail2ban-Sperrungen (IP-Ranges)

Mutti

Member
Hallo zusammen, :)

ich werte gerade zum Jahresabschluss meine fail2ban-Logfiles vom gesamten Jahr 2025 aus. Mein Ziel ist es, die aggressivsten Scanner direkt als IP-Ranges zu blocken.

Zur besseren Analyse wäre eine Zuordnung der IP-Ranges zu den jeweiligen Ländern hilfreich.

Bei ipinfo.io kann ich Ranges jedoch nur einzeln manuell abfragen, und die API von abuseipdg kann ich nur Einzel-IPs abfragen.

Welche Lösungen gibt es, um größere Mengen von IP-Daten oder ganze Ranges effizient mit Länderinformationen anzureichern?

Danke im Voraus! :)
 
ich verstehe deinen Ansatz mit Fail2ban und Ländersperren – das klingt logisch, um Botnets aus bestimmten Regionen fernzuhalten. Aber IP-Geolokalisierung ist leider heute nicht mehr zuverlässig genug dafür. Hier eine einfache Erklärung, warum das problematisch ist:

IP-Orte sind ungenau und wandern​

IP-Adressen werden von Providern ständig neu verteilt, verkauft oder umgeroutet. Geo-Datenbanken (wie MaxMind) aktualisieren das nur alle paar Tage oder Wochen, sodass eine IP, die gestern "China" war, morgen einem deutschen Hoster gehört. VPNs, Proxies und große Cloud-Dienste (z.B. AWS, Google) haben IPs weltweit verteilt – ein Nutzer aus Deutschland könnte also durchaus z.B. über eine "russische" IP kommen.

Risiko: Gute User aussperren​

Wenn du ganze Ranges (/16 oder Länder) blockst:

  • Sperrst du nicht nur Angreifer, sondern potenziell Tausende normale User, Kunden oder sogar deine eigenen Admins/Partner, die über dynamische IPs oder VPNs kommen.
  • Dynamische IPs ändern sich bei jedem Login, also blockst du heute Bösewichte und morgen Unschuldige aus demselben Netz.
Stell dir vor, es wäre wie eine alte Telefonbuch-Adresse: Oft veraltet und falsch zugeordnet.

Bessere Alternativen​

  • Fail2ban klassisch nutzen: Block nur einzelne IPs bei Fehlversuchen, und recidive-Jails für Wiederholer (lange Bans).
  • Feinere Regeln: Statt ganzer Länder kleine Subnets oder nur bei hoher Attack-Dichte.
  • Zusätzlich: Rate-Limiting (z.B. nginx) oder Cloudflare/WAF für echte Geo-Filter ohne harte Bans.
Das schützt deinen Server effektiver, ohne legitime Besucher zu vergraulen.
 
Kommt meines Erachtens auch ein wenig darauf an, um welchen Service es sich handelt. ssh, smtp, imap -> fail2ban für einzelne IP's; notfalls Recidive Jail aktiven. HTTP Traffic -> externe Dienstleister wie beispielsweise Cloudflare (Rate Limiting, Challenging).
 
Vielen Dank. :)

Alles HTTP. Rate Limiting habe ich bereits über nftables mit Logging. Alle Bans durch fail2ban mit Abuse Score über >50 gehen schonmal für 90 Tage automatisch ins Set.

Jetzt war noch mein Gedanke nachdem ich ich die Bans von 12 Monaten mit den Zugriffszahlen ausgewertet habe einige davon dauerhaft in die Blacklist zu setzen.

Hier die Spitzenreiter:

Code:
Sperrungen    Range
2363    57.141.x.x/24
1415    57.141.x.x/24
896    104.210.x.x/24
803    185.238.x.x/24
618    185.223.x.x/24
500    85.203.x.x/24

Ich denke mal das ich aus den Bereichen keine normalen Besucher erwarte.
 
Also ausschließlich HTTP(S)?

Edit: Und die logische Folgefrage wäre dann, welchen Traffic möchtest du aufgrund welchem Verhalten aussperren?
 
Last edited:
Ja, nur 80/443. SSH ist nach Aussen nicht sichtbar. :)
Es geht um wiederkehrende Zugriffe auf WordPress-Endpunkte, die zwar 403 liefern, aber klarer Scan-Traffic sind.
Gedanke war, auffällige IP-Ranges zu blocken.
 
Hält doch aber im Grunde nur die Lofiles etwas sauberer oder? Wenn deine Systeme sonst ausreichend gesichert sind wäre mir das Grundrauschen ziemlich egal. Oder ist es so massiv das es dir den Server lahm legt?
 
:) Ja freilich, den Effekt finde ich nebenbei auch sehr positiv. Ich hab im täglichen Report unter den Top 10 nur Google und Zugriffe aus Deutschland.
 
Back
Top