Blocklist.de: Script für automatische bans

Achtung! Dieser Artikel ist älter als ein Jahr. Der Inhalt ist möglicherweise nicht mehr aktuell!
Dieses Script sollte nicht verwendet werden. Es ist unproduktiv, erzeugt unnötig hohe Last und blockiert viel zu Viel.

Bei starkem Befall von Spam sollten bei einem Bann der ganze Adressbereich gebannt werden. Nach einiger Zeit hat man das Problem im Griff.

Ich habe eben folgendes Script geschrieben um alle zwei Stunden die aktuellen Listen von www.blockliste.de zu laden und in iptables einzufügen.

#!/bin/bash

##
## Configuration
##

# Files which should be downloaded
TO_DOWNLOAD[0]="http://lists.blocklist.de/lists/ftp.txt"
TO_DOWNLOAD[1]="http://lists.blocklist.de/lists/bots.txt"
TO_DOWNLOAD[2]="http://lists.blocklist.de/lists/ssh.txt"
TO_DOWNLOAD[3]="http://lists.blocklist.de/lists/bruteforcelogin.txt"
#TO_DOWNLOAD[4]="http://lists.blocklist.de/lists/apache.txt"

# Other settings; Edit if necesarry
CHAINNAME="blocklist-de"
ACTION="REJECT" # Can be DROP

########## Do not edit anything below this line ##########

# Clear temp file
cat /dev/null > /tmp/blocklist-ips-unfiltered.txt

# Download every file
for currentFile in "${TO_DOWNLOAD[@]}"
do
        echo "Downloading $currentFile"
        wget -qO - $currentFile >> /tmp/blocklist-ips-unfiltered.txt
done

# Sort and filter
echo "`cat /tmp/blocklist-ips-unfiltered.txt | wc -l` IPs downloaded"

cat /tmp/blocklist-ips-unfiltered.txt | sort | uniq > /tmp/blocklist-ips-filtered.txt

echo "`cat /tmp/blocklist-ips-filtered.txt | wc -l` IPs after sort and uniqued"

# Delete and create chain
iptables --flush $CHAINNAME > /dev/null 2>&1
iptables --delete-chain $CHAINNAME >/dev/null 2>&1
iptables --new-chain $CHAINNAME >/dev/null 2>&1

# Insert into chains
while read currentIP
do
        iptables -A $CHAINNAME -s $currentIP -j $ACTION
done < /tmp/blocklist-ips-filtered.txt

# Cleanup
rm -f /tmp/blocklist-ips-unfiltered.txt
rm -f /tmp/blocklist-ips-filtered.txt

Folgende Zeile habe ich in die Crontab geschrieben:

10 */2 * * * root /sbin/blockliste-update.sh > /dev/null 2>&1

Hinweis: Der Scriptpfad sollte natürlich angepasst werden.

 


Du hast einen Kommentar, einen Wunsch oder eine Verbeserung? Schreib mir doch eine E-Mail! Die Infos dazu stehen hier.

🖇️ = Link zu anderer Webseite
🔐 = Webseite nutzt HTTPS (verschlüsselter Transportweg)
Zurück