LINUX.ORG.RU
ФорумAdmin

sendmail- длительный отклик удалённому клиенту.


0

1

Здравствуйте. Имею sendmail-8.14.6, установленный из исходников. Один из удалённых почтовых клиентов, отправляя письма в мой адрес, жалуется на большое время соединения для передачи сообщений, до 3-4 мин. Часть моего sendmail.conf-

# open connection cache timeout
O ConnectionCacheTimeout=10m
..
# timeouts (many of these)
#O Timeout.initial=5m
O Timeout.connect=1m
#O Timeout.aconnect=0s
O Timeout.iconnect=15s
O Timeout.helo=2m
O Timeout.mail=1m
O Timeout.rcpt=1m
O Timeout.datainit=1m
O Timeout.datablock=1m
O Timeout.datafinal=1m
O Timeout.rset=1m
O Timeout.quit=1m
O Timeout.misc=1m
O Timeout.command=1m
#O Timeout.ident=5s
#O Timeout.fileopen=60s
#O Timeout.control=2m
O Timeout.queuereturn=5d
#O Timeout.queuereturn.normal=5d
#O Timeout.queuereturn.urgent=2d
#O Timeout.queuereturn.non-urgent=7d
#O Timeout.queuereturn.dsn=5d
O Timeout.queuewarn=4h
#O Timeout.queuewarn.normal=4h
#O Timeout.queuewarn.urgent=1h
#O Timeout.queuewarn.non-urgent=12h
#O Timeout.queuewarn.dsn=4h
#O Timeout.hoststatus=30m
#O Timeout.resolver.retrans=5s
#O Timeout.resolver.retrans.first=5s
#O Timeout.resolver.retrans.normal=5s
#O Timeout.resolver.retry=4
#O Timeout.resolver.retry.first=4
#O Timeout.resolver.retry.normal=4
#O Timeout.lhlo=2m
#O Timeout.auth=10m
#O Timeout.starttls=1h
..
Какие будут рекомендации для уменьшения времени ожидания? Спасибо.


Один из

Искать проблему на стороне клиента.

thesis ★★★★★
()
Ответ на: комментарий от hizel
http://acme.com/mail_filtering/sendmail_config.html

В обычной сделке SMTP, если клиент подключается, то сервер посылает обратно
"220" приветственное сообщение, а клиент посылает свою команду HELO. Некоторые
спам-программы, однако, не ждут приветственное сообщение. Они просто посылают
свои команды сразу, без прослушивания.

Greet_pause функция распознает это хулиганское поведение, останавливаясь на
короткое время перед отправкой "220" приветственного сообщения. Если никаких
команд не будет получено в течении этой паузы, то связь будет отмечена как
плохая и всё,- исходящее от неё игнорируется.

Временной интервал указывается в миллисекундах,- 5000 миллисек. = 5 сек.

FEATURE(`greet_pause',5000)dnl

Отключение использования этой функции не привело к улучшению.

bsm
() автор топика

В каком именно месте возникает пауза, если отправлять письмо от клиента с помощью telnet?

Если клиент не достаточно квалифицирован и не знает smtp-протокол, сделайте tcpdump его сессии и посмотрите сами. Может просто большие потери пакетов.

mky ★★★★★
()
Ответ на: комментарий от mky

сделайте tcpdump его сессии и посмотрите сами.

В данном случае удобнее может оказаться что-то вроде
define(`confLOG_LEVEL',`20')

AS ★★★★★
()

Какие будут рекомендации для уменьшения времени ожидания ?

Можно в район IDENT посмотреть: define(`confTO_IDENT',`0')
Как раз где-то может быть, где-то не быть.

Отключение использования этой функции не привело к улучшению.

А 5 сек. для greet_pause - это вполне нормально. Можно и больше делать, нельзя превышать 60 сек. кажется.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от mky

Клиент отправляет мне почту и до момента получения им 220 сообщения от моего SMPT проходит более 3 мин.

bsm
() автор топика
Ответ на: комментарий от bsm

Клиент отправляет мне почту и до момента получения им 220 сообщения от моего SMPT проходит более 3 мин.

В это время происходит много событий. Вот mky и предлагает понять, в каком именно месте задержка.

AS ★★★★★
()
Ответ на: комментарий от AS
Можно в район IDENT посмотреть: define(`confTO_IDENT',`0')

Я пробовал это значение параметра, у меня по умолчанию 5 сек. Лучше не стало.

bsm
() автор топика
Ответ на: комментарий от bsm

Я пробовал это значение параметра, у меня по умолчанию 5 сек. Лучше не стало.

Значит, пора переставать угадывать и надо смотреть обмен. Уровень лога побольше, и смотреть, что будет в maillog. Если, всё равно, понятно не будет, тогда уже tcpdump.

AS ★★★★★
()
Ответ на: комментарий от AS
 сделайте tcpdump его сессии и посмотрите сами.

В данном случае удобнее может оказаться что-то вроде
define(`confLOG_LEVEL',`20')

Сейчас попробую.

bsm
() автор топика
Ответ на: комментарий от AS
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 220 mydomain.ua ESMTP Sendmail 8.14.6/8.14.6; Mon, 20 May 2013 16:50:45 +0300 NO UCE C=UA L=CK
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: <-- EHLO symmetron.com.ua
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-mydomain.ua Hello golovpostach.kiev.ua [62.80.174.34], pleased to meet you
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-ENHANCEDSTATUSCODES
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-PIPELINING
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-8BITMIME
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-SIZE 24000000
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-DSN
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-ETRN
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250-DELIVERBY
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250 HELP
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: <-- MAIL From:<bvn@symmetron.ua> SIZE=6151
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250 2.1.0 <bvn@symmetron.ua>... Sender ok
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: <-- RCPT To:<bsm@mydomain.ua>
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 250 2.1.5 <bsm@mydomain.ua>... Recipient ok
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: <-- DATA
May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 354 Enter mail, end with "." on a line by itself
May 20 16:50:51 maestro sendmail[5820]: r4KDlHRv005820: from=<bvn@symmetron.ua>, size=5985, class=0, nrcpts=1, msgid=<E5B5397FB7014098926F3AD4EBE3051D@Butjko>, proto=ESMTP, daemon=MTA, relay=golovpostach.kiev.ua [62.80.174.34]
May 20 16:50:52 maestro drweb-smf[5156]: [r4KDlHRv005820]: scan: the message(drweb.tmp.apVI77) sent by bvn@symmetron.ua to bsm@mydomain.ua is passed
May 20 16:50:52 maestro drweb-smf[5156]: [r4KDlHRv005820]: processing message from bvn@symmetron.ua is over
May 20 16:50:56 maestro sendmail[5820]: r4KDlHRv005820: --- 250 2.0.0 r4KDlHRv005820 Message accepted for delivery
May 20 16:50:56 maestro sendmail[5820]: r4KDlHRw005820: <-- QUIT
May 20 16:50:56 maestro sendmail[5820]: r4KDlHRw005820: --- 221 2.0.0 mydomain.ua closing connection
May 20 16:50:56 maestro sendmail[5896]: r4KDlUJK005896: --- 220 mydomain.ua ESMTP Sendmail 8.14.6/8.14.6; Mon, 20 May 2013 16:50:56 +0300 NO UCE C=UA L=CK
May 20 16:50:56 maestro sendmail[5896]: r4KDlUJK005896: --- 421 4.4.1 mydomain.ua Lost input channel from fallback.cl.maillist.ru [89.108.99.173]
May 20 16:50:56 maestro sendmail[5896]: r4KDlUJK005896: lost input channel from fallback.cl.maillist.ru [89.108.99.173] to MTA after startup
May 20 16:50:56 maestro sendmail[5896]: r4KDlUJK005896: fallback.cl.maillist.ru [89.108.99.173] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
May 20 16:50:56 maestro sendmail[7059]: r4KDlHRv005820: to=<bsm@mydomain.ua>, delay=00:00:06, xdelay=00:00:00, mailer=local, pri=36502, dsn=2.0.0, stat=Sent
May 20 16:50:56 maestro sendmail[7059]: r4KDlHRv005820: done; delay=00:00:06, ntries=1
bsm
() автор топика
Ответ на: комментарий от bsm

Ну и ? Для сообщения r4KDlHRv005820 на всё про всё ушло 6 секунд. Никаких трёх минут тут нет. А вот что касается drweb-smf, может быть он тормозит на больших письмах ? В общем, надо ждать ситуацию, когда будет долгая обработка.

AS ★★★★★
()
Ответ на: комментарий от AS

Отправитель утверждает, что с момента начала отправки сообщения до получения

May 20 16:50:50 maestro sendmail[5820]: r4KDlHRv005820: --- 220 mydomain.ua ESMTP Sendmail 8.14.6/8.14.6; Mon, 20 May 2013 16:50:45 +0300 NO UCE C=UA L=CK
у него проходит до 3 мин 20 сек.

bsm
() автор топика
Ответ на: комментарий от bsm

Отправитель утверждает, что с момента начала отправки сообщения до получения

Интересно... Тогда только tcpdump-ом его слова проверять. Точнее, можно в фильтре в вызов connect запись в лог сделать, но это надо фильтр доустанавливать, который такое позволяет. Не знаю, может ли drweb-smf. Вообще, я mailfromd использую, он все мои потребности перекрывает, кроме вот drweb, но я и использую clamav.

AS ★★★★★
()
Ответ на: комментарий от AS

tcpdump - администратор удалённого узла молчит. А т.к. у меня эта проблема лишь с ним, то ожидаю его ответа.

Вообще, я mailfromd использую, он все мои потребности перекрывает, кроме вот drweb, но я и использую clamav.
У меня связка- spamassassin & drweb & фильтры в sendmail. Считаю очень эффективно.

bsm
() автор топика
Ответ на: комментарий от bsm

У меня связка- spamassassin & drweb & фильтры в sendmail. Считаю очень эффективно.

mailfromd, фактически, фильтр-мультиплексор. Он сам может и spamassassin спросить, и spamd, и clamav. И, зажется, другой фильтр. То есть, к самому sendmail достаточно подключить mailfromd, а всё остальное - через mailfromd с кучей условий (конфиг - сам по себе скрипт с возможностью чёрта лысого нагородить, даже поддержка самопиных функций реализована). Ну и вот на каждый чих можно что-нибудь в лог вывести, что отдельно удобно.

Что фильтр один и от него всё сразу зависит - узкое место, конечно, но работает стабильно достаточно, а вызвать тот же spamassassin по произвольному условию, а не всегда, достаточно полезно.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от AS
mailfromd, фактически, фильтр-мультиплексор.

Спасибо. Попробую.

bsm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.