URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88061
[ Назад ]

Исходное сообщение
"Синтаксис правил Spamassassin"

Отправлено yans , 04-Фев-10 11:27 
Доброго всем!

Есть сервер Centos 5.4, на нем настроены postfix 2.6.2 c sasl авторизацией и антиспамом spamassassin 3.2.5.
Необходимо настроить spamassassin так, что бы авторизованные пользователи либо совсем не проверялись на спам, либо им выставлялось отрицательное колицество баллов.
Погуглив нашел решение, заключается он в том, что клиентам не прошедшим авторизацию добавляется заголовок X-SMTP-Auth: no
в main.cf:

smtpd_data_restrictions =
    permit_sasl_authenticated,
    check_client_access regexp:/etc/postfix/add_auth_header.regexp
    
В /etc/postfix/add_auth_header.regexp:
/^/ PREPEND X-SMTP-Auth : no

Проверил - работает (всем неавторизованным добавляется заголовок X-SMTP-Auth : no, у авторизованных в заголовки ничего не добавляется)

Тепеь при написании правила для spamassassin'a возникает проблема это правило применяется ко всем, а должно только к авторизованным.
В local.cf:

header __NO_SMTP_AUTH X-SMTP-Auth =~ /^no$/
meta SMTP_AUTH !__NO_SMTP_AUTH
describe SMTP_AUTH Message sent using SMTP Authentication
tflags SMTP_AUTH nice
score SMTP_AUTH -50

В статье написано, что делалось на spamassassin 3.1.4, может у них поменялся синтаксис?
Помогите исправить правило, либо подскажите другой способ решения.

Спасибо!


Содержание

Сообщения в этом обсуждении
"Синтаксис правил Spamassassin"
Отправлено Alan Makoev , 04-Фев-10 12:20 
Попробуйте поставить пробел после восклицательного знака в определении метаправила.
Сохраните одно такое письмо в файл (или просто скопируйте куда-нибудь из мбокса) и прогоните команду (м.б. придётся добавить ключ --mbox или --mbx)
spamassassin -D rules < имя_файла
(при необходимости перенаправив вывод в файл)
и посмотрите, выстреливают ли эти правила.
Кстати, если внутренней почты много, можно поиграться с плугином Shortcircuit - он позволяет прекратить сканирование после того, как выстрелило заданное правило. Это может сильно разгрузить SA.


"Синтаксис правил Spamassassin"
Отправлено yans , 04-Фев-10 13:03 
>Сохраните одно такое письмо в файл (или просто скопируйте куда-нибудь из мбокса)
>и прогоните команду (м.б. придётся добавить ключ --mbox или --mbx)
>spamassassin -D rules < имя_файла

Вот теперь я совсем в тупике, при проходе письма через команду "spamassassin -D rules < имя_файла" с заголовком "X-SMTP-Auth: no" вижу:

X-Spam-Status: No, score=-8.6 required=5.0 tests=AWL,BAYES_50 autolearn=no
        version=3.2.5

При отсутсвии:
X-Spam-Status: No, score=-18.2 required=5.0 tests=AWL,BAYES_50,SMTP_AUTH
        autolearn=no version=3.2.5

Т.е. вручную все работает, а при приходе почты не работает.


"Синтаксис правил Spamassassin"
Отправлено Alan Makoev , 04-Фев-10 13:49 
>Т.е. вручную все работает, а при приходе почты не работает.

Тогда сразу дурацкие вопросы: а после внесения изменений в конфиг spamd (или amavisd, или кто там ещё) перезапускался? Юзер, с именем которого оно бегает, может прочесть отредактированные файлы?
Попробуйте с этим же ключём погонять свой рабочий SA и посмотреть в логе - что он будет выдавать по реальным письмам?


"Синтаксис правил Spamassassin"
Отправлено yans , 04-Фев-10 14:05 
>>Т.е. вручную все работает, а при приходе почты не работает.
>
>Тогда сразу дурацкие вопросы: а после внесения изменений в конфиг spamd (или
>amavisd, или кто там ещё) перезапускался? Юзер, с именем которого оно
>бегает, может прочесть отредактированные файлы?
>Попробуйте с этим же ключём погонять свой рабочий SA и посмотреть в
>логе - что он будет выдавать по реальным письмам?

Конечно все перезапускается после изменений.
Используется связка Postfix -> spamass-milter -> spamassassin.
И если я правильно понял doc по Postfix, то он на мильтер кидает до обработки своими инструментами.

И еще вопрос - как посмотреть, что пришло на вход к spamassassin'у?


"Синтаксис правил Spamassassin"
Отправлено Alan Makoev , 04-Фев-10 14:27 
>И если я правильно понял doc по Postfix, то он на мильтер
>кидает до обработки своими инструментами.

Возможно, что дело именно в этом.

>И еще вопрос - как посмотреть, что пришло на вход к spamassassin'у?

Строго говоря - не знаю. Может быть, включение одного из этих каналов: http://wiki.apache.org/spamassassin/DebugChannels приведёт к выводу сырого текста, который поступил на вход SA. Письмо, обработанное SA (с добавленными полями X-SPAM) будет в конце debug output'а.



"Синтаксис правил Spamassassin"
Отправлено yans , 04-Фев-10 16:52 
Спасибо за помощь!
Сделал проверку по заголовку X-Envelope-from, все работает нормально!


"Синтаксис правил Spamassassin"
Отправлено foxxxmulder , 04-Фев-10 19:48 

Проверено, все работает отлично :)



"Синтаксис правил Spamassassin"
Отправлено Alan Makoev , 04-Фев-10 21:13 
>Проверено, все работает отлично :)

Рад был помочь!



"Синтаксис правил Spamassassin"
Отправлено Alex , 22-Ноя-11 09:35 
В local.cf модифицировал :

header __NO_SMTP_AUTH X-SMTP-Auth =~ /^no$/

на

header __NO_SMTP_AUTH X-SMTP-Auth =~ /^no$/m

и у меня все заработало...