[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: openbsd@sikurezza.org
Soggetto: help con script
Mittente: Andrea Riela
Data: 7 Feb 2004 09:15:55 -0000
ciao ragazzi,

devo realizzare uno script che mi prenda degli ip da un file (in tal caso
open-smtp), e me li mandi via email dopo aver fatto un whois. sembra facile,
ma in effetti non è così semplice: infatti gli ip vengono cancellati ogni 15
minuti, quindi devo creare un file d'appoggio; ma io voglio essere informato
solo sui nuovi IP aggiunti rispetto all'ultimo invio dell'email, percui in
realtà il processo deve essere questo:

- controllo gli IP in open-smtp
- verifico se ce ne sono di nuovi rispetto a quelli raccolti in precedenza,
e se sì
- aggiungo i nuovi alla lista d'appoggio, faccio un whois solo di questi e
li spedisco ad una casella di posta.
Altrimenti, non voglio ricevere emails vuote.

avevo buttato giù questo script, ma purtroppo funziona solo la prima volta,
alla creazione del file d'appoggio (che ho chiamato iptrak). dopodichè, mi
invia sempre un'email vuota, e non aggiorna la lista in iptrak. Da un amico
con Debian funziona, percui ho pensato che sia qualcosa che mi sfugge sul
mio sistema.

Potete aiutarmi?
grazie
Andrea

----------------------

#!/bin/bash

# Indirizzo a cui spedire il report
MAILTO="pinco@xxxxxxxx"

# Soggetto della mail contenente il report
SUBJECT="Check Ip Report"

# Path del file da cui verranno prelevati gli ip
SOURCE="/home/vpopmail/etc/open-smtp"

# Path del file in cui verranno memorizzati gli ip gia' controllati
IPTRAK="/home/vpopmail/etc/iptrak"

# Path del log che verra' riscritto ad ogni lancio dello script e inviato v
LOG="/var/log/checkip.log"

if [ -f $IPTRAK ];then
touch /home/vpopmail/etc/iptrak
fi

if [ -f $LOG ];then
cat /dev/null > $LOG
else
touch $LOG
fi
echo -e "\n`date` \n\n************** CONTENUTO  ***************** \n" >> $L
line=$(cat $SOURCE 2> /dev/null | wc -l)
for ((i=1;i <= line;i++)); do
        ISIP=""
        IP=""
        IP=$(cat $SOURCE|cut -f1 -d$':'|cut -f$i -d$'\n')
        ISIP=$(cat "$IPTRAK"|egrep "$IP"|sort|uniq)
        if [ "$ISIP" = "" ]; then
                echo "Whois per ip $IP" >> $LOG
                whois $IP >> $LOG
                echo "$IP" >> $IPTRAK
        fi
done
mail -s "$SUBJECT" $MAILTO < $LOG

---------


________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List




[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005