Folgende Lösung funktioniert unabhängig auf Debian und Ubuntu, parallel zu KeyHelp.
Alles als root (sudo) bzw. als keyhelpadmin anlegen.
Die gesperrten IPs lassen sich unter Sicherheit >> Fail2Ban-Verwaltung einsehen und bearbeiten.
####################################################
Wie funktioniert das Skript?
Das Skript nutzt das Github Repository von borestad und dort die Abuse-IP-Liste "abuseipdb-s100-3d.ipv4".
https://raw.githubusercontent.com/bores ... 00-3d.ipv4
Diese erscheint mir ein guter Kompromiss aus Dateigröße und Aktualität.
Die IP-Blockliste wird eingelesen und die IP Adressen werden für 4 Wochen gesperrt.
Somit kommen jeden Tag neue IP Adressen hinzu und nach 4 Wochen werden diese automatisch wieder freigegeben.
####################################################
Schritt für Schritt Anleitung
=================
1. Neue Datei /etc/fail2ban/filter.d/iplistblock.conf anlegen
Code: Select all
[Definition]
failregex =
ignoreregex =
2. Neue Datei /etc/fail2ban/jail.d/iplistblock.conf anlegen
Code: Select all
[iplistblock]
banaction = %(banaction_allports)s
bantime = 4w
enabled = true
3. fail2ban stoppen und wieder starten
fail2ban-client stop
fail2ban-client start
4. neues Verzeichnis /root/banip anlegen und dorthin wechseln
mkdir /root/banip
cd /root/banip/
5. In dem neuen Verzeichnis ein neues Shellskript /root/banip/loadlist.sh anlegen
Code: Select all
#! /usr/bin/bash
echo `date "+%Y-%m-%d %H:%M:%S"`
echo "Lade IP Blocklist"
wget https://raw.githubusercontent.com/borestad/blocklist-abuseipdb/refs/heads/main/abuseipdb-s100-3d.ipv4 -O /root/banip/ipblocklist.txt
echo `date "+%Y-%m-%d %H:%M:%S"`
echo "IP Blocklist von Github geladen"
grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' /root/banip/ipblocklist.txt | while read IP; do fail2ban-client set iplistblock banip $IP; done
echo `date "+%Y-%m-%d %H:%M:%S"`
echo "IP Blocklist verarbeitet"
rm /root/banip/ipblocklist.txt
echo `date "+%Y-%m-%d %H:%M:%S"`
echo "fertig"
6. Shellskript ausführbar machen
chmod +x /root/banip/loadlist.sh
7. Root Cronjob in KeyHelp anlegen und einmal täglich laufen lassen.
8. FERTIG!
################################################################################################
Ob alles funktioniert seht ihr in KeyHelp unter der Fail2Ban Verwaltung