Milter (spamassassin): Connection refused
Модераторы: Trinity admin`s, Free-lance moderator`s
Здравствуйте Stranger03.
Прошу прощения,замена владельца на spamas:spamas не помогает,
повторюсь:spamd запускается нормально,т.е. запуск с -D от
пользователя spamas без ошибок и базы подключаются,ps -xawu|grep spam - владелец,расположение как надо,запуск spamc -u spamas -e /usr/sbin/sendmail -t < xxx.eml работает,письма проверяются и проходят.
Обрщение на порт 783 проходит,spamd отвечает,
фильтр spamass-milter запускается,обращение к нему идет,в firewale: allow ip from any to any via lo0,и для порта 783 тоже.
Результат - connection refused.
Вопрос:Как проверить подключение к milterу?
-----------------------------------------------------------
Ну,думаю,ладно ... Меняю spamass-milter на milter-spamc.
Из портов,настройки минимальны (пусть только запустится),
Результат - тоже самое.Что от пользователя spamas что от root.
Dec 14 14:40:57 sendmail[58047]: iBE9evCs058047: Milter (milter-spamc): error connecting to filter: Connection refused by /var/spool/milter-spamc/socket
Dec 14 14:40:57 sendmail[58047]: iBE9evCs058047: Milter (milter-spamc): to error state
Я, наверное, не знаю какой-то простой вещи,установку которой,
благополучно обхожу.Думаю может не отрабатывает sendmail,
(хотя работает с drwebом без проблем),может sendmail надо пересобрать,а я меняю только sendmail.cf .
Владелец sendmaila root,spamd все равно,miltera - root,
Прежде чем пробовать procmail хотелось бы разобраться с milterами.
...
Опять грабли ...
Прошу прощения,замена владельца на spamas:spamas не помогает,
повторюсь:spamd запускается нормально,т.е. запуск с -D от
пользователя spamas без ошибок и базы подключаются,ps -xawu|grep spam - владелец,расположение как надо,запуск spamc -u spamas -e /usr/sbin/sendmail -t < xxx.eml работает,письма проверяются и проходят.
Обрщение на порт 783 проходит,spamd отвечает,
фильтр spamass-milter запускается,обращение к нему идет,в firewale: allow ip from any to any via lo0,и для порта 783 тоже.
Результат - connection refused.
Вопрос:Как проверить подключение к milterу?
-----------------------------------------------------------
Ну,думаю,ладно ... Меняю spamass-milter на milter-spamc.
Из портов,настройки минимальны (пусть только запустится),
Результат - тоже самое.Что от пользователя spamas что от root.
Dec 14 14:40:57 sendmail[58047]: iBE9evCs058047: Milter (milter-spamc): error connecting to filter: Connection refused by /var/spool/milter-spamc/socket
Dec 14 14:40:57 sendmail[58047]: iBE9evCs058047: Milter (milter-spamc): to error state
Я, наверное, не знаю какой-то простой вещи,установку которой,
благополучно обхожу.Думаю может не отрабатывает sendmail,
(хотя работает с drwebом без проблем),может sendmail надо пересобрать,а я меняю только sendmail.cf .
Владелец sendmaila root,spamd все равно,miltera - root,
Прежде чем пробовать procmail хотелось бы разобраться с milterами.
...
Опять грабли ...
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Ну я вообще-то всегда пересобирал конфиг через M4. Если вы ручками в конфиг добавляете строки, то могли где-то ошибиться.service писал(а):(хотя работает с drwebом без проблем),может sendmail надо пересобрать,а я меняю только sendmail.cf .
Владелец sendmaila root,spamd все равно,miltera - root,
Прежде чем пробовать procmail хотелось бы разобраться с milterами.
Здравствуйте Stranger03,
вижу только вы что-то отвечаете.
Каков механизм работы miltera?
1.sendmail соединяется с сокетом milterа ( типа connect и т.д.),
2.sendmail передает сообщение с 25 порта miltery
милтер запускает? milter-spamc (spamass-milter)
для своих проверок или нет?,
3.милтер по 783 порту обращается к spamd
(как в этом участвует spamc?)
4.spamd результат отдает milterу,тот sendmailу
так?
(spamd запущен под тем же владельцем,
что и milter,сокет и pid в home владельца.)
На счет sendmail.cf - собираю только через m4,
хотя пробовал и руками дописывать miltera.
...
вижу только вы что-то отвечаете.
Каков механизм работы miltera?
1.sendmail соединяется с сокетом milterа ( типа connect и т.д.),
2.sendmail передает сообщение с 25 порта miltery
милтер запускает? milter-spamc (spamass-milter)
для своих проверок или нет?,
3.милтер по 783 порту обращается к spamd
(как в этом участвует spamc?)
4.spamd результат отдает milterу,тот sendmailу
так?
(spamd запущен под тем же владельцем,
что и milter,сокет и pid в home владельца.)
На счет sendmail.cf - собираю только через m4,
хотя пробовал и руками дописывать miltera.
...
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Ну как бы почти так. Есть два варианта работы мильтера.service писал(а):Каков механизм работы miltera?
1.sendmail соединяется с сокетом milterа ( типа connect и т.д.),
2.sendmail передает сообщение с 25 порта miltery
милтер запускает? milter-spamc (spamass-milter)
для своих проверок или нет?,
3.милтер по 783 порту обращается к spamd
(как в этом участвует spamc?)
4.spamd результат отдает milterу,тот sendmailу
так?
1. письмо полностью принимается сендмылом, потом передается мильтеру как фильтру.
2. письмо проходит первую стадию авторизации на этапе коннект - хело и сразу передается на обработку мильтера.
если не получается все-таки завести, давайте сначала начнем. Первое, др-веб запустили, настроили, проверили, работает. Скиньте МС сендмыла, конфиг спамд, скрипт запуска спамд, конфиг мильтера и скрипт запуска мильтера. Посмотрим, что там не так.
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
sendmail передает управление милтеру несколько раз при наступлении разных событий (коннект, получение helo, получение mail from, получение каждого rcpt to, получение каждого поля header, получение пустой строки после заголовков перед телом письма, получение тела письма text'овых сообщений или каждого part из multipart сообщений, конец все сообщения).Stranger03 писал(а):Есть два варианта работы мильтера.
1. письмо полностью принимается сендмылом, потом передается мильтеру как фильтру.
2. письмо проходит первую стадию авторизации на этапе коннект - хело и сразу передается на обработку мильтера.
какие именно из callback'ов используются в каждом конкретном милтере, зависит от задачи и от реализации.
а вот и фрагмент spamass-milter.cpp:
// Notes:
//
// The libmilter for sendmail works callback-oriented, so if you have no
// experience with event-driven programming, the following may be hard for
// you to understand.
//
// The code should be reasonably thread-safe. No guarantees, though.
//
// This program roughly does the following steps:
//
// 1. register filter with libmilter & set up socket
// 2. register the callback functions defined in this file
// -- wait for mail to show up --
// 3. start spamc client
// 4. assemble mail since libmilter passes it in pieces and put
// these parts in the output pipe to spamc.
// 5. when the mail is complete, close the pipe.
// 6. read output from spamc, close input pipe and clean up PID
// 7. check for the flags affected by SpamAssassin and set/change
// them accordingly
// 8. replace the body with the one provided by SpamAssassin if the
// mail was rated spam, unless -m is specified
// 9. free all temporary data
// 10. tell sendmail to let the mail to go on (default) or be discarded
// -- wait for mail to show up -- (restart at 3)
--
/corvax
/corvax
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Это еще зависит от сроки, записанной в конфигурашке на тему вызова фильтра из почтовика. Если вы используете внешние блек-листы от спамд, то да. Хотя может вы и правы, я в такие дебри не влезал, не было надобности.corvax писал(а):sendmail передает управление милтеру несколько раз при наступлении разных событий (коннект, получение helo, получение mail from, получение каждого rcpt to, получение каждого поля header, получение пустой строки после заголовков перед телом письма, получение тела письма text'овых сообщений или каждого part из multipart сообщений, конец все сообщения).
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
не совсем понял. можно пример?Stranger03 писал(а):Это еще зависит от сроки, записанной в конфигурашке на тему вызова фильтра из почтовика.corvax писал(а):sendmail передает управление милтеру несколько раз при наступлении разных событий (коннект, получение helo, получение mail from, получение каждого rcpt to, получение каждого поля header, получение пустой строки после заголовков перед телом письма, получение тела письма text'овых сообщений или каждого part из multipart сообщений, конец все сообщения).
Stranger03 писал(а):Если вы используете внешние блек-листы от спамд, то да. Хотя может вы и правы, я в такие дебри не влезал, не было надобности.
--
/corvax
/corvax
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Когда вы указываете строку вызова фильтра типаcorvax писал(а):не совсем понял. можно пример?
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
то в данных строках можно указать, как и при каких обстоятельствах будет вызван этот самый фильтр, реакции на обстоятельства и так далее. Сейчас уже не помню точно, года два назад, когда подробно изучал синтаксис, читал где-то в доках.
- corvax
- free-lance moderator
- Сообщения: 877
- Зарегистрирован: 06 авг 2004, 17:21
- Откуда: Kiev, Ukraine
- Контактная информация:
так вот, как?Stranger03 писал(а):Когда вы указываете строку вызова фильтра типаcorvax писал(а):не совсем понял. можно пример?
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
то в данных строках можно указать, как
собственно я хотел получить пример как раз того, как можно это все указать. ибо я таких примеров не встречал и мне стало любопытноStranger03 писал(а):и при каких обстоятельствах будет вызван этот самый фильтр, реакции на обстоятельства и так далее. Сейчас уже не помню точно, года два назад, когда подробно изучал синтаксис, читал где-то в доках.
в документации к sendmail описано, что в конструкции INPUT_MAIL_FILTER можно указать имя фильтра, параметры сокета, действие при невозможности подключиться к сокету, таймауты. и все
--
/corvax
/corvax
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Если вспомню, честно попытаюсь, я напишу. Просто повторюсь, когда сам года два назад создавал свою систему и писал статью, очень подробно все изучал. Сейчас уже многое не вспомнить,corvax писал(а):собственно я хотел получить пример как раз того, как можно это все указать. ибо я таких примеров не встречал и мне стало любопытно
в документации к sendmail описано, что в конструкции INPUT_MAIL_FILTER можно указать имя фильтра, параметры сокета, действие при невозможности подключиться к сокету, таймауты. и все


Код: Выделить всё
Walter: (9:14 PM) Я знаю ответ на данную проблему, недавно сам с неделю бился.
скорее всего у автора проблемы значения ядра kern.ipc.somaxconn=32768
При таком значении перестают нормально работать unix-sokckets во FreeBSD.
Если автор уменьшит значение (я поставил kern.ipc.somaxconn=16384) я уверен всё заработает.
- Stranger03
- Сотрудник Тринити
- Сообщения: 12979
- Зарегистрирован: 14 ноя 2003, 16:25
- Откуда: СПб, Екатеринбург
- Контактная информация:
Конечно возможно, но я что-то сильно сомневаюсь. Настраивал уже штук 50 похожих систем, нигде такой проблемы не встречал. Обычно все заканчивается некорректными правами, путями, chroot-ами. И так далее.setar писал(а):Код: Выделить всё
Walter: (9:14 PM) Я знаю ответ на данную проблему, недавно сам с неделю бился. скорее всего у автора проблемы значения ядра kern.ipc.somaxconn=32768
Milter (spamassassin): Connection refused
Добрый день.
У меня похожая проблема как у автора этой темы
Установка прошла успешно, запуск spamd и spamass-milter тоже проходит без ошибок.
Но в логах сендмэйла пишет
Листинг sendmail.cf
PS.
я поставил поверх имеющегося ассассина версии 2.6
может здесь собака порылась? если да, то как это побороть.
PPS
если надо ещё какие логи пишите что надо выложу.
У меня похожая проблема как у автора этой темы

Установка прошла успешно, запуск spamd и spamass-milter тоже проходит без ошибок.
Но в логах сендмэйла пишет
- Aug 25 11:18:40 ns sendmail[7459]: NOQUEUE: connect from orb.fasty.net [195.140.176.3]
Aug 25 11:18:40 ns sendmail[7459]: j7P8IepY007459: Milter (spamassassin): open /var/spool/filter/spamass-milter failed: Connection refused by /var/spool/filter/spamass-milter
Aug 25 11:18:40 ns sendmail[7459]: j7P8IepY007459: Milter (spamassassin): error connecting to filter: Connection refused by /var/spool/filter/spamass-milter
Aug 25 11:18:40 ns sendmail[7459]: j7P8IepY007459: Milter (spamassassin): to error state
Aug 25 11:18:41 ns sendmail[7459]: j7P8IepY007459: Milter (drweb-filter): init success to negotiate
Aug 25 11:18:41 ns sendmail[7459]: j7P8IepY007459: Milter: connect to filters
Aug 25 11:18:41 ns sendmail[7459]: j7P8IepY007459: milter=drweb-filter, action=connect, continue
Aug 25 11:18:41 ns sendmail[7459]: j7P8IepY007459: milter=drweb-filter, action=helo, continue
Aug 25 11:18:41 ns sendmail[7457]: j7P8IcpY007457: from=<trohimln@fc.kiev.ua>, size=7277, class=0, nrcpts=1, msgid=<129031396.20050825111414@fc.kiev.ua>, proto=ESMTP, daemon=MTA, relay=mail.fc.kiev.ua [80.91.161.90]
Aug 25 11:18:41 ns sendmail[7457]: j7P8IcpY007457: milter=drweb-filter, action=header, continue
Aug 25 11:18:42 ns last message repeated 9 times
Aug 25 11:18:42 ns sendmail[7436]: j7P8ILpY007425: to=<lutsenko@firm.com>, delay=00:00:21, xdelay=00:00:20, mailer=smtp, pri=30630, relay=lotus.private.kiev.ua. [10.1.0.131], dsn=2.0.0, stat=Sent (Message accepted for delivery)
Листинг sendmail.cf
- # Input mail filters
O InputMailFilters=spamassassin, drweb-filter
# Milter options
O Milter.LogLevel=6
O Milter.macros.connect=b, j, _, {daemon_name}, {if_name}, {if_addr}
O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}
O Milter.macros.envfrom=i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, {mail_mailer}, {mail_host}, {mail_addr}
O Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr}
.....
MAIL FILTER DEFINITIONS
Xspamassassin, S=local:/var/run/spamass-milter, F=, T=C:15m;S:4m;R:4m;E:10m
Xdrweb-filter, S=inet:3001@localhost, F=T, T=S:5m;R:5m;E:1h
- /usr/local/sbin/spamass-milter -f -p /var/run/spamass-milter -b bad@firm.com
/usr/bin/spamd -d -u filter

PS.
я поставил поверх имеющегося ассассина версии 2.6
может здесь собака порылась? если да, то как это побороть.
PPS
если надо ещё какие логи пишите что надо выложу.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей