Postfix a amavis
Proti spamu se dá bojovat lecjak, minule jsem zmiňoval graylisting, dnes se budu věnovat amavisu. To je taková hezká aplikace, která vytváří mezivrstvu mezi MTA a SpamAssassin, zároveň umí třeba i prohnat mail skrz antivirus. Je to vlastně jen o lenosti správce, protože by se potřebné dalo vymyslet i bez amavisu, nicméně když už ta možnost je …
Instalace balíků
Postfix už máme z minula, takže těch balíků bude pomálu
apt-get install clamav-daemon amavis spamassassin
Konfigurace postfixu
V /etc/postfix/main.cf:
content_filter = amavis:[127.0.0.1]:10024
/etc/postfix/master.cf:
amavis unix - - - - 20 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 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_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_check,no_unknown_recipient_checks,no_milters
/etc/amavis/conf.d/05-node_id:
#chomp($myhostname = `hostname --fqdn`); $myhostname = "mail.cosicosi.com";
/etc/amavis/conf.d/15-content_filter_mode:
@bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
/etc/amavis/conf.d/20-debian_defaults:
$sa_tag_level_deflt = 0; $sa_tag2_level_deflt = 3.50; $sa_kill_level_deflt = 5.00; $sa_dsn_cutoff_level = 10; $final_virus_destiny = D_DISCARD; $final_banned_destiny = D_BOUNCE; $final_spam_destiny = D_BOUNCE; $final_bad_header_destiny = D_PASS;
/etc/amavis/conf.d/50-user:
$sa_spam_modifies_subj = 1;
/etc/spamassassin/local.cf:
rewrite_header Subject *****SPAM***** bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag bayes_ignore_header X-Spam-Status score DNS_FROM_AHBL_RHSBL 0
/etc/group:
clamav:x:???:amavis amavis:x:???:clamav
Po úpravách je potřeba ještě vyvolat „newgrp“ pro obnovení informací o skupinách v systému, vyvolat freshclam (aby stáhl patřičné AV databáze), nastavit patřičná práva na 775 /var/lib/amavis/tmp a restartovat clamav-daemon, amavis a postfix.
Testování
Měly by být otevřené porty na localhostu 10024, 10025 a na obou by měla být uvítací zpráva o ESMTP – jedna od amavisu, druhá od postfixu. V případě průchozí zprávy se v logu zobrazí informace o udělených bodech a co se s danou zprávou stalo.
Pro testování jako takové existují EICAR signatury, na které by měly jednotlivé antiviry a antispamy reagovat pozitivně.
Pro otestování spamu tedy zkuste poslat e-mail s následujícím textem:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Pro otestování antiviru pak tento text:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Trocha povídání na konec
Celé to funguje tak, že postfix předá celý mail amavisu na portu 10024, který jej následně po kontrole zpětně vrátí postfixu na portu 10025, kde už je – jak si jistě všimnete – content filter vypnutý. Hodnoty pro hranici spamu etc. si určete dle své potřeby. Za zmínku stojí ještě DNS_FROM_AHBL_RHSBL, který z nějakých prapodivných důvodů vracel (a vrací) nesmyslné informace o spamu.
Po restartu amavisu uvidíte v logu informace o aktivních pluginech amavisu – zejména informace o programech umožňujících dekompresi souborů stojí za to uvažovat.
Pokud při testování narazíte na problém, že amavis nevkládá do hlaviček informace o uskutečněných testech, zkuste se podívat na tento článek a inspirovat se, proč tomu tak je.
Pingback: Jak donutit amavis, aby do hlaviček přidával informace o testech - Lomítkáři