Антиспамовый фильтр (Sendmail + DrWeb + SpamAssassin)

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

VEK
Junior member
Сообщения: 3
Зарегистрирован: 02 ноя 2005, 12:15

Сообщение VEK » 03 ноя 2005, 12:07

2 corvax: спасибо за помощь, check_compat прикрутил, фильтрация заработала, буду тестить дальше.
Если кому-то еще интересна тема, то чтобы не наступать на грабли, не забудьте скачать с сайта corvax'а cfhead.m4 и добавить в sendmail.mc HACK(cfhead)

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 03 ноя 2005, 12:56

VEK писал(а):2 corvax: спасибо за помощь, check_compat прикрутил, фильтрация заработала, буду тестить дальше.
да что там тестить-то? ;-)
там хак простой, как угол дома
VEK писал(а):Если кому-то еще интересна тема, то чтобы не наступать на грабли, не забудьте скачать с сайта corvax'а cfhead.m4 и добавить в sendmail.mc HACK(cfhead)
упс... это я упустил из виду... у меня в sendmail.mc cfhead.m4 включается в самом начале безусловно
--
/corvax

Altair
Junior member
Сообщения: 13
Зарегистрирован: 09 ноя 2005, 19:56

Проблемы с сендмайлом

Сообщение Altair » 09 ноя 2005, 19:59

Подскажите мне плиз, в чем грабли ? Вот прописал я в sendmail.cf
 следующие строчки

# Input mail filters
O InputMailFilters=spamassassin
O InputMailFilters=drweb-scaner
№ Milter options
O Milter.LogLevel=6
O Milter.macros.connect=j, _, {daemon_name}, {if_name}, {if_addr}
O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits},
{cert_subject}, {ceO Milter.macros.envfrom=i, {auth_type},
{auth_authen}, {auth_ssf}, {auth_author}O
Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr}
O Milter.macros.eom={msg_id}


Xspamassassin, S=local:/var/run/spamass-milter.sock, F=,
T=C:15m;S:5m;R:5m;E:10m
Xdrweb-scaner, S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;E:1h
#^L


(просьба не пинать ногами, это я так скопировал, но суть не в этом)

так вот, проблема в том, что работает только ДРВЭБ, о чем видно в
логах его и в заголовках письма, если ДРВЭБ закомментировать, т.е.
убрать из конфига, то заработает Спамасасин, т.е. получаеться, что по
отдельности обе программы работают, а вот вместе нехотят, в чем грабли
?  Сендмаил 8,13,5 пересобран с требуемыми опциями типа

 APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
  APPENDDEF(`confENVDEF',`-DMAP_REGEX')

  По гуглу ничего толкового не нашел, кроме общих принципов настройки
  Спамассасина, как буд-то я первый с этим столкнулся...

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Re: Проблемы с сендмайлом

Сообщение corvax » 10 ноя 2005, 09:49

Altair писал(а):Подскажите мне плиз, в чем грабли ? Вот прописал я в sendmail.cf
и какое юное дарование умудрилось насоветовать вам править sendmail.cf, а не sendmail.mc?
Altair писал(а):  следующие строчки

# Input mail filters
O InputMailFilters=spamassassin
O InputMailFilters=drweb-scaner
№ Milter options
O Milter.LogLevel=6
O Milter.macros.connect=j, _, {daemon_name}, {if_name}, {if_addr}
O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits},
{cert_subject}, {ceO Milter.macros.envfrom=i, {auth_type},
{auth_authen}, {auth_ssf}, {auth_author}O
Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr}
O Milter.macros.eom={msg_id}


Xspamassassin, S=local:/var/run/spamass-milter.sock, F=,
T=C:15m;S:5m;R:5m;E:10m
Xdrweb-scaner, S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;E:1h
#^L


(просьба не пинать ногами, это я так скопировал, но суть не в этом)
а надо пинать, надо
Altair писал(а):так вот, проблема в том, что работает только ДРВЭБ, о чем видно в
логах его и в заголовках письма,
как настроено, так и работает
Altair писал(а):если ДРВЭБ закомментировать, т.е.
убрать из конфига, то заработает Спамасасин, т.е. получаеться, что по
отдельности обе программы работают, а вот вместе нехотят, в чем грабли
?
в значении параметра InputMailFilters
Altair писал(а):Сендмаил 8,13,5 пересобран с требуемыми опциями типа

 APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
  APPENDDEF(`confENVDEF',`-DMAP_REGEX')
если работает хотя бы один из этих милтеров, то sendmail собран с нужными опциями
Altair писал(а):   По гуглу ничего толкового не нашел, кроме общих принципов настройки
  Спамассасина, как буд-то я первый с этим столкнулся...
а необходимость настройки ручками sendmail.cf тоже гугл подсказал?!?!

после того, как надоест бороться с ветряными мельницами, надо прописать настройки обоих милтеров в sendmail.mc, перегенерить sendmail.cf и забыть об этих проблемах
--
/corvax

Altair
Junior member
Сообщения: 13
Зарегистрирован: 09 ноя 2005, 19:56

Сообщение Altair » 10 ноя 2005, 15:25

Ну чтож, спасибо за ответ, проблема решилась сама собой, надо было чтобы было прописано в sendmail.cf так
# Input mail filters
O InputMailFilters=spamassassin, drweb-scanner

теперь работает все, по поводу Вашего совета, могу сказать, что прямая правка  sendmail.cf зачастую более удобна и показательна, чем так как это рекомендует делать мануал (через sendmail.мс), к тому же добавлю, что интересно, что если в sendmail.мс прописать согласно инструкции, то верно работает только такая форма

INPUT_MAIL_FILTER(`drweb-scaner', `S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C

т.е. если мы параметры "INPUT_MAIL_FILTER" разнесем по файлу sendmail.мс в разные места, то и при конфигурировании конфигуратор один из них обязательно вырезает. Собсно говоря я из-за этого и потратил пол дня на поиски причины неработы одного из милтеров, даже сюда пришлось написать.... а Вы мне РТФМ, гугл :-)

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 10 ноя 2005, 16:17

Altair писал(а):Ну чтож, спасибо за ответ, проблема решилась сама собой, надо было чтобы было прописано в sendmail.cf так
# Input mail filters
O InputMailFilters=spamassassin, drweb-scanner
я рад за вас
Altair писал(а):теперь работает все, по поводу Вашего совета, могу сказать, что прямая правка  sendmail.cf зачастую более удобна и показательна, чем так как это рекомендует делать мануал (через sendmail.мс),
удобна и показательна? а подумать, что будет скажем при обновлении версии MTA? на основании sendmail.mc и обновленных hacks/features/mailers вы просто пересоберете sendmail.cf
а что вы будете делать со своими ручными правками конфига?
это раз
а два - для таких правок нужно понимать отчетливо, что и как описывается в sendmail.cf. что в вашем случае наблюдается не особо отчетливо

и третье - при высказывании такого рода мнения пишите жирное IMHO. это я как доктор говорю
Altair писал(а):к тому же добавлю, что интересно, что если в sendmail.мс прописать согласно инструкции, то верно работает только такая форма

INPUT_MAIL_FILTER(`drweb-scaner', `S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C

т.е. если мы параметры "INPUT_MAIL_FILTER" разнесем по файлу sendmail.мс в разные места, то и при конфигурировании конфигуратор один из них обязательно вырезает.
ничего не понял. можно примеры двух вариантов sendmail.mc и фрагменты соответствующих sendmail.cf?
Altair писал(а):Собсно говоря я из-за этого и потратил пол дня на поиски причины неработы одного из милтеров,
в вашем случае причина была очевидна. проблемные строки были рядом. мало того, одну из них вы закомментировали
Altair писал(а):даже сюда пришлось написать.... а Вы мне РТФМ, гугл :-)
да я вам сейчас вдвойне посоветую RTFM. с такими то заворотами о полезности рихтовки sendmail.cf по сравнению с sendmail.mc

в любом случае я бы хотел взглянуть на два вариант sendmail.mc и sendmail.cf
и еще - укажите версию sendmail. и еще ОС (но это желательно, а не обязательно)
--
/corvax

Altair
Junior member
Сообщения: 13
Зарегистрирован: 09 ноя 2005, 19:56

Сообщение Altair » 10 ноя 2005, 18:36

Ну вот при таком Sendmail.mc Sendmail.cf получается нерабочим

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C
define(`confINPUT_MAIL_FILTERS', `spamass-milter')                              define(`confMILTER_MACROS_CONNECT', `b, j, _, {daemon_name}, {if_name}, {if_addrdnl spamassasin                                                                 dnl drweb                                                                       INPUT_MAIL_FILTER(`drweb-scaner', `S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;
define(`confINPUT_MAIL_FILTERS', `drweb-scaner')                                define(`confMILTER_LOG_LEVEL', `6')
dnl Uncomment to allow relaying based on your MX records.                      

А при таком работает

INPUT_MAIL_FILTER(`drweb-scaner', `S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C
dnl define(`confINPUT_MAIL_FILTERS', `spamass-milter')                          define(`confMILTER_MACROS_CONNECT', `b, j, _, {daemon_name}, {if_name}, {if_addrdnl spamassasin                                                                
define(`confMILTER_LOG_LEVEL', `6')      

в Sendmail.cf разница лишь в неработает

# Input mail filters                                          
O InputMailFilters=drweb-scaner

и работает

# Input mail filters                                                          
O InputMailFilters=drweb-scaner, spamassassin    

т.е. разница всего лишь в записи  spamassassin
мне получилось удобнее ее найти путем прямого просмотра Sendmail.cf
По поводу рихтовок Sendmail.cf, то ессно я высказал свое ИМХО, т.к. если придумана была схема через Sendmail.мс, значит это кому-то надо :-)
Да Sendmail 8,13,5 Фря 5,4

Вы мне лучше подскажите конкретно, почему ряд спам-писем с таким диагнозом пролетает мимо, пример, с таким проходит :-(

X-Spam-Flag: YES
X-Spam-Status: Yes, score=17.5 required=5.0 tests=BAYES_99,HELO_DYNAMIC_HCC,
       HELO_DYNAMIC_IPADDR2,HELO_DYNAMIC_SPLIT_IP,HTML_30_40,HTML_MESSAGE,
       RCVD_IN_SORBS_DUL,RCVD_NUMERIC_HELO autolearn=no version=3.1.0

а с таким нет :-)


X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on primetime.com.ua
X-Spam-Level: ************
X-Spam-Status: Yes, score=12.6 required=5.0 tests=BIZ_TLD,MSGID_DOLLARS,
       RATWARE_MS_HASH,RATWARE_OUTLOOK_NONAME,UNPARSEABLE_RELAY,
       URIBL_JP_SURBL,URIBL_OB_SURBL autolearn=no version=3.1.0
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------=_43727A2E.903CDC38"

т.е. первое письмо определяеться как спам и тем не менее доставлено юзеру, второе идет туда, куда ему и надо, ко мне на контроль, на первый взгляд сразу видно отсутствие в первом "неправильном" письме строчек
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on primetime.com.ua
X-Spam-Level: ************
что это ? система неуспевает обрабатывать ? Дык вроде П3 1Ггц 512 Озу да и загрузка редко дорастает до 1,00, или быть может при обучении топика ошибочно были скормлены спамовые письма как НАМ (неспамовые) ?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 10 ноя 2005, 18:49

Altair писал(а):Ну вот при таком Sendmail.mc Sendmail.cf получается нерабочим

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C
define(`confINPUT_MAIL_FILTERS', `spamass-milter')                              define(`confMILTER_MACROS_CONNECT', `b, j, _, {daemon_name}, {if_name}, {if_addrdnl spamassasin                                                                 dnl drweb                                                                       INPUT_MAIL_FILTER(`drweb-scaner', `S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;
define(`confINPUT_MAIL_FILTERS', `drweb-scaner')                                define(`confMILTER_LOG_LEVEL', `6')
dnl Uncomment to allow relaying based on your MX records.
и что в этой каше можно понять? используйте тег code
и руками нефиг два раза дифайнить confINPUT_MAIL_FILTERS
ясен пень, что при таком синтаксисе sendmail.mc получится криво работающий sendmail.cf
Altair писал(а):А при таком работает

INPUT_MAIL_FILTER(`drweb-scaner', `S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C
dnl define(`confINPUT_MAIL_FILTERS', `spamass-milter')                          define(`confMILTER_MACROS_CONNECT', `b, j, _, {daemon_name}, {if_name}, {if_addrdnl spamassasin                                                                
define(`confMILTER_LOG_LEVEL', `6')
ну так это и есть корректный синтаксис подключения милтеров
и для чего при таком синтаксисе править sendmail.cf своими ручками?
Altair писал(а):в Sendmail.cf разница лишь в неработает

# Input mail filters                                          
O InputMailFilters=drweb-scaner

и работает

# Input mail filters                                                          
O InputMailFilters=drweb-scaner, spamassassin    

т.е. разница всего лишь в записи  spamassassin
мне получилось удобнее ее найти путем прямого просмотра Sendmail.cf
да смотрите в него сколько угодно. только вот править его потом не следует ручками. тем более, если не конца осознаете подследствий тех или иных правок
Altair писал(а):По поводу рихтовок Sendmail.cf, то ессно я высказал свое ИМХО, т.к. если придумана была схема через Sendmail.мс, значит это кому-то надо :-)
вам не приходилось поддерживать несколько хостов (хотя бы пяток) с ручными правками sendmail.cf, при этом переводить их на новую версию MTA?
Altair писал(а):Да Sendmail 8,13,5 Фря 5,4
что, прям в номерах версий запятые? :)
Altair писал(а):Вы мне лучше подскажите конкретно, почему ряд спам-писем с таким диагнозом пролетает мимо,
мимо кого или чего?
Altair писал(а):пример, с таким проходит :-(

X-Spam-Flag: YES
X-Spam-Status: Yes, score=17.5 required=5.0 tests=BAYES_99,HELO_DYNAMIC_HCC,
       HELO_DYNAMIC_IPADDR2,HELO_DYNAMIC_SPLIT_IP,HTML_30_40,HTML_MESSAGE,
       RCVD_IN_SORBS_DUL,RCVD_NUMERIC_HELO autolearn=no version=3.1.0
а это ваш spamd/spamass-milter заголовки добавил? проверьте по maillog
Altair писал(а):а с таким нет :-)


X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on primetime.com.ua
X-Spam-Level: ************
X-Spam-Status: Yes, score=12.6 required=5.0 tests=BIZ_TLD,MSGID_DOLLARS,
       RATWARE_MS_HASH,RATWARE_OUTLOOK_NONAME,UNPARSEABLE_RELAY,
       URIBL_JP_SURBL,URIBL_OB_SURBL autolearn=no version=3.1.0
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------=_43727A2E.903CDC38"

т.е. первое письмо определяеться как спам и тем не менее доставлено юзеру, второе идет туда, куда ему и надо, ко мне на контроль, на первый взгляд сразу видно отсутствие в первом "неправильном" письме строчек
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on primetime.com.ua
X-Spam-Level: ************
что это ?
читайте maillog
Altair писал(а):система неуспевает обрабатывать ? Дык вроде П3 1Ггц 512 Озу да и загрузка редко дорастает до 1,00, или быть может при обучении топика ошибочно были скормлены спамовые письма как НАМ (неспамовые) ?
при чем тут обучение, если общая оценка в обоих случаях высокая?
--
/corvax

Аватара пользователя
apelsin
Advanced member
Сообщения: 470
Зарегистрирован: 09 окт 2004, 12:32

Сообщение apelsin » 10 ноя 2005, 19:11

AFAIK, в SA 3.1.0 по дефолту  чужие заголовкие типа X-Spam-*  должны мильтером стираться

2 Altair: письма по дефолту все доходят, не важно спам или не спам.  спам-ассасин  письмами кроме как классификации спам/не-спам ничего не делаает.  кому, куда и что доставлать определает конфиг сендмыла. А вот что происходит на вашем серваке с письмом помеченным  как спам, из ваших данных неясно (конфиг объявите) .и еще полный заголовок письма не помешает.

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 10 ноя 2005, 19:22

apelsin писал(а):AFAIK, в SA 3.1.0 по дефолту  чужие заголовкие типа X-Spam-*  должны мильтером стираться
это если письмо дошло до spamass-milter'а
у автора вопроса в параметрах подключения милтера указано F=, т. е. письмо будет обработано, даже если милтер недоступен. таким образом, надо смотреть maillog, чтобы увидеть, обрабатывалось ли письмо spamass-milter'ом данного хоста.
apelsin писал(а):2 Altair: письма по дефолту все доходят, не важно спам или не спам.  спам-ассасин  письмами кроме как классификации спам/не-спам ничего не делаает.  кому, куда и что доставлать определает конфиг сендмыла. А вот что происходит на вашем серваке с письмом помеченным  как спам, из ваших данных неясно (конфиг объявите) .и еще полный заголовок письма не помешает.
да наверняка у него или -b или -B юзается в параметрах милтера

а на счет формулировок вопросов - иногда так грустно становится, что хоть землю кусай...
--
/corvax

Altair
Junior member
Сообщения: 13
Зарегистрирован: 09 ноя 2005, 19:56

Сообщение Altair » 10 ноя 2005, 19:33

А как же строчка в запуске милтера ?
daemon /usr/local/sbin/spamass-milter -f -p /var/run/spamass-milter.sock -b мойадрес@bla.com.ua -r 5

т.е. я так понимаю, что в конфиге спамасасина есть указание
required_score 5.0
это значит, что все что при анализе имеет сумму баллов выше 5 считается спамом, а в конфиге милтера указано, что все что признано спамом (т.е. более 5), отправлять на мой адрес... или я не прав ?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 10 ноя 2005, 19:38

Altair писал(а):А как же строчка в запуске милтера ?
daemon /usr/local/sbin/spamass-milter -f -p /var/run/spamass-milter.sock -b мойадрес@bla.com.ua -r 5

т.е. я так понимаю, что в конфиге спамасасина есть указание
required_score 5.0
это значит, что все что при анализе имеет сумму баллов выше 5 считается спамом, а в конфиге милтера указано, что все что признано спамом (т.е. более 5), отправлять на мой адрес... или я не прав ?
повторяю для невнимательных:
spamass-milter мог не обработать письмо
а это могли быть заголовки чужие

вы в maillog смотрели? sendmail передавал это письмо на обработку spamass-milter'у?

и еще - надо поднял уровень логов и sendmail'а и милтера до 14
--
/corvax

Altair
Junior member
Сообщения: 13
Зарегистрирован: 09 ноя 2005, 19:56

Сообщение Altair » 10 ноя 2005, 19:45

у автора вопроса в параметрах подключения милтера указано F=, т. е. письмо будет обработано, даже если милтер недоступен. таким образом, надо смотреть maillog, чтобы увидеть, обрабатывалось ли письмо spamass-milter'ом данного хоста.
А если поставить F=T, то что тогда будет ? Письмо будет ждать когда милтер освободиться ? В логе по этому поводу есть следующее

Milter (spamassassin): timeout before data read
Milter (spamassassin): to error state


Че делать ?

Аватара пользователя
corvax
free-lance moderator
Сообщения: 877
Зарегистрирован: 06 авг 2004, 17:21
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение corvax » 10 ноя 2005, 19:54

Altair писал(а):
у автора вопроса в параметрах подключения милтера указано F=, т. е. письмо будет обработано, даже если милтер недоступен. таким образом, надо смотреть maillog, чтобы увидеть, обрабатывалось ли письмо spamass-milter'ом данного хоста.
А если поставить F=T, то что тогда будет ? Письмо будет ждать когда милтер освободиться ?
вычитывание доки вслух с выражением - это уже за деньги
Altair писал(а):В логе по этому поводу есть следующее

Milter (spamassassin): timeout before data read
Milter (spamassassin): to error state
что и требовалось доказать
Altair писал(а):Че делать ?
http://www.google.com/search?as_q=Milte ... itesearch=
--
/corvax

Altair
Junior member
Сообщения: 13
Зарегистрирован: 09 ноя 2005, 19:56

Сообщение Altair » 10 ноя 2005, 20:35

вычитывание доки вслух с выражением - это уже за деньги
Люблю я советы "старших товарищей", нет чтоб сказать ошибка здесь и здесь, а только достаточно высокомерно
в значении параметра InputMailFilters
Ну да ладно, так стоит пробовать ставить опцию Т=С ?

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»