[Exim-users] System filter: failed to read pipe

112 views
Skip to first unread message

Mikhail Golub

unread,
Feb 16, 2017, 3:51:17 AM2/16/17
to Exim MTA на русском
Всем привет.

Прошу помощи зала ...

Есть Exim 4.88 #2 (FreeBSD 11.0)
В конфиге подключен system filter:
system_filter = /usr/local/etc/exim/system.filter
system_filter_user = mailnull
system_filter_pipe_transport = filter_pipe

filter_pipe:
driver = pipe
disable_logging = true
ignore_status = true


/usr/local/etc/exim/system.filter:
if first_delivery and not error_message
then
unseen pipe "/usr/local/bin/perl /usr/local/etc/exim/filter.pl
$message_id $sender_address $recipients $h_subject:"
endif

Перловый скрипт по tcp подключается к другому хосту и передает туда
параметры.
ignore_status добавлял чтобы не зависимо от доступности удаленного
хоста, куда коннектится перловый скрипт, небыло сбоя.

Но вот сегодня с какого-то перепугу при отправке письма на большое
количество получателей сообщения начали замораживаться :(
адрес_получателя: failed to read pipe from transport process 60176 for
transport smtp: required size=2816 > remaining size=2636 and
unfinished=false
и т.д. порядка 50 получателей.

Подскажите, плиз, что еще добавить в "filter_pipe", чтобы сообщения
доставлялись по назначению в любом случае, игнорировались все ошибки.

P.S. Вчера обновил Exim до вчерашнего обновления из порта FreeBSD.

--
Mikhail Golub

_______________________________________________
Exim-users mailing list
Exim-...@mailground.net
http://mailground.net/mailman/listinfo/exim-users

Le...@lena.kiev.ua

unread,
Feb 16, 2017, 4:06:28 AM2/16/17
to Exim MTA на русском
Можно направлять на pipe не системным фильтром, а роутером.

Mikhail Golub

unread,
Feb 16, 2017, 4:11:11 AM2/16/17
to exim-...@mailground.net
16.02.2017 11:05, Le...@lena.kiev.ua пишет:

> Можно направлять на pipe не системным фильтром, а роутером.

Я не так давно отказался от обработки через acl (не роутера, правда) в
пользу системного фильтра. :)
Да, наверное переделаю, так как нельзя исключить из фильтра определенные
адреса, домены.

А причина такой ошибки в чем может быть?
Пару месяцев, наверное, system filter использовался и проблем не вызывал.

--
Mikhail Golub

Mikhail Golub

unread,
Feb 16, 2017, 5:52:48 AM2/16/17
to exim-...@mailground.net
Было два случая заморозки сообщения. И оба сегодня с разницей в минут 15.
В обоих случаях доставка была на *.mail.protection.outlook.com
Используется TLS.

Нашел в Инете только такое упоминание.
https://lists.exim.org/lurker/message/20140928.141710.fc9eacc5.el.html

Через минут 5 после заморозки сообщения форсирование отправки помогло -
сообщение ушло без проблем.

Предложение перейти на использование роутера не подходит по причине,
из-за которой я в свое время начал использовать system filter - при
использовании роутера в pipe запускается такое же количество сообщений,
как и получателей письма.
А надо один раз отправить в pipe - это как раз system filter.


16.02.2017 10:50, Mikhail Golub пишет:

Le...@lena.kiev.ua

unread,
Feb 16, 2017, 5:55:02 AM2/16/17
to Exim MTA на русском
> Есть Exim 4.88 #2 (FreeBSD 11.0)

> Но вот сегодня с какого-то перепугу при отправке письма на

> большое количество получателей сообщения начали
> замораживаться :(
> адрес_получателя: failed to read pipe from transport process
> 60176 for transport smtp: required size=2816 > remaining
> size=2636 and unfinished=false
> и т.д. порядка 50 получателей.

> Вчера обновил Exim до вчерашнего обновления из порта
> FreeBSD.

Попробуйте одно из трех:

1. Откатиться до 4.87.

2. В начале конфига
chunking_advertise_hosts =
и в каждом транспорте smtp
hosts_try_chunking =

3. Скомпилировать 4.89_RC*:
скачать .bz2 с https://ftp.exim.org/pub/exim/exim4/test/
cd /usr/ports/mail/exim; make clean extract && cd work
tar xof скачанный.bz2
переименовать директорию exim-4.89_RC5 в exim-4.89
cd ..
в Makefile исправить 4.88 на 4.89
в files заменить файл на http://lena.kiev.ua/patch-pass-fd-to-tcpwrappers
cd /usr/ports/mail/exim; make all deinstall reinstall clean

Mikhail Golub

unread,
Feb 16, 2017, 6:12:21 AM2/16/17
to exim-...@mailground.net
16.02.2017 12:54, Le...@lena.kiev.ua пишет:

Поскольку я не знаю, как повторить сбой (который был только сегодня и
только два раза и практически подряд), то ограничусь вторым вариантом.
"chunking_advertise_hosts" - прописано (рассылку читаю, да и были
какие-то грабли, не помню).
А вот в транспортах небыло "hosts_try_chunking". Добавил.

Остановлюсь пока на этом варианте.
1 и 3 не буду применять, если ошибка повторяться не будет.

Спасибо за помощь.


--
Mikhail Golub

Mikhail Golub

unread,
Feb 16, 2017, 6:25:26 AM2/16/17
to exim-...@mailground.net
16.02.2017 13:11, Mikhail Golub пишет:

> 16.02.2017 12:54, Le...@lena.kiev.ua пишет:
>
> Поскольку я не знаю, как повторить сбой (который был только сегодня и
> только два раза и практически подряд), то ограничусь вторым вариантом.
> "chunking_advertise_hosts" - прописано (рассылку читаю, да и были
> какие-то грабли, не помню).
> А вот в транспортах небыло "hosts_try_chunking". Добавил.
>
> Остановлюсь пока на этом варианте.
> 1 и 3 не буду применять, если ошибка повторяться не будет.
>
> Спасибо за помощь.

Накаркал :)
Ошибка повторилась.
Письмо с локального Exchange принимается Exim-ом и передается в облако
Office365.

2017-02-16 13:17:10 Received from *@* H=(*) [10.*.*.*] P=esmtps S=609616
id=4474e256703b40a5990ab1821e4847de@* T="тема"
2017-02-16 13:17:10 |/usr/local/bin/perl /usr/local/etc/exim/my_arc.pl
$message_id $sender_address $recipients $h_subject: <system-filter>:
filter_pipe transport succeeded
2017-02-16 13:17:10 system-filter: children all complete
2017-02-16 13:17:14 *@*.mail.onmicrosoft.com R=dnslookup T=remote_smtp
defer (0) H=*-mail-onmicrosoft-com.mail.protection.outlook.com
[213.199.154.106]: failed to read pipe from transport process 1669 for
transport smtp: required size=2816 > remaining size=2786 and
unfinished=false

Получается, что не в системном фильтре дело?

Le...@lena.kiev.ua

unread,
Feb 16, 2017, 6:57:48 AM2/16/17
to Exim MTA на русском
Мне кажется, что этот лог имеет смысл отправить в англоязычную exim-users
https://lists.exim.org/mailman/listinfo/exim-users

Mikhail Golub

unread,
Feb 16, 2017, 7:05:43 AM2/16/17
to exim-...@mailground.net
16.02.2017 13:56, Le...@lena.kiev.ua пишет:

> Мне кажется, что этот лог имеет смысл отправить в англоязычную exim-users
> https://lists.exim.org/mailman/listinfo/exim-users

Пока перешел к третьему варианту - "Скомпилировать 4.89_RC*"

--
Mikhail Golub

Mikhail Golub

unread,
Feb 17, 2017, 7:43:23 AM2/17/17
to exim-...@mailground.net
16.02.2017 14:04, Mikhail Golub пишет:

> 16.02.2017 13:56, Le...@lena.kiev.ua пишет:
>> Мне кажется, что этот лог имеет смысл отправить в англоязычную exim-users
>> https://lists.exim.org/mailman/listinfo/exim-users
>
> Пока перешел к третьему варианту - "Скомпилировать 4.89_RC*"
>

Не помогло :(
Пол дня тишина - думал что решено. Нет ... :(

Исходящее письмо. 40 получателей на один домен в облаке Office 365
(*onmicrosoft-com.mail.protection.outlook.com).
30 сообщений "T=remote_smtp defer (0)" и остальные - "T=remote_smtp
defer (-1)".
"failed to read pipe from transport process 95416 for transport smtp:

required size=2816 > remaining size=2786 and unfinished=false"

Значит 4.89 не спасает.

Mikhail Golub

unread,
Feb 20, 2017, 9:33:39 AM2/20/17
to exim-...@mailground.net
17.02.2017 14:42, Mikhail Golub пишет:

> 16.02.2017 14:04, Mikhail Golub пишет:
>> 16.02.2017 13:56, Le...@lena.kiev.ua пишет:
>>> Мне кажется, что этот лог имеет смысл отправить в англоязычную
>>> exim-users
>>> https://lists.exim.org/mailman/listinfo/exim-users
>>
>> Пока перешел к третьему варианту - "Скомпилировать 4.89_RC*"
>>
>
> Не помогло :(
> Пол дня тишина - думал что решено. Нет ... :(
>
> Исходящее письмо. 40 получателей на один домен в облаке Office 365
> (*onmicrosoft-com.mail.protection.outlook.com).
> 30 сообщений "T=remote_smtp defer (0)" и остальные - "T=remote_smtp
> defer (-1)".
> "failed to read pipe from transport process 95416 for transport smtp:
> required size=2816 > remaining size=2786 and unfinished=false"
>
> Значит 4.89 не спасает.

Вернулся на 4.88 #2

Ошибки даже при доставке на локальный Exchange.
smtp transport process returned non-zero status 0x0100: exit code 1
failed to read pipe from transport process 9515 for transport smtp:
required size=2074 > remaining size=80 and unfinished=false

Системный фильтр отключал - не помогло. Не в нем дело.

Что еще не так в транспортах smtp? :(

exchange_transport:
driver = smtp
hosts = такой-то
port = такой-то
hosts_try_chunking =
tls_try_verify_hosts = :
tls_certificate = /usr/local/etc/exim/cert/host.cer
tls_privatekey = /usr/local/etc/exim/cert/host.key
tls_require_ciphers =
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

Сообщение замораживается.
Если "пнуть" (Exim -M id) - письмо размораживается и доставляется
(иногда снова замораживается, но с n-ой попытки все же доставляется).
TLS отключать не хочется.

P.S. Что изменилось? - в день, когда начались проблемы, обновлялся exim
до "4.88 #2" и начался довольно интенсивный почтовый обмен через Exim
между локальным и облачным Exchange.

Alexander Titaev

unread,
Feb 20, 2017, 10:45:08 AM2/20/17
to Exim MTA на русском
Здравствуйте, Mikhail.

Вы писали 20 февраля 2017 г., 22:32:40:

> Что еще не так в транспортах smtp? :(

> exchange_transport:
> driver = smtp
> hosts = такой-то
> port = такой-то
> hosts_try_chunking =
> tls_try_verify_hosts = :
> tls_certificate = /usr/local/etc/exim/cert/host.cer
> tls_privatekey = /usr/local/etc/exim/cert/host.key
> tls_require_ciphers =
> ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

упростить до предела - отломать tls


--
С уважением,
Alexander mailto:t...@irk.ru

Le...@lena.kiev.ua

unread,
Feb 20, 2017, 11:13:08 AM2/20/17
to Exim MTA на русском
> упростить до предела - отломать tls

Для начала tls_require_ciphers

Mikhail Golub

unread,
Feb 20, 2017, 1:13:18 PM2/20/17
to exim-...@mailground.net
20.02.2017 18:12, Le...@lena.kiev.ua пишет:

>> упростить до предела - отломать tls
>
> Для начала tls_require_ciphers

Убрал вообще (и клиент и сервер).
Теперь класс упал с "А" на "В-" на https://www.htbridge.com/ssl/
Но если сбоить перестанет, то затем можно поднастроить этот параметр.

отломать tls - даже не рассматривается ... :)

На одном из сообщений, что было заморожено, запустил доставку с дебагом
(exim -d -M msg_id).
К SSL у Exim вопросов нет:
...
SMTP>> STARTTLS
cmd buf flush 10 bytes
read response data: size=29
SMTP<< 220 2.0.0 SMTP server ready
openssl option, adding from 1100000: 800 (dont_insert_empty_fragments
+no_sslv2 +no_sslv3)
openssl option, adding from 1100800: 1000000 (no_sslv2 +no_sslv3)
openssl option, adding from 1100800: 2000000 (no_sslv3)
setting SSL CTX options: 0x3100800
Diffie-Hellman initialized from default with 2048-bit prime
tls_certificate file /usr/local/etc/exim/cert/host.cer
tls_privatekey file /usr/local/etc/exim/cert/host.key
Initialized TLS
required ciphers:

ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

10.0.1.1 in tls_verify_hosts? no (option unset)
10.0.1.1 in tls_try_verify_hosts? no (end of list)
Calling SSL_connect
SSL info: before/connect initialization
SSL info: before/connect initialization
SSL info: SSLv2/v3 write client hello A
SSL info: SSLv3 read server hello A
SSL info: SSLv3 read server certificate A
SSL info: SSLv3 read server key exchange A
SSL info: SSLv3 read server certificate request A
SSL info: SSLv3 read server done A
SSL info: SSLv3 write client certificate A
SSL info: SSLv3 write client key exchange A
SSL info: SSLv3 write certificate verify A
SSL info: SSLv3 write change cipher spec A
SSL info: SSLv3 write finished A
SSL info: SSLv3 flush data
SSL info: SSLv3 read finished A
SSL info: SSL negotiation finished successfully
SSL info: SSL negotiation finished successfully
SSL_connect succeeded
Cipher: TLSv1.2:ECDHE-RSA-AES256-SHA384:256
...
Дальше приветствие, mail from, rcpt to, data ... - все ок.
...
SMTP>> QUIT
cmd buf flush 6 bytes
tls_do_write(0x7fffffffa270, 6)
SSL_write(SSL, 0x7fffffffa270, 6)
outbytes=6 error=0
tls_close(): shutting down SSL
SSL info: SSL negotiation finished successfully
SMTP(close)>>
...
Вот здесь не понятно, почему он вернулся к обработке сообщения?
...
Leaving exchange_transport transport
set_process_info: 15161 delivering 1cfpCE-0003uE-Qp (just run
exchange_transport for user@domain, ... in subprocess)
search_tidyup called
header write id:S,subid:0,size:4,final:S000004
header write id:X,subid:1,size:105,final:X100105
reading pipe for subprocess 15161 (not ended)
... куча ругани типа:
DSN read: addr->dsn_aware = 1
header read
id:A,subid:0,size:00214,required:221,remaining:4881,unfinished:0
header read
id:X,subid:1,size:00105,required:112,remaining:4660,unfinished:0
header read
id:X,subid:2,size:04389,required:4396,remaining:4548,unfinished:0
header read
id:X,subid:3,size:02067,required:2074,remaining:152,unfinished:0
remote delivery process 15161 ended
set_process_info: 15154 delivering 1cfpCE-0003uE-Qp
post-process user@domain (1)
LOG: MAIN
== user@domain <user@domain> R=exchange_router_user
T=exchange_transport defer (0) H=10.0.1.1 [10.0.1.1]: failed to read
pipe from transport process 15161 for transport smtp: required size=2074
> remaining size=152 and unfinished=false
...

Вижу, что никто с таким не сталкивался.
Но если найдется решение - может потом будет полезно кому-то.


--
Mikhail Golub

Le...@lena.kiev.ua

unread,
Feb 20, 2017, 1:38:45 PM2/20/17
to Exim MTA на русском
> Вот здесь не понятно, почему он вернулся к обработке сообщения?

> ... куча ругани типа:


> DSN read: addr->dsn_aware = 1

DSN - отдельное новое письмо-уведомление, что письмо отправлено?

Mikhail Golub

unread,
Feb 20, 2017, 1:56:43 PM2/20/17
to exim-...@mailground.net
20.02.2017 20:37, Le...@lena.kiev.ua пишет:

>> Вот здесь не понятно, почему он вернулся к обработке сообщения?
>
>> ... куча ругани типа:
>> DSN read: addr->dsn_aware = 1
>
> DSN - отдельное новое письмо-уведомление, что письмо отправлено?

Типа уведомления о доставке?

Google первую же ссылку выдает на
https://lists.exim.org/lurker/message/20140928.141710.fc9eacc5.el.html
Тема "Fix transport-results pipe for multiple recipients combined with
certs".
Как раз похоже на существующую проблему - доставка на несколько
получателей в сочетании с сертификатами.
Видел, что код deliver.c меняли. Может с чем-то перестарались?

P.S. Отключил поддержку DSN в Exim, хотя и не использовал ее.
И всеравно ошибка :(

mail_exim_SET_FORCE=DAEMON EMBEDDED_PERL CONTENT_SCAN LSEARCH SUID SPF
SRS MYSQL OPENLDAP TLS
mail_exim_UNSET_FORCE=IPV6 MAILDIR MAILSTORE NIS PAM SASLAUTHD AUTH_SASL
AUTH_CRAM_MD5 AUTH_RADIUS AUTH_PLAINTEXT INTERNATIONAL DSN


--
Mikhail Golub

Igor Grabin

unread,
Feb 20, 2017, 2:59:43 PM2/20/17
to Exim MTA на русском
On Mon, Feb 20, 2017 at 08:55:57PM +0200, Mikhail Golub wrote:
> Google первую же ссылку выдает на https://lists.exim.org/lurker/message/20140928.141710.fc9eacc5.el.html
> Тема "Fix transport-results pipe for multiple recipients combined
> with certs".
> Как раз похоже на существующую проблему - доставка на несколько
> получателей в сочетании с сертификатами.
> Видел, что код deliver.c меняли. Может с чем-то перестарались?
ну кааак. код по ссылке больше напоминает затычку, чем фикс. судя по
наличию данного треда - дырка поменяла конфигурацию й чопык выпав.

вы не одиноки с данной проблемой.

кто-то в буржуйской рассылке уже поднимал шум?

mbr,
--
Igor "CacoDem0n" Grabin

Victor Ustugov

unread,
Feb 20, 2017, 7:27:22 PM2/20/17
to Mikhail Golub
Mikhail Golub wrote:

>>> упростить до предела - отломать tls
>>
>> Для начала tls_require_ciphers
>
> Убрал вообще (и клиент и сервер).
> Теперь класс упал с "А" на "В-" на https://www.htbridge.com/ssl/

а у кого-то получилось для exim получить на этом
https://www.htbridge.com/ssl/ оценку A+?

--
Best wishes Victor Ustugov mailto:vic...@corvax.kiev.ua
public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
Skype ID: corvax_nb JID: corvax...@jabber.corvax.kiev.ua

Mikhail Golub

unread,
Feb 21, 2017, 2:17:20 AM2/21/17
to exim-...@mailground.net
20.02.2017 21:59, Igor Grabin пишет:

> On Mon, Feb 20, 2017 at 08:55:57PM +0200, Mikhail Golub wrote:
>> Google первую же ссылку выдает на https://lists.exim.org/lurker/message/20140928.141710.fc9eacc5.el.html
>> Тема "Fix transport-results pipe for multiple recipients combined
>> with certs".
>> Как раз похоже на существующую проблему - доставка на несколько
>> получателей в сочетании с сертификатами.
>> Видел, что код deliver.c меняли. Может с чем-то перестарались?
> ну кааак. код по ссылке больше напоминает затычку, чем фикс. судя по
> наличию данного треда - дырка поменяла конфигурацию й чопык выпав.
>
> вы не одиноки с данной проблемой.
>
> кто-то в буржуйской рассылке уже поднимал шум?

Специально подписался, написал. Потом читаю свое сообщение и вижу, что
мало информации для анализа.
Больше не добавлял, так как никто ответить не пытался :(

Пока пофиксил проблему с такими параметрами (добавлением двух последних
опций).
Секция main:
tls_certificate = host.cer
tls_privatekey = host.key
tls_advertise_hosts = *
tls_dhparam = /usr/local/etc/exim/cert/eximdh.key
tls_require_ciphers = TLS_CIPHERS
openssl_options = +dont_insert_empty_fragments +no_sslv2 +no_sslv3
tls_verify_hosts = :
tls_try_verify_hosts = :

И в smtp-транспортах.
tls_try_verify_hosts = :
tls_certificate = host.cer
tls_privatekey = host.key
tls_require_ciphers = TLS_CIPHERS
tls_verify_hosts = :

Согласно документации tls_certificate и tls_privatekey надо указывать
как в main (exim как сервер) так и в транспорте (exim как клиент).
Но опытным путем проверил, что если НЕ указывать эти опции в транспорте,
то используются опции из main и письмо уходит используя esmtps (судя по
логу на получателе).

--
Mikhail Golub

Mikhail Golub

unread,
Feb 21, 2017, 2:32:46 AM2/21/17
to exim-...@mailground.net
21.02.2017 2:26, Victor Ustugov пишет:

> Mikhail Golub wrote:
>
>>>> упростить до предела - отломать tls
>>>
>>> Для начала tls_require_ciphers
>>
>> Убрал вообще (и клиент и сервер).
>> Теперь класс упал с "А" на "В-" на https://www.htbridge.com/ssl/
>
> а у кого-то получилось для exim получить на этом
> https://www.htbridge.com/ssl/ оценку A+?

"А" достаточно ...
https://community.centminmod.com/threads/getting-a-on-ssllabs-and-htbridge-ssl-test.8805/
https://community.letsencrypt.org/t/challenge-for-the-a-100-junkies/8648/18

"diff between A and A+ on ssllabs is enabling HSTS in centmin mod lemp
stack's nginx HTTP/2 setup configs

#HSTS long duration
add_header Strict-Transport-Security "max-age=31536000; preload;";"

--
Mikhail Golub

Mikhail Golub

unread,
Feb 21, 2017, 2:46:45 AM2/21/17
to exim-...@mailground.net
21.02.2017 9:16, Mikhail Golub пишет:

> 20.02.2017 21:59, Igor Grabin пишет:
>> On Mon, Feb 20, 2017 at 08:55:57PM +0200, Mikhail Golub wrote:
>>> Google первую же ссылку выдает на
>>> https://lists.exim.org/lurker/message/20140928.141710.fc9eacc5.el.html
>>> Тема "Fix transport-results pipe for multiple recipients combined
>>> with certs".
>>> Как раз похоже на существующую проблему - доставка на несколько
>>> получателей в сочетании с сертификатами.
>>> Видел, что код deliver.c меняли. Может с чем-то перестарались?
>> ну кааак. код по ссылке больше напоминает затычку, чем фикс. судя по
>> наличию данного треда - дырка поменяла конфигурацию й чопык выпав.
>>
>> вы не одиноки с данной проблемой.
>>
>> кто-то в буржуйской рассылке уже поднимал шум?
>
> Специально подписался, написал. Потом читаю свое сообщение и вижу, что
> мало информации для анализа.
> Больше не добавлял, так как никто ответить не пытался :(
>
> Пока пофиксил проблему с такими параметрами (добавлением двух последних
> опций).

Не помогло :(
"Message frozen" снова пошли.

Одно сообщение размером 95K от <> на 38 получателей.
Второе от реального отправителя размером 1.9M на 22 получателя.

И как-то странно.
Этого глюка небыло, пока Exim не начал использоваться для пересылки
почты между on premises exchange и office365.
Были через него рассылки на сотни адресов получателей и с использованием
шифрованных соединений.

Le...@lena.kiev.ua

unread,
Feb 21, 2017, 3:35:40 AM2/21/17
to Exim MTA на русском
> Согласно документации tls_certificate и tls_privatekey надо
> указывать как в main (exim как сервер) так и в транспорте
> (exim как клиент).
> Но опытным путем проверил, что если НЕ указывать эти опции в
> транспорте, то используются опции из main и письмо уходит
> используя esmtps (судя по логу на получателе).

Эти опции в транспорте указывают клиентский сертификат,
который необязателен. Без клиентского сертификата письмо
тоже уходит зашифрованным (STARTTLS).

Le...@lena.kiev.ua

unread,
Feb 21, 2017, 3:41:00 AM2/21/17
to Exim MTA на русском
> >Пока пофиксил проблему с такими параметрами (добавлением
> >двух последних
> >опций).
>
> Не помогло :(

Эти опции и так по умолчанию пустые.

> "Message frozen" снова пошли.

Попробуйте всё же опять убрать tls_require_ciphers
Причем уже замороженные письма не считаются, в них запомнено
значение этого параметра, которое было при их первоначальной
попытке отправки.

Le...@lena.kiev.ua

unread,
Feb 21, 2017, 4:07:29 AM2/21/17
to Exim MTA на русском
> Попробуйте всё же опять убрать tls_require_ciphers
> Причем уже замороженные письма не считаются

Если не поможет, то в транспорте smtp
connection_max_messages = 5
и в начале конфига
recipients_max = 20
Это нехорошо, обход бага, нарушение RFC,
но хоть как-то работать надеюсь будет.

Mikhail Golub

unread,
Feb 21, 2017, 6:00:12 AM2/21/17
to exim-...@mailground.net
21.02.2017 11:06, Le...@lena.kiev.ua пишет:

>> Попробуйте всё же опять убрать tls_require_ciphers
>> Причем уже замороженные письма не считаются
>
> Если не поможет, то в транспорте smtp
> connection_max_messages = 5
> и в начале конфига
> recipients_max = 20
> Это нехорошо, обход бага, нарушение RFC,
> но хоть как-то работать надеюсь будет.

"hosts_nopass_tls = *" в транспорте не поможет в данном случае?
Если после внесенных мною уже изменений ошибки будут - попробую эту опцию.

--
Mikhail Golub

Victor Ustugov

unread,
Feb 21, 2017, 6:31:27 AM2/21/17
to Mikhail Golub
Mikhail Golub wrote:
> 21.02.2017 2:26, Victor Ustugov пишет:
>> Mikhail Golub wrote:
>>
>>>>> упростить до предела - отломать tls
>>>>
>>>> Для начала tls_require_ciphers
>>>
>>> Убрал вообще (и клиент и сервер).
>>> Теперь класс упал с "А" на "В-" на https://www.htbridge.com/ssl/
>>
>> а у кого-то получилось для exim получить на этом
>> https://www.htbridge.com/ssl/ оценку A+?
>
> "А" достаточно ...
> https://community.centminmod.com/threads/getting-a-on-ssllabs-and-htbridge-ssl-test.8805/
>
> https://community.letsencrypt.org/t/challenge-for-the-a-100-junkies/8648/18
>
> "diff between A and A+ on ssllabs is enabling HSTS in centmin mod lemp
> stack's nginx HTTP/2 setup configs
>
> #HSTS long duration
> add_header Strict-Transport-Security "max-age=31536000; preload;";"

получить A+ для https не проблема.

я имел ввиду получение A+ на https://www.htbridge.com/ssl/ для
SMTP+STARTTLS/SMTPS в случае использования exim.


--
Best wishes Victor Ustugov mailto:vic...@corvax.kiev.ua
public GnuPG/PGP key: https://victor.corvax.kiev.ua/corvax.asc
Skype ID: corvax_nb JID: corvax...@jabber.corvax.kiev.ua

_______________________________________________

Mikhail Golub

unread,
Feb 21, 2017, 6:35:48 AM2/21/17
to exim-...@mailground.net
И "чтобы два раза не вставать" подскажите разницу в обработке этих двух
строк?
tls_try_verify_hosts = :
tls_try_verify_hosts =

Т.е. во второй строке пустой аргумент.

--
Mikhail Golub

Le...@lena.kiev.ua

unread,
Feb 21, 2017, 8:03:27 AM2/21/17
to Exim MTA на русском
> "hosts_nopass_tls = *" в транспорте не поможет в данном
> случае?

Сомневаюсь.

> подскажите разницу в обработке
> этих двух строк?
> tls_try_verify_hosts = :
> tls_try_verify_hosts =
>
> Т.е. во второй строке пустой аргумент.

Первая строка - один пустой элемент в списке хостов.
Вторая строка - ни одного элемента в списке хостов.
В данном случае немножко (несущественно) правильнее вторая строка.

Пустой элемент в списке хостов использовался бы только в ACL
(обычно rcpt) и только в случае отправки писем с локального хоста
не пайпом на sendmail и не через SMTP на localhost,
а командой `sendmail -bs`, чего, насколько я понимаю,
в реальной жизни в наше время уже не случается.

Mikhail Golub

unread,
Feb 21, 2017, 8:29:40 AM2/21/17
to exim-...@mailground.net
21.02.2017 15:02, Le...@lena.kiev.ua пишет:

>> "hosts_nopass_tls = *" в транспорте не поможет в данном
>> случае?
>
> Сомневаюсь.

Верно сомневаетесь.
Не помогло.


>> подскажите разницу в обработке
>> этих двух строк?
>> tls_try_verify_hosts = :
>> tls_try_verify_hosts =
>>
>> Т.е. во второй строке пустой аргумент.
>
> Первая строка - один пустой элемент в списке хостов.
> Вторая строка - ни одного элемента в списке хостов.
> В данном случае немножко (несущественно) правильнее вторая строка.

Спасибо.
В чем проявляется на практике. При указании в транспорте на локальный
Exchange как в первом варианте - в логе нет ругани.
А при втором варианте записи типа:
2017-02-21 15:16:12 [78115] 1cgAId-000KJo-Py [10.0.1.1] SSL verify
error: depth=1 error=unable to get local issuer certificate cert=/DC=UA/****


P.S. Уморила меня эта проблема :(
Отключил TLS при доставке на локальный Exchange.
hosts_avoid_tls = *


--
Mikhail Golub

Mikhail Golub

unread,
Feb 23, 2017, 6:39:17 AM2/23/17
to exim-...@mailground.net
20.02.2017 21:59, Igor Grabin пишет:
>
> вы не одиноки с данной проблемой.
>
> кто-то в буржуйской рассылке уже поднимал шум?

Heiko Schlittermann ответил:
"The issue is known and being worked on."

--
Mikhail Golub

Dmitry Bogun

unread,
Apr 7, 2017, 5:27:04 AM4/7/17
to Exim MTA на русском
Эмм... а вы пробовали "проверить" что ваш перловый скрипт "хорошо" себя ведет и чувствует. Вы делаете доставку через PIPE, у вас валяется ошибки о чтении PIPE, но "крутить" вы пытаетесь SMTP доставку и только со стороны exim'а. Тут практически наверняка проблема в скрипте, который вы зовете из system filter.

Mikhail Golub

unread,
Apr 10, 2017, 4:05:52 AM4/10/17
to exim-...@mailground.net
07.04.2017 12:26, Dmitry Bogun пишет:

> Эмм... а вы пробовали "проверить" что ваш перловый скрипт "хорошо" себя ведет и чувствует. Вы делаете доставку через PIPE, у вас валяется ошибки о чтении PIPE, но "крутить" вы пытаетесь SMTP доставку и только со стороны exim'а. Тут практически наверняка проблема в скрипте, который вы зовете из system filter.
>

Это баг Exim.
Уже писал в англоязычную рассылку.

Dmitry Bogun

unread,
Apr 11, 2017, 6:24:32 AM4/11/17
to Exim MTA на русском
Я бы, все же, собрал "логи" по скрипту, хотя бы запуск его через strace. Еще можно поробовать к exim'у прицепить strace и попробовать "впоймать" багу.
Reply all
Reply to author
Forward
0 new messages