Greylistd, un demone per gestire le greylist con Exim4

Configurazione verificata in Debian Squeeze e Wheezy

Greylistd e` un semplice demone che permette, interrogato da Exim via socket, di gestire il greylisting delle mail in arrivo. In Debian Squeeze e Wheezy e` presente come pacchetto, e per installarlo e` sufficiente usare il comando

aptitude install greylistd

Se usate la configurazione standard debian di Exim, troverete una pagina di help che spiega cosa fare per attivarlo come ultimo passo della procedura di installazione. Se invece usate una configurazione personalizzata di Exim dovrete fare da soli. In questa pagina spiego come Greylistd interagisce con la configurazione di Exim che e` descritta qui: ../Exim4-Dovecot

Configurazione di Greylistd

La configurazione di Greylistd e` in /etc/greylistd/ ed e` semplice ma non totalmente documentata. Il file config contiene la configurazione minimale. Quella che sto usando io e` quella di default di Debian, con l'unica differenza che ho ridotto a 30 secondi il valore di "retryMin".

Modificata la configurazione, riavviare greylistd con il solito /etc/init.d/greylistd restart

Configurazione di Exim4

Se avete installato la configurazione che trovate in ../Exim4-Docevot allora non dovete fare altro che abilitare l'uso delle greylist come indicato in ../Exim4-Docevot.

Se state configurando il vostro Exim per i cavoli vostri, questo e` un esempio di ACL che usa greylistd, da mettere nella vostra configurazione di Exim, nel gruppo delle ACL che fanno il check dell' RCPT (acl_smtp_rcpt). Questa acl considera le subnet /24 e non i singoli host, per evitare di greylistare enne volte quelle mail che vengono da sistemi grandi che hanno piu` server smtp che ci contattano a rotazione per mandarci la stessa mail. E` ovvio che non e` una soluzione che funziona al 100%, ma e` meglio che niente.

  # implementazione delle greylist a mezzo del demone greylistd.
  defer  message        = Sender is greylisted. Please try again later.
         !authenticated = *
          condition     = ${if eq {grey}\
                          {${readsocket{/var/run/greylistd/socket}\
                                       {${mask:$sender_host_address/24} \
                                        $sender_address \
                                        $local_part@$domain}\
                                       {5s}{}{} }}\
                          {true}{false}}
         log_message    = Greylisted $sender_host_address $sender_address $local_part@$domain

Se preferite considerare ogni host singolarmente, la acl diventa:

  # implementazione delle greylist a mezzo del demone greylistd.
  defer  message        = Sender is greylisted. Please try again later.
         !authenticated = *
          condition     = ${if eq {grey}\
                          {${readsocket{/var/run/greylistd/socket}\
                                        $sender_host_address \
                                        $sender_address \
                                        $local_part@$domain}\
                                       {5s}{}{} }}\
                          {true}{false}}
         log_message    = Greylisted $sender_host_address $sender_address $local_part@$domain

Gestione di greylistd

Potete "fare cose" a greylistd mentre gira con il comando greylist

Per esempio, il comando greylist list vedete la lista attuale degli indirizzi email che sono nel database del demone, e con graylist stats vedete una statistica delle mail che si trovano nei vari stati di grey/white/black list.

Consigli vari

Se avete piu` di un MX (avete un secondario) vi consiglio di mettere il secondario in whitelist sul primario in qualche modo in modo che il suo traffico verso il primario non sia greylistato, e inoltre DOVETE abilitare il greylisting, e in generale le stesse ACL antispam, anche sul secondario. Se non lo fate, la mail che sarebbe stata bloccata vi arrivera` tutta lo stesso, a mezzo del vostro secondario.

Se volete ridurre la "durezza" del controllo, e avere meno ritardi sulla consegna delle email, forse ha senso che la prima mail "buona" da un dato mail server "sblocchi" tutte le mail successive da quel mail server. Per farlo potete impostare, nella configurazione di graylistd, queste due righe:

singlecheck = true
singleupdate = true

LinuxDebian/GreyListd (last edited 2015-05-04 16:50:07 by Kurgan)