Table of Contents
Amavis (amavisd-new)
- Home page: http://www.ijs.si/software/amavisd/
Flusso di un messaggio mail
Con la configurazione illustrata in questa pagina, ogni messaggio pulito ricevuto da internet passa in realtà due volte nella coda di Postfix, con due ID differenti.
- Il processo postfix/smtpd riceve una connessione SMTP da internet, accetta il messaggio e gli assegna un ID:
- postfix/smtpd[22477]: D1409260178: client=remote.server.it[185.21.73.197]
- A causa della direttiva content_filter il messaggio viene passato ad amavis con un relay su localhost e protocollo LMTP:
- postfix/lmtp[23426]: D1409260178: … relay=127.0.0.1:10024 … queued as 1A4D52608E1
- Il processo amavis esegue il controllo e logga l'esito su mail.log:
- amavis[23089]: (23089-03) Passed … queued_as: 1A4D52608E1
Nel caso invece di un messaggio SPAM, il messaggio passa una sola volta nella coda di Postfix e quindi viene scartato:
- Il processo postfix/smtpd riceve una connessione SMTP da internet, accetta il messaggio e gli assegna un ID:
- postfix/smtpd[22342]: B1406260800: client=server.rigacci.org[176.29.139.130]
- Anche in questo caso avviene il relay verso amavis, su localhost con protocollo LMTP:
- postfix/lmtp[23050]: B1406260800: … relay=127.0.0.1:10024 … (554 5.7.0 Bounce, id=19320-20 - spam))
- Ovviamente amavis logga l'esito dell'operazione (notare l'id del messaggio e il salvataggio in quarantena):
- amavis[19320]: (19320-20) Blocked SPAM … quarantine: f/spam-fWA5oxc8FrZN.gz
Installazione
Installare il pacchetto Debian amavis. Per abilitare la funziona standard di controllo SPAM bisogna decommentare una riga in /etc/amavis/conf.d/15-content_filter_mode
:
@bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
L'installazione predefinita Debian non abilita neanche il controllo antivirus con ClamAV, per abilitarlo si deve aggiungere clamav al gruppo amavis e scommentare nello stesso 15-content_filter_mode
:
#@bypass_virus_checks_maps = ( # \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
La configurazione predefinita con Debian Buster è che Amavis considera locale solo il dominio indicato in /etc/mailname ed applica le proprie regole (ad esempio quella di marcare SPAM i messaggi individuati come tali). Se il server gestisce la posta per domini diversi, è necessario editare il file /etc/amavis/conf.d/05-domain_id ed aggiungere gli altri domini:
@local_domains_acl = ( ".$mydomain", "rigacci.org" );
Vedere Fighting spam - Amavisd-new.
Test
Attenzione che un messaggio con l'EICAR test file risulta positivo anche senza antivirus, basta l'antispam. Per verificare il corretto collegamento con ClamAV bisogna utilizzare un virus vero.
Configurazione Postfix
Due aggiunte, la prima in /etc/postfix/main.cf
:
# Aggiunti per l'antispam. # * Aggiungere regole Amavis in /etc/postfix/master.cf # * Abilitare il bypass_spam_checks_maps in /etc/amavis/conf.d/15-content_filter_mode # * Se si vuole anche ClamAV ricordarsi di abilitare il bypass_virus_checks_maps, # aggiungere clamav al gruppo amavis e abilitare AllowSupplementaryGroups. content_filter = amavis:[127.0.0.1]:10024 # Passa i messagi ad Amavis senza address mapping (espansione alias, ecc.). receive_override_options = no_address_mappings
e la seconda in /etc/postfix/master.cf
:
# ========================================================================== # Configurazione per Amavis # ========================================================================== amavis unix - - y - 2 lmtp -o smtp_data_dont_timeout=1200 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1
Quarantena
Se un messaggio viene filtrato da amavis, nei file di log si trova qualcosa del tipo:
Sep 4 10:11:53 paguma amavis[12651]: (12651-01) Blocked BANNED (application/x-msdos-program,.asc,eicar_antivirus_test.com) {BouncedOpenRelay,Quarantined}, [2a01:4f8:130:11c7::2] <niccolo@rigacci.org> -> <rigacci@faunalia.it>, quarantine: 4/banned-4Lf3p2mP_z3i, Message-ID: <20130904081152.GA3389@rigacci.org>, mail_id: 4Lf3p2mP_z3i, Hits: -, size: 1308, 242 ms
e il messaggio viene copiato in un file del tipo /var/lib/amavis/virusmails/4/banned-4Lf3p2mP_z3i
Falsi positivi
Chi invia un messaggio che viene catturato dall'antispam dovrebbe ricevere un messaggio di errore che tra l'altro dice:
Our internal reference code for your message is 16520-10/LNC5bs8JpfwN
Questo significa che sul server esiste un file in /var/lib/amavis/virusmails/L/spam-LNC5bs8JpfwN.gz
che contiene negli header i risultati dello SpamAssassin.