Люди добрые, помогите!
Так было обрадоавлся когда настроил amavis в качестве proxy_filter на postfix'e и вот столкнулся с траблой. В общем как я понял если письмо большое (метр, два и более) и плюс ко всему оно идет долго и нудно (забит канал скажем) то amavis отпадает с тайм аутом.. :(---- отчет об ошибке ----------
Out: 220 mail.bankos.ru ESMTP Postfix 2.1.5 (Debian/GNU)
In: EHLO mx4.mail.ru
Out: 250-mail.bankos.ru
Out: 250-PIPELINING
Out: 250-SIZE 10240000
Out: 250-ETRN
Out: 250-STARTTLS
Out: 250 8BITMIME
In: MAIL FROM:<reklamaolimp@mail.ru> SIZE=5371972 BODY=8BITMIME
Out: 250 Ok
In: RCPT TO:<denis@bankos.ru>
Out: 250 Ok
In: DATA
Out: 354 End data with <CR><LF>.<CR><LF>
Out: 451 Error: queue file write error
In: QUIT
Out: 221 Bye
-------------------------------------------- mail.log--------
Jun 15 13:04:10 proxy amavis[10137]: (10137-09) ESMTP TROUBLE, ABORTING: timed out
Jun 15 13:04:10 proxy amavis[10137]: (10137-09) ESMTP: NOTICE: ABORTING the session: timed out
Jun 15 13:04:10 proxy postfix/smtpd[11059]: NOQUEUE: client=baranov-da.rmt.ru[81.13.8.170]
-----------попробую увеличить smtpd_proxy_timeout = 250s (по деволту 100s)
Или все же дело в амависе?Спасибо.
Попробуйте изменить параметр $child_timeout в amavisd.conf./usr/share/doc/amavisd-new-2.3.0/README.postfix:
...
# NOTE5: set $child_timeout (in amavisd.conf) to a shorter time than
# the Postfix parameter smtp_data_done_timeout - see rfc1047.
# The value in '-o smtp_data_done_timeout=1200' must always be larger
# (with some margin) than the value of $child_timeout in amavisd.conf
...
>Попробуйте изменить параметр $child_timeout в amavisd.conf.
>
>/usr/share/doc/amavisd-new-2.3.0/README.postfix:
>...
># NOTE5: set $child_timeout (in amavisd.conf) to a shorter time than
># the Postfix parameter smtp_data_done_timeout
>- see rfc1047.
># The value in '-o
>smtp_data_done_timeout=1200' must always be larger
># (with some margin) than
>the value of $child_timeout in amavisd.conf
>...спасибо, я так и сделал. посмотрю как будет себя вести. Скажи а у тебя также настроено? amavis + proxy_filter ?
Я все-таки думаю, что если так будет и дальше, то откажусь от proxy_filter... как считаешь?
Я пока использую smtpprox. Если почтовый трафик очень большой, то возможно имеет смысл отказаться от before-queue filter.
>Попробуйте изменить параметр $child_timeout в amavisd.conf.
>
>/usr/share/doc/amavisd-new-2.3.0/README.postfix:
>...
># NOTE5: set $child_timeout (in amavisd.conf) to a shorter time than
># the Postfix parameter smtp_data_done_timeout
>- see rfc1047.
># The value in '-o
>smtp_data_done_timeout=1200' must always be larger
># (with some margin) than
>the value of $child_timeout in amavisd.conf
>...дело вилимо в том, что постфикс начинает совать в прокси после принтия первого байта.. вместо того чтобы сперва скешировать. А раз письмо может идти долго то и amavis-прокладка отпадает по $child_timeout
может попрбовать $child_timeout уваелисть до 1200 (как и smtp_data_done_timeout) ну или на секунлд 10 меньше ?
>>Попробуйте изменить параметр $child_timeout в amavisd.conf.
>>
>>/usr/share/doc/amavisd-new-2.3.0/README.postfix:
>>...
>># NOTE5: set $child_timeout (in amavisd.conf) to a shorter time than
>># the Postfix parameter smtp_data_done_timeout
>>- see rfc1047.
>># The value in '-o
>>smtp_data_done_timeout=1200' must always be larger
>># (with some margin) than
>>the value of $child_timeout in amavisd.conf
>>...
>
>дело вилимо в том, что постфикс начинает совать в прокси после
>принтия первого байта.. вместо того чтобы сперва скешировать. А раз
>письмо может идти долго то и amavis-прокладка отпадает по $child_timeout
>
>может попрбовать $child_timeout уваелисть до 1200 (как и smtp_data_done_timeout) ну или
>на секунлд 10 меньше ?Вроде бы вот так заработло вполне нормально!! Я очень рад!
в амависе $child_timeout = 19*60 , что на 1 минуту меньше чем smtpd_data_done_timeout
>smtpd_data_done_timeout
smtp_data_done_timeout. Не путайте smtpd и smtp.
В случае before-queue filter (smtpd_proxy_filter) smtpd устанавливает соединение с proxy после получения от клиента RCPT. Далее прозрачно передает в proxy принимаемые данные от клиента (и наоборот от proxy клиенту) до "точки" , после чего ждет от него ответа в течение smtpd_proxy_timeout.
В файле /usr/share/doc/amavisd-new-2.3.0/README.postfix описана настройка postfix для работы с amavisd как с after-queue filter (content_filter). В данном случае с proxy "общается" smtp (уже после того, как письмо принято и помещено в очередь), для которого и предлагается установить параметр smtp_data_done_timeout.
спасибо, за помощь!--- master.cf ---
smtp inet n - - - - smtpd
-o smtpd_proxy_filter=127.0.0.1:10024
-o smtp_data_done_timeout=1200
^^^ - не актуально тут да?ведь по идее письмо может идти очень долго! (ну сутки подряд)
а в amavis'e есть ограничение $child_timeout. Как быть? Получается child умрет - письмо не дойдет :(
забыл: и нужен ли там
smtp inet n - - - - smtpd
---------
-o smtp_send_xforward_command=yes
----------
?
>--- master.cf ---
>smtp inet n
> - -
> -
> - smtpd
>
>-o smtpd_proxy_filter=127.0.0.1:10024
> -o
>smtp_data_done_timeout=1200
>
> ^^^ - не актуально
>тут да?
ИМХО в данном случае нет смысла в этом параметре, т.к. есть smtpd_proxy_timeout. Точно не знаю, будет ли он здесь работать.Использовать smtp_send_xforward_command=yes необязательно. Для чего это может быть нужно см.
http://www.postfix.org/XFORWARD_README.html
http://www.postfix.org/SMTPD_PROXY_README.html#protocol
Можно вопрос?Вот у меня такая ситуация:
есть
amavis (внутри антиспам и антивирус)
и еще есть kaspersky antispam (kas)пока работает так:
-------- выписка из master.cf ---------------------
smtp
-o content_filter=amavis:[127.0.0.1]:10024 <- указан amavis# вход в амавис
amavis unix - - ...# выход из амавис
127.0.0.1:10025 inet - - ...
-o content_filter=smtp:127.0.0.1:9026 <- указан kas# вход в kas
127.0.0.1:9026 inet n n n - 10 spawn
user=mailflt
argv=/usr/local/ap-mailfilter/bin/kas-pipe -c /usr/local/ap......# выход из kas
127.0.0.1:9025 inet n - n - ....
--------------------------------
поставил наоборот, чтобы сперва kas потом amavis - работает.
далее, хотел чтобы kas обрабатывался как smtpd_proxy_filter, а amavis обычно, но почему-то не получилось... (хочу чтобы спам на лету отбивался)или они оба должны быть smtpd_proxy_filter???
Спасибо!