Ощущение что Spamassassin не проверяет почту
Добавлено: 2013-11-07 21:22:36
Спецы, помогите плиз!
По многочисленным мануалам построил почтовик на FreeBSD + Postfix + Dovecot + Amavisd + Clamav + SpamAssassin
Веду почтовый ящик с исключительно чистыми письмами и ящик с спам-письмами.
Периодически, после ручной проверки что в каждом из ящиков письма нужного сорта (только спам и только не спам), скармливаю их ассассину:
Смущает в работе антиспама меня то, что он как мне кажется не проводит проверку по этим правилам которые должны определяться скормленными ему письмами, а пользуется только проверками DCC, RBL и т.п. проверками.
Вывод я такой делаю на основе просмотра писем которые он помечает как спам и кладёт в указанный в конфиге ящик spamalert@
Там в описании причин по которым он сделал вывод о спаме и насчитал спам-балл значатся только поля:
И вполне однотипные письма которых в спам-ящик накидано масса, один чёрт пропускаются.
Потому я грешу на какие-то ошибки с моей стороны в настройке всей этой связке видимо связанные с недостаточным пониманием тонкостей. Для чего к вам и обращаюсь.
Итак мои конфиги:
postfix/main.cf вроде для анализа этой проблемы не нужен, чтобы тут совсем не захламлять его не выкладываю, если надо то его тоже выложу.
Если надо ещё инфу, то скажите, всё покажу.
cat /usr/local/etc/postfix/master.cf | grep -v "^#"
grep -v "^#" /usr/local/etc/amavisd.conf
grep -v "^#" /usr/local/etc/mail/spamassassin/local.cf
grep -v "^#" /usr/local/etc/mail/spamassassin/init.pre
grep -v "^#" /usr/local/etc/mail/spamassassin/v310.pre
grep -v "^#" /usr/local/etc/mail/spamassassin/v320.pre
grep -v "^#" /usr/local/etc/mail/spamassassin/v330.pre
По многочисленным мануалам построил почтовик на FreeBSD + Postfix + Dovecot + Amavisd + Clamav + SpamAssassin
Веду почтовый ящик с исключительно чистыми письмами и ящик с спам-письмами.
Периодически, после ручной проверки что в каждом из ящиков письма нужного сорта (только спам и только не спам), скармливаю их ассассину:
Код: Выделить всё
#!/bin/sh
DIR=/var/spool/mail/dom.ru
sa-learn --clear
sa-learn --spam ${DIR}/spam@dom.ru/cur/*S{a,}
sa-learn --ham ${DIR}/clean@dom.ru/cur/*S{a,}
sa-update
Вывод я такой делаю на основе просмотра писем которые он помечает как спам и кладёт в указанный в конфиге ящик spamalert@
Там в описании причин по которым он сделал вывод о спаме и насчитал спам-балл значатся только поля:
Код: Выделить всё
Content analysis details: (14.4 points, 5.0 required)
pts rule name description
---- ----------------------
--------------------------------------------------
3.5 HELO_DYNAMIC_SPLIT_IP Relay HELO'd using suspicious hostname (Split
IP)
0.0 TVD_RCVD_IP TVD_RCVD_IP
3.3 RCVD_IN_PBL RBL: Received via a relay in Spamhaus PBL
[85.136.177.149 listed in zen.spamhaus.org]
0.4 RCVD_IN_XBL RBL: Received via a relay in Spamhaus XBL
1.3 RCVD_IN_RP_RNBL RBL: Relay in RNBL,
https://senderscore.org/blacklistlookup/
[85.136.177.149 listed in bl.score.senderscore.com]
1.4 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT
[85.136.177.149 listed in bb.barracudacentral.org]
1.3 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net
[Blocked - see
<http://www.spamcop.net/bl.shtml?85.136.177.149>]
1.4 PYZOR_CHECK Listed in Pyzor (http://pyzor.sf.net/)
0.0 RCVD_IN_SORBS_DUL RBL: SORBS: sent directly from dynamic IP address
[85.136.177.149 listed in dnsbl.sorbs.net]
0.8 RCVD_IN_SORBS_WEB RBL: SORBS: sender is an abusable web server
1.0 RDNS_DYNAMIC Delivered to internal network by host with
dynamic-looking rDNSПотому я грешу на какие-то ошибки с моей стороны в настройке всей этой связке видимо связанные с недостаточным пониманием тонкостей. Для чего к вам и обращаюсь.
Итак мои конфиги:
postfix/main.cf вроде для анализа этой проблемы не нужен, чтобы тут совсем не захламлять его не выкладываю, если надо то его тоже выложу.
Если надо ещё инфу, то скажите, всё покажу.
cat /usr/local/etc/postfix/master.cf | grep -v "^#"
Код: Выделить всё
smtp inet n - n - - smtpd
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o content_filter=smtp-amavis:[127.0.0.1]:10026
pickup fifo n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
-o smtp_fallback_relay=
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
dovecot unix - n n - - pipe
flags=DRhu user=virtual:virtual argv=/usr/local/libexec/dovecot/deliver -d ${recipient}
smtp-amavis unix - - n - 2 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 - 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 mynetworks_style=host
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-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_checks,no_unknown_recipient_checks
Код: Выделить всё
use strict;
$MYHOME = '/var/amavis';
$mydomain = 'dom.ru';
$daemon_user = 'vscan';
$daemon_group = 'vscan';
$TEMPBASE = "$MYHOME/tmp";
$db_home = "$MYHOME/db";
$helpers_home = $MYHOME;
$pid_file = "$MYHOME/amavisd.pid";
$lock_file = "$MYHOME/amavisd.lock";
$ENV{TMPDIR} = $TEMPBASE;
$enable_db = 1;
$enable_global_cache = 1;
$forward_method = 'smtp:[127.0.0.1]:10025';
$notify_method = $forward_method;
$max_servers = 2;
$max_requests = 10;
$child_timeout= 20*60;
@local_domains_acl = (".");
$insert_received_line = 1;
$unix_socketname = "$MYHOME/amavisd.sock";
$inet_socket_port = [10024,10026];
@inet_acl = qw(127.0.0.1);
$DO_SYSLOG = 0;
$LOGFILE = "/var/log/amavis.log";
$log_level = 0;
$log_recip_templ = undef;
$hdr_encoding = 'koi8-r';
$bdy_encoding = 'koi8-r';
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_DISCARD;
$final_spam_destiny = D_DISCARD;
$final_bad_header_destiny = D_PASS;
$warnvirussender = 0;
$warnspamsender = 0;
$warnbannedsender = 0;
$warnbadhsender = 0;
$warnvirusrecip = 0;
$warnbannedrecip = 0;
$warnbadhrecip = 0;
$warn_offsite = 0;
$virus_admin = "virusalert\@$mydomain";
$spam_admin = "spamalert\@$mydomain";
$mailfrom_notify_admin = "virusalert\@$mydomain";
$mailfrom_notify_recip = "virusalert\@$mydomain";
$mailfrom_notify_spamadmin = "spamalert\@$mydomain";
$mailfrom_to_quarantine = 'virus or spam';
$QUARANTINEDIR = '/var/virusmails';
$virus_quarantine_method = 'local:virus-%i-%n';
$spam_quarantine_method = 'local:spam-%i-%n';
$virus_quarantine_to = 'virus-quarantine';
$spam_quarantine_to = 'spam-quarantine';
$X_HEADER_TAG = 'X-Virus-Scanned';
$X_HEADER_LINE = "by Amavisd-New and ClamAV at dom.ru";
$remove_existing_x_scanned_headers = 1;
$remove_existing_spam_headers = 1;
$sql_select_white_black_list = undef;
$recipient_delimiter = '+';
$localpart_is_case_sensitive = 0;
$MAXLEVELS = 14;
$MAXFILES = 1500;
$MIN_EXPANSION_QUOTA = 100*1024;
$MAX_EXPANSION_QUOTA = 300*1024*1024;
$MIN_EXPANSION_FACTOR = 5;
$MAX_EXPANSION_FACTOR = 500;
$virus_check_negative_ttl = 3*60;
$virus_check_positive_ttl = 30*60;
$spam_check_negative_ttl = 30*60;
$spam_check_positive_ttl = 30*60;
$bypass_decode_parts = 1;
$path = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/usr/bin:/bin';
$file = 'file';
$dspam = 'dspam';
@decoders = (
['mail', \&do_mime_decode],
['asc', \&do_ascii],
['uue', \&do_ascii],
['hqx', \&do_ascii],
['ync', \&do_ascii],
['F', \&do_uncompress, ['unfreeze','freeze -d','melt','fcat'] ],
['Z', \&do_uncompress, ['uncompress','gzip -d','zcat'] ],
['gz', \&do_gunzip],
['gz', \&do_uncompress, 'gzip -d'],
['bz2', \&do_uncompress, 'bzip2 -d'],
['lzo', \&do_uncompress, 'lzop -d'],
['rpm', \&do_uncompress, ['rpm2cpio.pl','rpm2cpio'] ],
['cpio', \&do_pax_cpio, ['pax','gcpio','cpio'] ],
['tar', \&do_pax_cpio, ['pax','gcpio','cpio'] ],
['tar', \&do_tar],
['deb', \&do_ar, 'ar'],
['zip', \&do_unzip],
['rar', \&do_unrar, ['rar','unrar'] ],
['arj', \&do_unarj, ['arj','unarj'] ],
['arc', \&do_arc, ['nomarch','arc'] ],
['zoo', \&do_zoo, 'zoo'],
['lha', \&do_lha, 'lha'],
['cab', \&do_cabextract, 'cabextract'],
['tnef', \&do_tnef_ext, 'tnef'],
['tnef', \&do_tnef],
['exe', \&do_executable, ['rar','unrar'], 'lha', ['arj','unarj'] ],
);
$sa_local_tests_only = 0;
$sa_mail_body_size_limit = 512*1024;
$sa_spam_modifies_subj = 1;
$sa_spam_subject_tag = '***SPAM*** ';
$sa_tag_level_deflt = 2;
$sa_tag2_level_deflt = 6;
$sa_kill_level_deflt = 8;
@av_scanners = (
['ClamAV-Clamd',
\&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"],
qr/\bOK$/, qr/\bFOUND$/,
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
);
@av_scanners_backup = (
['ClamAV-ClamScan', 'clamscan',
"--stdout --disable-summary -r --tempdir=$TEMPBASE {}", [0], [1],
qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
);
@debug_sender_acl = ( "root\@$mydomain" );
$sa_debug = 1;
1;
dkim_key('dom.ru','default','/var/db/dkim/dom.ru-default.key.pem',g=>'*',h=>'sha256', k=>'rsa');
$enable_dkim_verification = 1;
$enable_dkim_signing = 1;
$interface_policy{'10026'} = 'ORIGINATING';
$policy_bank{'ORIGINATING'} = {
originating => 1,
smtpd_discard_ehlo_keywords => ['8BITMIME'],
os_fingerprint_method => undef,
bypass_banned_checks_maps => [1],
bypass_header_checks_maps => [1],
bypass_spam_checks_maps => [1],
virus_admin_maps => ["virusalert\@$mydomain"],
};
Код: Выделить всё
report_safe 0
ok_locales en ru
trusted_networks 127. 192.168.3. 192.168.4. 192.168.5. 192.168.6. 192.168.7. 192.168.12.
use_pyzor 1
use_razor2 1
skip_rbl_checks 0
dns_available yes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 0
auto_whitelist_factory Mail::SpamAssassin::SQLBasedAddrList
user_awl_dsn DBI:mysql:spamass:localhost
user_awl_sql_username spamass
user_awl_sql_password PASS_PASS_PASS
bayes_store_module Mail::SpamAssassin::BayesStore::SQL
bayes_sql_dsn DBI:mysql:spamass:localhost
bayes_sql_username spamass
bayes_sql_password PASS_PASS_PASS
user_scores_dsn DBI:mysql:spamass:localhost
user_scores_sql_username spamass
user_scores_sql_password PASS_PASS_PASS
Код: Выделить всё
loadplugin Mail::SpamAssassin::Plugin::URIDNSBL
loadplugin Mail::SpamAssassin::Plugin::HashcashКод: Выделить всё
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop
loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTagsКод: Выделить всё
loadplugin Mail::SpamAssassin::Plugin::Check
loadplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
loadplugin Mail::SpamAssassin::Plugin::URIDetail
loadplugin Mail::SpamAssassin::Plugin::Bayes
loadplugin Mail::SpamAssassin::Plugin::BodyEval
loadplugin Mail::SpamAssassin::Plugin::DNSEval
loadplugin Mail::SpamAssassin::Plugin::HTMLEval
loadplugin Mail::SpamAssassin::Plugin::HeaderEval
loadplugin Mail::SpamAssassin::Plugin::MIMEEval
loadplugin Mail::SpamAssassin::Plugin::RelayEval
loadplugin Mail::SpamAssassin::Plugin::URIEval
loadplugin Mail::SpamAssassin::Plugin::WLBLEval
loadplugin Mail::SpamAssassin::Plugin::VBounce
loadplugin Mail::SpamAssassin::Plugin::ImageInfoКод: Выделить всё
loadplugin Mail::SpamAssassin::Plugin::FreeMail