[gl-como] R: R: Controllo i log
Daniele Figini
danielefigini@alice.it
Dom 24 Ago 2014 23:28:48 CEST
Facci la versione in prosa.
Daniele
Da: gl-como [mailto:gl-como-bounces+danielefigini=alice.it@lists.linux.it] Per conto di Davide De Prisco
Inviato: domenica 24 agosto 2014 19.40
A: Gruppo Linux Como
Oggetto: Re: [gl-como] R: Controllo i log
Domani scriverò un bel commento per tutto
Il 23/ago/2014 11:30 "Daniele Figini" <danielefigini@alice.it> ha scritto:
Ciao.
Siccome sono 'gnurant, con cosa è scritto?
Daniele
-----Messaggio originale-----
Da: gl-como [mailto:gl-como-bounces+danielefigini <mailto:gl-como-bounces%2Bdanielefigini> =alice.it@lists.linux.it]
Per conto di Davide De Prisco
Inviato: venerdì 22 agosto 2014 16.22
A: Gruppo Linux Como
Oggetto: Re: [gl-como] Controllo i log
Piccoli miglioramenti, poco tempo e tanto legno da piallare....
Manca la parte per la gestione dello sblocco degli ip_monelli dopo n giorni,
o meglio c'e' ma e' in fase di test.
E manca pure l'inserimento all'avvio di una regola di iptables per ogni ip
di quelli bloccati ma e' una cosa semplice quella.
Altre versioni da lunedi', ora vado a piallare.
#!/bin/bash
#Script per il controllo degli accessi ad un server web mando_la_mail=0;
connessioni_al_giorno=150; file_di_log="/var/log/apache2/acces.log";
file_ip_bloccati="./IP_BLOCCATI";
file_ip_conosciuti="./IP_CONOSCIUTI";
file_temp="./temp";
giorni_di_blocco=7;
ip_conosciuti="";
oggi=`date +%y%m%d`;
#Ripulisco gli IP dopo il tempo prestabilito riga=1; while read
riga_ip_bloccato do { ip_bloccato=`echo $riga_ip_bloccato | awk ' { print
$1}'`; giorno_di_blocco=`echo $riga_ip_bloccato | awk ' { print $2}'`; if[
$oggi -gt $(($giorno_di_blocco+$giorni_di_blocco)) ] then sed -e 'd$riga'
$file_ip_bloccati riga=$(($riga+1)); } done < $file_ip_bloccati
while read ip_conosciuto
do
{
ip_conosciuti=$ip_conosciuti"|"$ip_conosciuto;
}
done < $file_ip_conosciuti
echo "Controllo dei log di apache" > ./testo_mail echo "IP bloccatti oggi" >
./elenco_ip_giornaliero grep -q -v [\'$ip_conosciuti\'] $file_di_log | awk '
{ print $1}' | sort | uniq -c | sort -n --key=1,8 > $file_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 non inserito in "
$file_ip_conosciuti
>> ./testo_mail
else
if grep -q $ip /etc/hosts.deny
then
echo $ip " e' gia' inserito in /etc/hosts.deny" >> ./testo_mail else
oggi=`date +%j`; 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; echo $ip >>
$file_ip_bloccati" "$oggi; fi fi fi } done < $file_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
--
Mailing list info: http://lists.linux.it/listinfo/gl-como
---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com
--
Mailing list info: http://lists.linux.it/listinfo/gl-como
---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/gl-como/attachments/20140824/89a81122/attachment.html>
Maggiori informazioni sulla lista
gl-como