DIE ROT MARKIERTEN TEXTSTELLEN ANPASSEN:
jail.local:
IN DER LETZTEN ZEILE MUSS DER PFAD ZUR LOGDATEI ANGEPASST WERDEN. (Wie in der jail.local definiert)[SERVICE-blocklist]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/empty.log
maxretry = 1
bantime = 86400
action = %(action_)s
blocklist.sh:
Aufgerufen werden muss es mit folgenden Argumenten:#!/bin/sh
iplist=`mktemp`
service=$1
blocklist=$2
time=$3
url="http://api.blocklist.de/getlast.php?tim ... e=$service"
wget $url -O $iplist
while read ip
do
fail2ban-client set $blocklist banip $ip
done < $iplist
rm $iplist
touch /var/log/empty.log
Code: Alles auswählen
./blocklist.sh SERVICE BLOCKLIST TIME
BLOCKLIST: Jail-Name von der entsprechenden Blockliste (Aufpassen, was man hier angibt!)
TIME: Unix-Zeit, hh:ii, hh.ii, Differenz in Sekunden
Beispiele:
Code: Alles auswählen
./blocklist.sh ssh ssh-blocklist 3600
./blocklist.sh apache apache-blocklist `date "+%H:%M" --date="15 minutes ago"` (müsste gehen :D)
Code: Alles auswählen
[...]
# m h dom mon dow user command
0 * * * * root /path/blocklist.sh ssh ssh-blocklist 3600 > /dev/null 2>&1
#
Die Liste mit den IPs wird in einer temporären Datei gespeichert, die anschließen nach der Ausführung des Cronjobs gelöscht wird.
Viel Spaß damit
