Home > Appunti > List RBL Blocked

List RBL Blocked

Inserito da amedeo on December 18, 2011

Come creare un semplice script per elencare gli indirizzi IP di server di posta  che hanno tentato di inviare messaggi al nostro server SMTP Postfix e sono stati bloccati dai filtri RBL.

Se per semplice curiosità o per altri motivi vogliamo ottenere un elenco degli indirizzi IP di server SMTP che sono stati bloccati dalle RBL nel tentativo di consegnare messaggi al nosto server Postfix, possiamo utilizzare un semplice script che con awk filtra i contenuti dei file di LOG fornendoci un elenco in formato semplice e leggibile.

Lo script è piuttosto semplice e si limita ad estrarre le informazioni dal file di log e farle filtrare da awk per ottenere l'elenco che ci interessa. Create il file list_rbl_blocked utilizzando il vostro editor preferito. Non essendo un guru dei sistemi Unix-like non amo il sofisticato Emacs e nemmeno il potente quanto macchinoso vi e solitamente utilizzo joe o nano. Ovviamente se utilizzate un'interfaccia grafica (cosa peraltro insolita su un server GNU/Linux) potete affidarvi ad un altro editor di vostro piacimento.

joe list_rbl_blocked

 

Il contenuto sarà piuttosto scarno:

  1. #/bin/bash
  2. echo "# cbl.abuseat.org"
  3. grep "cbl.abuseat.org\/lookup\.cgi?ip=" /var/log/mail.info | awk -f list_rbl_blocked.awk |sort -u
  4. echo "# zen.spamhaus.org"
  5. grep "www.spamhaus.org\/query\/bl?ip=" /var/log/mail.info | awk -f list_rbl_blocked.awk |sort -u

 

dallo script potete già notare che awk viene richiamato passandogli un file contenente le regole  per filtrare l'output estratto tramite grep. Awk viene richiamato due volte perché  utilizzo più filtri RBL. Non ci resta quindi che creare il file:

joe list_rbl_blocked.awk
  1. /reject:/ {
  2. sub(/\[/,"",$17)
  3. sub(/\]/,"",$17)
  4. conta[$17]++
  5. rbl[$17] = $20
  6. }
  7. END {
  8. for (i in conta) {
  9. if (conta[i] > 2) {
  10. print "smtpd:\t",i,"\t# count: ",conta[i],"\t",rbl[i]
  11. } else {
  12. print "#smtpd:\t",i,"\t# count: ",conta[i],"\t",rbl[i]
  13. }
  14. }
  15. }

 

Il funzionamento è abbastanza semplice:

  • per ogni riga contenente la segnalazione di reject, incrementa il contatore per l'indirizzo IP del server bloccato.
  • al termine visualizza l'elenco di indirizzi interessati con il relativo contatore. Il formato è quello utilizzato per il file hosts.deny e per gli indirizzi con un massimo di due occorrenze, la riga è lasciata commentata.

ora dobbiamo rendere eseguibile lo script:

chmod +x list_rbl_blocked

 

e non ci resta che farlo eseguire

./list_rbl_blocked

 

per ottenere l'elenco degli indirizzi di server che sono stati bloccati nel tentativo di inviare SPAM verso i nostri utenti.

# cbl.abuseat.org
smtpd:   94.176.139.101     # count:  6      cbl.abuseat.org;
smtpd:   94.189.219.231     # count:  10     cbl.abuseat.org;
smtpd:   95.135.19.163  # count:  6      cbl.abuseat.org;
smtpd:   98.27.237.98   # count:  3      cbl.abuseat.org;
# zen.spamhaus.org
#smtpd:  123.237.32.127     # count:  1      zen.spamhaus.org;
#smtpd:  123.238.16.180     # count:  1      zen.spamhaus.org;
#smtpd:  123.24.91.170  # count:  1      zen.spamhaus.org;
#smtpd:  187.41.58.183  # count:  1      zen.spamhaus.org;
#smtpd:  187.57.23.56   # count:  1      zen.spamhaus.org;
smtpd:  187.78.168.173     # count:  3      zen.spamhaus.org;
smtpd:  188.158.80.136     # count:  9      zen.spamhaus.org;
smtpd:  188.161.173.73     # count:  5      zen.spamhaus.org;
smtpd:  188.17.218.46  # count:  11      zen.spamhaus.org;
smtpd:  188.48.62.42   # count:  8      zen.spamhaus.org;
 

 

se volete utilizzarlo per aggiornare il file hosts.deny, basta ridirezionare opportunamente l'output:

./list_rbl_blocked >> /etc/hosts.deny

Comments:

Rispondi



(La tua email non sarĂ  mostrata pubblicamente)

Inserire le lettere ed i numeri mostrati nell'immagine.Codice captchaFai clic sull'immagine per vedere un altro captcha.