====== 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.