-> Gesamt in Liste: xxx
-> Neu eingetragen: xxx
-> Übersprungen (bereits vorhanden): xxxx
-> Total im Kernel: xxxx
falls gewünscht bitte den Inhalt der loadlist.sh austauschen mit folgenden Inhalt:
Code: Select all
#!/usr/bin/bash
URL="https://raw.githubusercontent.com/borestad/blocklist-abuseipdb/refs/heads/main/abuseipdb-s100-3d.ipv4"
LOCAL_FILE="/root/banip/ipblocklist.txt"
CLEAN_FILE="/root/banip/clean_ips.txt"
SET_NAME="f2b-iplistblock"
echo "$(date "+%Y-%m-%d %H:%M:%S") - Starte Import der AbuseIPDB-Liste..."
# 1. Liste herunterladen
/usr/bin/wget -q "$URL" -O "$LOCAL_FILE"
if [ -f "$LOCAL_FILE" ] && [ -s "$LOCAL_FILE" ]; then
# 2. IPs bereinigen
/usr/bin/grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' "$LOCAL_FILE" > "$CLEAN_FILE"
# 3. IPSet im Kernel befüllen
if /usr/sbin/ipset list "$SET_NAME" >/dev/null 2>&1; then
COUNT_BEFORE=$(/usr/sbin/ipset list "$SET_NAME" | /usr/bin/grep -c '^[0-9]')
/usr/bin/sed -i "s/^/add $SET_NAME /" "$CLEAN_FILE"
/usr/sbin/ipset restore -! < "$CLEAN_FILE"
COUNT_AFTER=$(/usr/sbin/ipset list "$SET_NAME" | /usr/bin/grep -c '^[0-9]')
TOTAL_IN_FILE=$(/usr/bin/wc -l < "$CLEAN_FILE")
ADDED_NOW=$((COUNT_AFTER - COUNT_BEFORE))
[ "$ADDED_NOW" -lt 0 ] && ADDED_NOW=0
SKIPPED=$((TOTAL_IN_FILE - ADDED_NOW))
[ "$SKIPPED" -lt 0 ] && SKIPPED=0
# --- NEU: Automatisch prüfen, ob iptables-Regel greift, sonst anlegen ---
if ! /usr/sbin/iptables -C INPUT -m set --match-set "$SET_NAME" src -j DROP 2>/dev/null; then
/usr/sbin/iptables -I INPUT -m set --match-set "$SET_NAME" src -j DROP
echo "$(date "+%Y-%m-%d %H:%M:%S") - iptables-Regel wurde automatisch hinzugefügt."
fi
echo "$(date "+%Y-%m-%d %H:%M:%S") - Kernel-IPSet erfolgreich aktualisiert."
echo " -> Gesamt in Liste: $TOTAL_IN_FILE"
echo " -> Neu eingetragen: $ADDED_NOW"
echo " -> Übersprungen (bereits vorhanden): $SKIPPED"
echo " -> Total im Kernel: $COUNT_AFTER"
else
echo "$(date "+%Y-%m-%d %H:%M:%S") - FEHLER: IPSet '$SET_NAME' existiert nicht."
fi
else
echo "$(date "+%Y-%m-%d %H:%M:%S") - FEHLER: Konnte die Blocklist nicht herunterladen."
fi
# 4. Aufräumen
/usr/bin/rm -f "$LOCAL_FILE" "$CLEAN_FILE"