Отсутствует заголовок X-Spam-Status

Недавно я обновился до Ubuntu 14.04.1 LTS (trusty) и следил за указаниями в https://help.ubuntu.com/14.04/serverguide/mail-filtering.html и отправляю и получаю почту просто отлично.

Хотя в моих сообщениях видны заголовки X-Virus-Scanned , которые предполагают, что почта действительно обрабатывается, я не вижу в заголовках заголовков X-Spam-Level или X-Spam-Score . Это делает последующую фильтрацию procmailrc и клиентскую фильтрацию … сложнее.

Хотя $final_spam_destiny = D_DISCARD в файле /etc/amavis/conf.d/20-debian_defaults сильно снижает спам в моем почтовом ящике, у меня были проблемы с ложными срабатываниями до настройки и я не знал, что они идут, поэтому установите его до D_PASS . Это выявило проблему.

Я не уверен, где искать, чтобы начать диагностировать проблему (иначе я бы опубликовал подозрительный файл конфигурации).

/etc/amavis/conf.d/15-content_filter_mode имеет строки без комментирования для проверки на вирусы и спам, а проверка вирусов работает в соответствии с заголовками.

Спам Ассасин, конечно, тоже начинает нормально.

Средства отладки SpamAssassin: информация
SA info: zoom: возможность использования 360/360 'body_0' скомпилированных правил (100%)
Загруженные плагины SpamAssassin: AskDNS, AutoLearnThreshold, Bayes, BodyEval, Check, DKIM, DNSEval, FreeMail, HTMLEval, HTTPSMismatch, Hashcash, HeaderEval, ImageInfo, MIMEEval, MIMEHeader, Pyzor, Razor2, RelayEval, ReplaceTags, Rule2XSBody, SPF, SpamCop, URIDNSBL, URIDetail, URIEval, VBounce, WLBLEval, WhiteListSubject
SpamControl: init_pre_fork на SpamAssassin сделано

Я также установил $log_level = 2; в файле /etc/amavis/conf.d/50-user и не видят каких-либо очевидных ошибок, катящихся в журналах.

В: Любые рекомендации о том, что попробовать дальше?

UPDATE (похоже, что у меня уже есть правильная настройка):

 /etc/amavis/conf.d$ grep sa_tag_level_deflt * 20-debian_defaults:# $sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level 20-debian_defaults:$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level 

/etc/amavis/conf.d/20-debian_defaults http://pastebin.com/5xuvNVtD

Измените строку 36 на что-то вроде этого:

$sa_tag_level_deflt = -999; # add spam info headers if at, or above that level

После сохранения и перезапуска службы или перезагрузки конфигурации все письма должны иметь заголовок статуса x-spam.

Вывод команды head -n 1 /etc/mailname должен быть вашим доменом, например example.com .

Если вывод похож на mail.example.com , это ошибка .

Итак, вы можете исправить это, изменив файл /etc/amavis/conf.d/05-domain_id

Решение №1

Внутри /etc/amavis/conf.d/05-domain_id :

Изменить:

  chomp($mydomain = `head -n 1 /etc/mailname`); 

Для того, чтобы:

  chomp($mydomain = `hostname -d`); 

PS: Вывод имени hostname -d должен быть вашим доменом, например example.com .

Простейшее решение, чем когда-либо:

Внутри /etc/amavis/conf.d/05-domain_id :

Изменить:

  chomp($mydomain = `head -n 1 /etc/mailname`); 

Для того, чтобы:

  $mydomain = "example.com"; 

Итак, проблема решена, и это было конгломератом вещей, которые я подробно расскажу здесь, чтобы другие оказались по тому же пути.

Прежде всего, у spamassassin есть проблемы (в некоторых средах), работающие с ipv6. Не знаю почему. Измените /etc/default/spamassassin или /etc/init.d/spamassassin если у вас его нет, и добавьте --ipv4 в список OPTIONS . Затем используйте service spamassassin restart для отказов службы и service spamassassin status чтобы проверить, работает ли спам. Этот шаг может не понадобиться для вашей конфигурации.

Затем убедитесь, что у вас есть файл /etc/procmailrc , что его разрешения доступны для чтения в мире и что он содержит что-то вроде этого:

 DROPPRIVS=yes :0fw | /usr/bin/spamc :0 * ^X-Spam-Status: Yes $HOME/mail/possible-spam 

Затем, если вы используете webmin, вы захотите проверить службу procmail и убедитесь, что она не выдала вам предупреждение о том, что постфикс не настроен на использование procmail . В /etc/postfix/main.cf вам нужно будет mailbox_command команду mailbox_command по умолчанию для запуска доставки и замены procmail. После редактирования вы должны будете запустить service postfix restart .

 #mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/dovecot.conf -m "${EXTENSION}" mailbox_command = procmail -a "$EXTENSION" 

Если вы вручную перемещаете свои спам-сообщения в почтовую папку spam , то вы хотите тренировать спам-убийцу так:

 sa-learn --progress --dbpath ~/.spamassassin --spam --mbox ~/mail/spam 

Обратите внимание, что дальнейшая настройка может быть выполнена, и это потребует service spam assassin restart , но это может помочь.

Один, в /etc/spamassassin/local.cf , установите значение required_score немного ниже, если вы получите много спама:

 # Set the threshold at which a message is considered spam (default: 5.0) # required_score 4.0 

В том же файле /etc/spamassassin/local.cf также можно фильтровать по странам со спамом, добавив это в конце. Вот Россия и Китай, два очень тяжелых участника, исторически говорящих на основе анализа электронной почты.

 # Filter Russia header RELAYCOUNTRY_RU X-Relay-Countries =~ /RU/ describe RELAYCOUNTRY_RU Relayed through Russia score RELAYCOUNTRY_RU 8.0 # Filter China header RELAYCOUNTRY_CN X-Relay-Countries =~ /CN/ describe RELAYCOUNTRY_CN Relayed through China score RELAYCOUNTRY_CN 8.0 report_header 1 fold_headers 1 detailed_phrase_score 1 

Вышеупомянутый не только разрешил отсутствующий заголовок, который, как я подозреваю, не был вызван procmail.