Как надежно настроить пользовательские правила Spamassassin с помощью Amavisd (в Ubuntu)
Я использовал Amavisd со Spamassassin в течение многих лет... моя конфигурация работала (хотя, возможно, она никогда не была "правильной"), похоже, конфигурация /etc/spamassassin/local.cf игнорируется, когда функция spamassassin вызывается amavisd-new
Я использую довольно ванильную конфигурацию:
- Ubuntu (14.04.4 LTS)
- Postfix (2.11.0-1ubuntu1) - smtpd (и друзья) в качестве постфикса
- Spamassassin (3.4.0) - спам как корень
- amavisd-new (2.7.1) - как амавис
Postfix, spamassassin и amavisd работают как сервисы, а почта доставляется с баллами spamassassin. База данных байесов находится в ~amavis/.spamassassin/bayes_*.
Я озадачен, потому что кажется, что конфигурация, которую я поместил в /etc/spamassassin/local.cf (например, новая оценка для определенного правила), игнорируется для сообщений, обрабатываемых amavisd, но не игнорируется, когда я запускаю spamc или "spamassassin -D -t" из аккаунта amavis. Когда я помещаю эквивалентную конфигурацию в ~amavis/.spamassassin/user_prefs - это также, похоже, не влияет на результаты обработки amavisd-new.
Первоначально я настроил со ссылкой (что-то вроде) это: https://help.ubuntu.com/community/PostfixAmavisNew
Я также рассмотрел эти идеи (безрезультатно): https://www.ijs.si/software/amavisd/
Что я хотел бы знать, это:
- Почему мои собственные значения "показателя" в /etc/spamassassin/local.cf игнорируются, только когда spamassassin используется через amavisd-new?
- Есть ли отличный способ заставить amavisd использовать спам (и, следовательно, обеспечить согласованность)?
3 ответа
1-й вопрос:
Во-первых, чтобы быть ясным: файлы конфигурации Spamassassin используются - они не "пропускаются". Я видел, как другие сообщают, что они вообще не используются.
Я знаю, что вы видели эту ссылку часто задаваемые вопросы, но ответ, кажется, здесь. FAQ может не указывать точные переменные "$sa_" (или другого типа) / etc, которые вам могут понадобиться в /etc/amavis/conf.d/50-user
, но это очень подробно рассказывает о том, как все начинается и читается. Может показаться, что amavis-new вас просто "игнорирует" в конфигурации local.cf SA. Это зависит от параметров конфигурации - некоторые параметры local.cf могут работать, а некоторые - нет.
Но вы также не упомянули, какие именно опции (пользовательские правила я предполагаю?) У вас есть в local.cf, которые не используются (или игнорируются /undef'd amavis-new).
https://www.ijs.si/software/amavisd/:
SA наблюдает все настройки в своем файле конфигурации, но не все они влияют на проверяемую почту, так как amavisd-new принимает свои собственные решения на основе оценки спама (хитов) (поэтому, например, required_hits не имеет никакого эффекта - используйте tag / tag2 / kill amavisd-new settings вместо), и выполняет собственное редактирование заголовка, а тело не изменяется. Продолжайте читать для связанной информации.
Без дальнейших подробностей о том, какие конкретные параметры SA local.cf игнорируются, это ваш ответ. Вам нужно будет опубликовать более конкретную информацию.
2-й вопрос:
Да, вы можете гипотетически использовать SA в качестве отдельного фильтра содержимого через Postfix/MTA/etc. Тем не менее, вам лучше остаться с amavis-new в качестве контроллера SA MTA. Вы должны быть в состоянии воспроизвести то, что вам нужно сделать в SA, через новую конфигурацию Amavis и / или $sa_
Переменные / и т.д..
Замечания:
Если вы работаете в Ubuntu (и, возможно, в Debian), существует также глобальный файл user_pref/config для amavis-new Spamassassin: /var/lib/amavis/.spamassassin/user_prefs
,
Я добавил пользовательские правила SA в этот файл - и они работают нормально.
Вы также можете убить основной процесс amavis и попробовать: sudo amavisd-new debug-sa
получить вывод о том, что делает SA / читает / компилирует / и т.д. (Имя / местоположение Debian/Ubuntu)
Пример LOG показывает конфигурацию amavis-new, читающую некоторые файлы конфигурации SA:
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: using "/etc/spamassassin" for site rules pre files
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/init.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/sa-compile.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/v310.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/v312.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/v320.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/v330.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/v340.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/v341.pre
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: using "/usr/share/spamassassin" for sys rules pre files
...
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: using "/etc/spamassassin" for site rules dir
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/65_debian.cf
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: read file /etc/spamassassin/local.cf
mail.example.net /usr/sbin/amavisd-new[30358]: SA dbg: config: using "/var/lib/amavis/.spamassassin/user_prefs" for user prefs file
amavisd-new использует свой собственный конфиг. Эти файлы конфигурации находятся в /etc/amavis/conf.d/
, В частности, в 20-debian_defaults
, $sa_kill_level_deflt
является "эквивалентом" SpamAssassin's required_score
(находится в /etc/spamassassin/local.cf
).
По моему опыту, результат, полученный с помощью amavis по сравнению с использованием spamsassassin напрямую, никогда не бывает одинаковым, и я еще не выяснил, почему, поэтому, когда вы настраиваете $sa_kill_level_deflt
вам нужно выяснить подходящее значение, которое может не совпадать с required_score
,
После добавления пользовательских правил в local.cf не забудьте запустить spamassassin --lint и перезапустить spamassassin и amavis daemon