[gl-como] Controllo i log

Davide De Prisco deprisco.davide@gmail.com
Ven 22 Ago 2014 09:29:44 CEST


Ieri si parlava di controlli dei log di Apache e di come bannare gli ip monelli.
Ecco il mio primitivo script scritto in poco piu' di un'oretta....

Non picchiatemi, e' un prototipo senza controlli ne niente. Ora vad a
costruire un tavolo.

#!/bin/bash
mando_la_mail=0;
echo "Controllo dei log di apache" > ./testo_mail
echo "IP bloccatti oggi" > ./elenco_ip_giornaliero
cat /var/log/apache2/access.log  | grep -v $ip_conosciuti | awk ' {
print $1}' | sort | uniq -c | sort -n --key=1,8  > ./temp
while read linea
do
{
volte=`echo $linea | awk ' { print $1}'`;
ip=`echo $linea | awk ' { print $2}'` ;
if [ $volte -gt 150 ]
then
mando_la_mail=1;
if  grep -q $ip /etc/hosts.allow
then
echo $ip " deve essere un tuo IP" >> ./testo_mail
else
if  grep -q $ip /etc/hosts.deny
then
echo $ip " e' gia' inserito in /etc/hosts.deny" >> ./testo_mail
else
echo $ip " Inserisco un nuovo ip da bloccare per " $volte "
connessioni">> ./testo_mail
echo " ALL: "$ip >> /etc/hosts.deny ;
iptables -I INPUT -s $ip -p tcp --dport 80 -j DROP
iptables -I INPUT -s $ip -p udp --dport 80 -j DROP
echo $ip >> ./elenco_ip_giornaliero;
fi
fi
fi
}
done < ./temp
if [ $mando_la_mail -gt 0 ]
then
numerorighe=`wc --lines ./elenco_ip_giornaliero | egrep -o '[0-9]*'`
if [ $numerorighe -gt 1 ]
then
mutt -s "Connessioni giornaliere"  -- vosta_mail@dominio.com  < ./testo_mail
fi
fi


-- 
Davide


Maggiori informazioni sulla lista gl-como