====== Amavis (amavisd-new) ======
* Home page: [[http://www.ijs.si/software/amavisd/]]
* Article: [[http://www.akadia.com/services/postfix_amavisd.html|Fighting Spam/Viruses with Amavisd-New, Maia and Postfix]]
{{:doc:appunti:linux:sa:postfix_amavisd.gif?640|Postfix and Amavisd-new}}
===== 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 [[http://gogs.info/books/debian-mail/chunked/antispam.amavis.html|Fighting spam - Amavisd-new]].
===== Test =====
Attenzione che un messaggio con l'**[[wp>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]
-> , 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.