Настройка SpamAssassin через ACL

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Настройка SpamAssassin через ACL

Непрочитанное сообщение barut » 2008-11-18 13:04:05

Сейчас проверка на спам происходит через специальный роутер и транспорт, использующий spamc.
Попытался сделать автоматическую проверку через exim'овский ACL.

Код: Выделить всё

# warn message = X-Spam-Score: $spam_score ($spam_bar)
#      logwrite = "X-Spam-Score: $spam_score ($spam_bar)"
#      hosts = !+whitelist_hosts_ip : *
#      spam = spammail:true

# warn message = X-Spam-Report : $spam_report
#      hosts = !+whitelist_hosts_ip : *
#      spam = spammail:true

# warn message = ***SPAM*** $h_Subject :
#      hosts = !+whitelist_hosts_ip : *
#      spam = spammail:true

# deny message = This Message scored $spam_score spam points
#      hosts = !+whitelist_hosts_ip : *
#      condition = ${if > {$spam_score_int}{120}{1}{0}}
#      spam = spammail:true
Но такой вариант не устраивает. Проверка происходит даже на исходящую почту, это что первое не понравилось. Потом проверка идет от одного пользователя spammail.
Через spamc проверка шла для каждого отдельного пользователя (у каждого пользователя существуют отдельные настройки). Достигалось это через переменную $domain, после проверки которой определялся владелец домена (пользователь системы, которому принадлежат ящики этого домена). В ACL_DATA эту переменную использовать нельзя, как в прочем и производить проверку отправителя, находится ли он в локальных доменах.

Может кто знает как побороть это? Хочется чтобы проверка на спам производилась от каждого отдельного пользователя в правилах ACL.

P.S. пробовал запихивать домен в переменную acl_m0 во время ACL_RCPT, но срабатывал такой вариант через раз.

Еще насколько я понимаю проверка на спам производится в течение активной SMTP-сессии, сильно это загружает канал и проц???

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

_adre
проходил мимо

Re: Настройка SpamAssassin через ACL

Непрочитанное сообщение _adre » 2008-11-27 23:30:01

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

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Настройка SpamAssassin через ACL

Непрочитанное сообщение lerryc » 2008-11-28 2:57:06

barut писал(а):Сейчас проверка на спам происходит через специальный роутер и транспорт, использующий spamc.
Попытался сделать автоматическую проверку через exim'овский ACL.

Код: Выделить всё

# warn message = X-Spam-Score: $spam_score ($spam_bar)
#      logwrite = "X-Spam-Score: $spam_score ($spam_bar)"
#      hosts = !+whitelist_hosts_ip : *
#      spam = spammail:true

# warn message = X-Spam-Report : $spam_report
#      hosts = !+whitelist_hosts_ip : *
#      spam = spammail:true

# warn message = ***SPAM*** $h_Subject :
#      hosts = !+whitelist_hosts_ip : *
#      spam = spammail:true

# deny message = This Message scored $spam_score spam points
#      hosts = !+whitelist_hosts_ip : *
#      condition = ${if > {$spam_score_int}{120}{1}{0}}
#      spam = spammail:true
Но такой вариант не устраивает. Проверка происходит даже на исходящую почту, это что первое не понравилось. Потом проверка идет от одного пользователя spammail.
Через spamc проверка шла для каждого отдельного пользователя (у каждого пользователя существуют отдельные настройки). Достигалось это через переменную $domain, после проверки которой определялся владелец домена (пользователь системы, которому принадлежат ящики этого домена). В ACL_DATA эту переменную использовать нельзя, как в прочем и производить проверку отправителя, находится ли он в локальных доменах.

Может кто знает как побороть это? Хочется чтобы проверка на спам производилась от каждого отдельного пользователя в правилах ACL.

P.S. пробовал запихивать домен в переменную acl_m0 во время ACL_RCPT, но срабатывал такой вариант через раз.

Еще насколько я понимаю проверка на спам производится в течение активной SMTP-сессии, сильно это загружает канал и проц???

Код: Выделить всё

 warn message = ***SPAM*** $h_Subject :
      hosts = !localhost : !+relay_from_host
### если почта принимается fetchmail извне, то так
### hosts = 127.0.0.1 : !+relay_from_host 
     set acl_m0  =    <== получить сюда user_ID, если пользователь системный, то можно просто $local_part
     spam = $acl_m0:true
но при этом спам-леарн надо запускать от каждого пользователя индивидуально
машина думать не может, машина должна ехать

barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Re: Настройка SpamAssassin через ACL

Непрочитанное сообщение barut » 2008-11-28 14:47:32

Код: Выделить всё

warn message = ***SPAM*** $h_Subject :
      hosts = !localhost : !+relay_from_host
### если почта принимается fetchmail извне, то так
### hosts = 127.0.0.1 : !+relay_from_host 
     set acl_m0  =    <== получить сюда user_ID, если пользователь системный, то можно просто $local_part
     spam = $acl_m0:true
вот как получить user_ID меня и интересует... Юзари хранятся не в базе, а в разных текстовы файлах. Досталась такая схема от DirectAdmin'a. В разделе acl_data нет доступа к переменным $local_part и $domain в том то и беда... Поэтому и задал вопрос на форуме. Может кто пути обходные знает...

То что spamassassin для каждого юзверя отдельно запускается - прихоть не моя, а DirectAdmin'a... Клиенты желают сам настраивать уровень фильтрации спама и что с ним делать. Через интерфейс DA это делается...

Тему думаю можно закрыть, потому что более грамотного способа в моем случае чем spamc думаю нет.

Сейчас больше интересует другое. Процесс фильтрации спама происходит во время SMTP сессии??? Если да, то насколько это загружает канал и проц???

lerryc
сержант
Сообщения: 191
Зарегистрирован: 2008-07-10 7:28:37
Откуда: Vladivostok

Re: Настройка SpamAssassin через ACL

Непрочитанное сообщение lerryc » 2008-11-28 16:11:44

barut писал(а): вот как получить user_ID меня и интересует... Юзари хранятся не в базе, а в разных текстовы файлах. Досталась такая схема от DirectAdmin'a. В разделе acl_data нет доступа к переменным $local_part и $domain в том то и беда... Поэтому и задал вопрос на форуме. Может кто пути обходные знает...

Сейчас больше интересует другое. Процесс фильтрации спама происходит во время SMTP сессии??? Если да, то насколько это загружает канал и проц???
была же ранее какая-то связь между local_part и user_ID
если структура файлов известна - то достать можно
доставать нужно в секции acl_check_rcpt а в секцию data передать через acl_m?

по поводу нагрузки не скажу - у меня из 4000 коннектов только 5-8 добрались до спамассина, поэтому для меня это не заметно
машина думать не может, машина должна ехать

barut
рядовой
Сообщения: 26
Зарегистрирован: 2008-09-11 13:17:10

Re: Настройка SpamAssassin через ACL

Непрочитанное сообщение barut » 2008-11-28 16:40:20

Я так и пытался, через переменные ACL это устанавливать, но не всегда прокатывало.

Судя по всему, оставлю так как есть, тем более говорят что spamc нормально отрабатывает сообщение.