Aus gegebenem Anlass habe ich mal ein kleines Script gebaut, mit welchem man aus den Log-Files IP-Adressen "rausfummelt" und diese dann per Block in die iptables reinschreibt ...
Code:
#!/bin/bash
#Settings und Einstellungen
log_file="/var/log/nginx/access.log"
such_str="w00tw00t"
count=0
# in {print $1} steht die Position der IP-Adresse :)
for ip in `cat $log_file | grep $such_str | awk '{print $1}' | sed 's/]//g' | sort -ug` ; do
count=$[$count+1]
#Prüfen, ob die IP schon enthalten ist
if [ "iptables -L INPUT -v -n | grep '$ip'" == "" ]; then
iptables -I INPUT -s $ip -j DROP
iptables -I OUTPUT -s $ip -j DROP
echo $ip hinzugefügt
else
echo $ip gefunden
fi
done
#Abschliessende Statusmitteilung ausgeben
if [ "$count" -gt 0 ]; then
echo $count Einträge bearbeitet
else
echo keine Einträge
fi
Oben im config-Teil die entsprechende LOG angeben und die $-Variable in der FOR-Schleife anpassen.
Den entsprechenden Suchstring nicht vergessen....
Dann sollte das auch sauber laufen ....