Re: [Exim-users] aliases и рекурсия
> > > > local_domains - это макрос, такой же как и dovecot_domains в примере - т.е. > > что-то, что "доставка", а не "редирект". И всегда хотел узнать, но стеснялся спросить. Макрос local_domains имеет какое-то особое встроенное значение в коде, или это обычный макрос в конфиге? -- Victor Sudakov VAS4-RIPE http://vas.tomsk.ru/ 2:5005/49@fidonet signature.asc Description: PGP signature ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] aliases и рекурсия
И вывод из этого какой? Vladimir Sharun wrote: > Привет, > > local_domains - это макрос, такой же как и dovecot_domains в примере - т.е. > что-то, что "доставка", а не "редирект". > > 31 травня 2021, 09:52:50, від "Victor Sudakov" : > > Привет, > > Спасибо, только есть нюанс: pupkin@mydomain.example это не local mailbox > в том смысле, что mydomain.example не в local_domains, а в отдельном > списке dovecot_domains: > > domainlist dovecot_domains = dsearch;/home/vmail > > # Redirect virtual users > virtual_redirect: > driver = redirect > allow_fail > allow_defer > data = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}} > > # The dovecot server > dovecot: > driver = accept > domains = +dovecot_domains > transport = dovecot_lmtp > > > > Vladimir Sharun wrote: > > Привет, > > > > 5. Redirecting to a local mailbox > > A redirection item may safely be the same as the address currently under > > consideration. This does not cause a routing loop, because a router is > > automatically skipped if any ancestor of the address that is being > > processed is the same as the current address and was processed by the > > current router. Such an address is therefore passed to the following > > routers, so it is handled as if there were no redirection. When making this > > loop-avoidance test, the complete local part, including any prefix or > > suffix, is used. > > > > > > 31 травня 2021, 07:22:10, від "Victor Sudakov" : > > > > Коллеги, > > > > В документации написано, что Exim has its own method of loop detection. > > Всё же хочется уточнить. В aliases есть запись > > > > pupkin@mydomain.example : pupkin@mydomain.example, pup...@gmail.com > > > > И вроде она интуитивно правильно отрабатывает, идет локальному > > пользователю и одновременно форвардится: > > > > # exim -bt pupkin@mydomain.example > > pupkin@mydomain.example > > <-- pupkin@mydomain.example > > router = dovecot, transport = dovecot_lmtp > > pup...@gmail.com > > <-- pupkin@mydomain.example > > router = dnslookup, transport = remote_smtp > > host gmail-smtp-in.l.google.com [74.125.195.27] MX=5 > > host alt1.gmail-smtp-in.l.google.com [142.250.115.26] MX=10 > > host alt2.gmail-smtp-in.l.google.com [64.233.171.27] MX=20 > > host alt3.gmail-smtp-in.l.google.com [142.250.152.27] MX=30 > > host alt4.gmail-smtp-in.l.google.com [172.253.113.27] MX=40 > > # > > > > Но всё же хочется уточнить, такая рекурсивная конструкция штатная и > > всегда будет работать, или мне просто повезло на этот раз? > > > > > > -- > > Victor Sudakov VAS4-RIPE > > http://vas.tomsk.ru/ > > 2:5005/49@fidonet > > > > ___ > > Exim-users mailing list > > Exim-users@mailground.net > > http://mailground.net/mailman/listinfo/exim-users > > > > > ___ > > Exim-users mailing list > > Exim-users@mailground.net > > http://mailground.net/mailman/listinfo/exim-users > > > > > -- > Victor Sudakov VAS4-RIPE > http://vas.tomsk.ru/ > 2:5005/49@fidonet > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > -- Victor Sudakov VAS4-RIPE http://vas.tomsk.ru/ 2:5005/49@fidonet signature.asc Description: PGP signature ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] aliases и рекурсия
Привет, Спасибо, только есть нюанс: pupkin@mydomain.example это не local mailbox в том смысле, что mydomain.example не в local_domains, а в отдельном списке dovecot_domains: domainlist dovecot_domains = dsearch;/home/vmail # Redirect virtual users virtual_redirect: driver = redirect allow_fail allow_defer data = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}} # The dovecot server dovecot: driver = accept domains = +dovecot_domains transport = dovecot_lmtp Vladimir Sharun wrote: > Привет, > > 5. Redirecting to a local mailbox > A redirection item may safely be the same as the address currently under > consideration. This does not cause a routing loop, because a router is > automatically skipped if any ancestor of the address that is being processed > is the same as the current address and was processed by the current router. > Such an address is therefore passed to the following routers, so it is > handled as if there were no redirection. When making this loop-avoidance > test, the complete local part, including any prefix or suffix, is used. > > > 31 травня 2021, 07:22:10, від "Victor Sudakov" : > > Коллеги, > > В документации написано, что Exim has its own method of loop detection. > Всё же хочется уточнить. В aliases есть запись > > pupkin@mydomain.example : pupkin@mydomain.example, pup...@gmail.com > > И вроде она интуитивно правильно отрабатывает, идет локальному > пользователю и одновременно форвардится: > > # exim -bt pupkin@mydomain.example > pupkin@mydomain.example > <-- pupkin@mydomain.example > router = dovecot, transport = dovecot_lmtp > pup...@gmail.com > <-- pupkin@mydomain.example > router = dnslookup, transport = remote_smtp > host gmail-smtp-in.l.google.com [74.125.195.27] MX=5 > host alt1.gmail-smtp-in.l.google.com [142.250.115.26] MX=10 > host alt2.gmail-smtp-in.l.google.com [64.233.171.27] MX=20 > host alt3.gmail-smtp-in.l.google.com [142.250.152.27] MX=30 > host alt4.gmail-smtp-in.l.google.com [172.253.113.27] MX=40 > # > > Но всё же хочется уточнить, такая рекурсивная конструкция штатная и > всегда будет работать, или мне просто повезло на этот раз? > > > -- > Victor Sudakov VAS4-RIPE > http://vas.tomsk.ru/ > 2:5005/49@fidonet > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > -- Victor Sudakov VAS4-RIPE http://vas.tomsk.ru/ 2:5005/49@fidonet signature.asc Description: PGP signature ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] aliases и рекурсия
Коллеги, В документации написано, что Exim has its own method of loop detection. Всё же хочется уточнить. В aliases есть запись pupkin@mydomain.example : pupkin@mydomain.example, pup...@gmail.com И вроде она интуитивно правильно отрабатывает, идет локальному пользователю и одновременно форвардится: # exim -bt pupkin@mydomain.example pupkin@mydomain.example <-- pupkin@mydomain.example router = dovecot, transport = dovecot_lmtp pup...@gmail.com <-- pupkin@mydomain.example router = dnslookup, transport = remote_smtp host gmail-smtp-in.l.google.com [74.125.195.27] MX=5 host alt1.gmail-smtp-in.l.google.com [142.250.115.26] MX=10 host alt2.gmail-smtp-in.l.google.com [64.233.171.27] MX=20 host alt3.gmail-smtp-in.l.google.com [142.250.152.27] MX=30 host alt4.gmail-smtp-in.l.google.com [172.253.113.27] MX=40 # Но всё же хочется уточнить, такая рекурсивная конструкция штатная и всегда будет работать, или мне просто повезло на этот раз? -- Victor Sudakov VAS4-RIPE http://vas.tomsk.ru/ 2:5005/49@fidonet signature.asc Description: PGP signature ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] av_scanner поломался
l...@lena.kiev.ua wrote: > > > Случилось странное. После обновления до exim-4.94_4 (FreeBSD) поломалась > > > работа с clamd по TCP. > > > Отключил TCP Fast Open на хосте, где exim: > > sysctl net.inet.tcp.fastopen.client_enable=0 > > И всё заработало. > > У меня заранее на всякий случай в транспортах smtp: > hosts_try_fastopen = А что за случай такой? Известно что оно сломано? Впрочем мне бы не помогло, наверное - судя по документации, вряд ли данная настройка действует на av_scanner. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] av_scanner поломался
Victor Sudakov wrote: > > Случилось странное. После обновления до exim-4.94_4 (FreeBSD) поломалась > работа с clamd по TCP. Вдруг кому пригодится. Отключил TCP Fast Open на хосте, где exim: sysctl net.inet.tcp.fastopen.client_enable=0 И всё заработало. Технические подробности тут: https://lists.exim.org/lurker/thread/20201230.133835.ec4c86b3.en.html -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] av_scanner поломался
Савченко Ярослав Евгеньевич wrote: > Добрый день. > > В плане бреда - проверьте все таки сетевое соединение , очень похоже на > классический Half/full duplex mismatch. Они там все в пределах одного гипервизора. Ну и не мог же дуплекс поменяться после апгрейда exim? Впрочем... $ dd if=/dev/zero bs=1m count=200 | ssh 192.168.153.104 dd of=/dev/null bs=1m 200+0 records in 200+0 records out 209715200 bytes transferred in 3.552324 secs (59036050 bytes/sec) 0+6718 records in 200+0 records out 209715200 bytes transferred in 3.357370 secs (62464134 bytes/sec) Не похоже. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] av_scanner поломался
Зарядил tcpdump на несколько часов. Результат еще больше удивил: из 15-20 попыток exim отправить письмо в clamav - одна попытка таки успешно удается: zINSTREAMeFrom or...@peshkombooks.ru Mon Dec 28 23:16:26 2020 X-Envelope-From: X-Envelope-To: m...@library.tomsk.ru [...] cDCg/wBwMKD/IwAwfQg8AH0InwAstream: OK. Остальные заканчиваются TCP reset со стороны почтового сервера. Т.е. работает частично, закономерности обнаружить не удалось, разве что, возможно, все переданные антивирусу письма - достаточно большие, с вложениями. Victor Sudakov wrote: > Уважаемые коллеги, > > Случилось странное. После обновления до exim-4.94_4 (FreeBSD) поломалась > работа с clamd по TCP. > > Настройка самая стандартная: > > av_scanner = clamd:192.168.153.104 3310 > > И судя по документации синтаксис не менялся. > > clamav разумеется живой: > > $ telnet 192.168.153.104 3310 > Trying 192.168.153.104... > Connected to 192.168.153.104. > Escape character is '^]'. > PING > PONG > Connection closed by foreign host. > > Однако же при попытке доставки почты в лог exim пишется сообщение: > > 2020-12-28 21:57:21 1kttxZ-Xw-3x malware acl condition: clamd : unable > to send file body to socket (192.168.153.104) > > Из пакетного дампа http://admin.sibptus.ru/~vas/2.pcap видно, что хост с > exim-ом открывает соединение с 192.168.153.104, тот отвечает, и хост с > exim-ом ... тут же посылает TCP RST. Вот это вообще отчего может быть? > > На локальный сокет перейти не могу (скорее всего заработает, но надо > пока чтобы clamav был на другом хосте). > > Пробовал гуглить по сообщению "clamd : unable to send file body to socket" > - ничего особенно интересного не нашлось. Разные предположения про то, что > clamav не успевает обработать файл или файл слишком велик - но в данном > случае в пакетном дампе не наблюдается попытки даже кусочек письма > передать. > > Предположите что-нибудь пожалуйста. > > -- > Victor Sudakov, VAS4-RIPE, VAS47-RIPN > 2:5005/49@fidonet http://vas.tomsk.ru/ > > _______ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] av_scanner поломался
Уважаемые коллеги, Случилось странное. После обновления до exim-4.94_4 (FreeBSD) поломалась работа с clamd по TCP. Настройка самая стандартная: av_scanner = clamd:192.168.153.104 3310 И судя по документации синтаксис не менялся. clamav разумеется живой: $ telnet 192.168.153.104 3310 Trying 192.168.153.104... Connected to 192.168.153.104. Escape character is '^]'. PING PONG Connection closed by foreign host. Однако же при попытке доставки почты в лог exim пишется сообщение: 2020-12-28 21:57:21 1kttxZ-Xw-3x malware acl condition: clamd : unable to send file body to socket (192.168.153.104) Из пакетного дампа http://admin.sibptus.ru/~vas/2.pcap видно, что хост с exim-ом открывает соединение с 192.168.153.104, тот отвечает, и хост с exim-ом ... тут же посылает TCP RST. Вот это вообще отчего может быть? На локальный сокет перейти не могу (скорее всего заработает, но надо пока чтобы clamav был на другом хосте). Пробовал гуглить по сообщению "clamd : unable to send file body to socket" - ничего особенно интересного не нашлось. Разные предположения про то, что clamav не успевает обработать файл или файл слишком велик - но в данном случае в пакетном дампе не наблюдается попытки даже кусочек письма передать. Предположите что-нибудь пожалуйста. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] no recipients found in headers
l...@lena.kiev.ua wrote: > > Как бы мне отловить, что за скрипт вызвал exim > > Наверняка вызывается sendmail. Скорее всего да, хотя гарантировать не могу. > Заменить /usr/sbin/sendmail на скрипт, пишущий в лог и вызывающий exim. Спасибо за идею. Тем более там mailwrapper в качестве /usr/sbin/sendmail, несложно заменить. А как бы из скрипта залоггировать, кто этот скрипт позвал? Искать $$ в выводе `ps` ? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ signature.asc Description: PGP signature ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] no recipients found in headers
Коллеги, Какой-то скрипт запускает "exim -t" для отправки своих сообщений, а "To:" или "Cc:" забывает вставить (где-то глюк или скрипт сломан). В результате чего в логе только: +++ 1kctks-000Eev-I3 has not completed +++ 2020-11-11 10:17:58 1kctks-000Eev-I3 1kctks-000Eev-I3 no recipients found in headers Как бы мне отловить, что за скрипт вызвал exim и что он пытался ему скормить? Если бы залоггировать имя скрипта, который локально вызвал "exim -t", было бы вообще круто, вот только возможно ли средствами exim. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ signature.asc Description: PGP signature ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
Привет, Alexander! Я не знал, что в режиме -bh можно не дожидаться ответов от exim. Думал тут всё как в настоящей SMTP сессии. Alexander Titaev wrote: > Здравствуйте, Victor. > > Вы писали 1 октября 2020 г., 18:13:11: > > # exim -bh 1.2.3.4 < /usr/local/etc/exim/tt.msg > > # cat /usr/local/etc/exim/tt.msg > HELO mail.wangbaijia.com.tw > mail from: > rcpt to: agafo...@irgiredmet.ru > data > Received: from localhost (localhost [127.0.0.1]) > by mail.wangbaijia.com.tw (Postfix) with ESMTP id 69DA01A53ED; > Thu, 1 Feb 2018 15:35:58 +0800 (CST) > ... > . > # > > >> Про -bh я знаю и иногда пользуюсь, но это довольно трудоемко каждый раз > >> вводить MAIL FROM и прочее. Или на expect обертку писать нужно. > > > Вот да, старый добрый expect не подведет. > > > #!/usr/bin/expect > > > spawn exim -d-all+acl -bh x.x.x.x > > expect "220 XX.com ESMTP" > > send "EHLO .ru\n" > > expect "250 HELP" > > send "MAIL FROM:\n" > > expect "250 OK" > > send "RCPT TO:\n" > > expect "250 Accepted" > > interact > > exit > > > А мог бы и на kermit написать. Поди никто уже не помнит, что это такое. > > > > > -- > С уважением, > Alexander mailto:t...@irk.ru > > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] порт 465/tcp
Коллеги, Чайниковский вопрос. Где-то утверждено, что почтовые релеи в Интернете обмениваются почтой только на 25 порту? Вопрос вот к чему. Если я повешу submission сервис на порт 465/tcp почтового релея, не получится ли так, что чей-то релей ткнется в 465 порт, получит "530 Authentication required " и отвалит, не доставив почту? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
l...@lena.kiev.ua wrote: > > Еще раз почитал раздел про File and database lookups, не нашёл отличий > > между lsearch и nwildlsearch в плане типа возвращаемого результата. Всё > > отличие вроде в возможности использовать "*" в лукапе, а результат вроде > > должен одинаковый для обоих быть (то что нашли, или пусто). > > Это если нет третьего и четвертого параметров. > Если в файле нет : в каждой строке, то > то, что нашли, тоже пустое. > > Если третий и четвертый есть, например {1}{0} , то в результате один из них > в зависимости от нашли или нет. То так, но я не об этом отвечал Владимиру, а том что lsearch и nwildlsearch, как я понимаю, не отличаются в плане типа данных, который возвращают. > > > Интересно, почему в документации "bool {}" и подобные > > называются expansion *conditions*, хотя по смыслу bool здесь - > > оператор или функция. Берёт одни данные, возвращает другие - это > > оператор. > > Нет в документации к Exim такого термина "оператор". Видимо по недосмотру или каким-то странным идеологическим соображениям. Потому что по действию это типичный оператор или функция: на входе получает одно в одном формате, на выходе возвращает другое в другом формате. > Есть expansion items, среди них if. И if у всех нормальных :-) людей - это условный оператор, а не какой-то "item". Я не ради наезда на exim, но интересно было бы понять, зачем такая странная терминология использована. > Первый параметр if должен быть из перечня expansion conditions. > И в "or" тоже должны быть expansion conditions, а не что хочется. > > Кроме bool, еще есть bool_lax. > Вместо bool можно использовать eq, просто bool нагляднее. IMHO bool удобнее, потому что универсален: it parses “true”, “false”, “yes” and “no” (case-insensitively); also integer numbers map to true if non-zero, false if zero. An empty string is treated as false. Leading and trailing whitespace is ignored... А с eq придется жестко прописывать, что чему должно быть равно? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
Интересно, почему в документации "bool {}" и подобные называются expansion *conditions*, хотя по смыслу bool здесь - оператор или функция. Берёт одни данные, возвращает другие - это оператор. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
Vladimir Sharun wrote: > > > > Потому что сейчас девелоперы exim'а работают над соблюдением типизации. > > > > Если раньше конструкции типа condition = {lookup} (без if) работали, то > > сейчас - с очень переменным успехом. > > То есть есть шанс, что рано или поздно и конструкция > "accept condition = > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}{no}}" > работать перестанет? Надо будет везде оборачивать в bool{...} ? > Я бы проверил работают ли они всё еще уже сейчас :) Работают, в моём примере было два ACL condition подряд таких и работали. Я и думал, что можно их через "or" объединить, однако же оказалось нельзя. И самое обидное - я же не предлагал and/or кушать результат лукапа или пустое множество, я специально для него определил список возможных ответов: {yes}{no} и всё. А кстати коли зашла речь, нельзя ли тут еще что-нибудь усовершенствовать в https://termbin.com/tasy ? > > > > > вторая тема - я бы врапнул вот эти длинные лукапы в named list - легче > > читать > > Примерчик можно? > > hostlist TRUSTED_MASSMAIL = partial2-lsearch;/lists/TRUSTED_MASSMAIL : > /lists/TRUSTED_NETWORKS > > https://www.exim.org/exim-html-current/doc/html/spec_html/ch-domain_host_address_and_local_part_lists.html > > Что-то типа макросов. > Потом используется (например) как > hosts = +TRUSTED_MASSMAIL > и всё понятно и нет тяжелых-длинных-непонятных конструкций Когда приходится ссылаться на одно и то же в нескольких местах - я польуюсь подобным, например: domainlist dovecot_domains = dsearch;/home/vmail > > > > и третья тема (смое важное) - результат лукапа - это value, которое > > при bool сравнении всегда будет или false или true - уже не помню; > > если вам надо "есть или нет" надо использовать конструкцию типа > > {bool{${lookup{$item}nwildlsearch{some_file}...} > > Зачем, почему? Работает же так > > я bool и имел в виду. На каком-то моменте в 4.9х перестал работать > мехнизм "если лукап что-то вернул - это true, а если ничего - false". > Строго говоря правая часть кондишна - это bool, а логические операции > также обязаны оперировать с bool, т.е. {if or {cond1} {cond2}}, вот > эти condN - это должен быть bool тоже и если нет, то факапы ойой > вылазят. Еще раз почитал раздел про File and database lookups, не нашёл отличий между lsearch и nwildlsearch в плане типа возвращаемого результата. Всё отличие вроде в возможности использовать "*" в лукапе, а результат вроде должен одинаковый для обоих быть (то что нашли, или пусто). -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: [dd] > Первый "yes" - это то, что вернёт в случае удачи lookup и что будет > являться первой частью для eq, а второй "yes" - это то, с чем будет > сравниваться первый. > Т.е. в, так сказать, полной нотации это должно выглядеть так: > condition = ${if or {\ > { eq > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}{no}}} {yes} > }\ > { eq > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}{no}}} {yes} }\ > } {yes}{no}} > > "{no}" в lookup'ах можно убрать, т.к. в данном случае не важно, что > вернёт lookup, если совпадение не найдёт (абы только не "yes"). > > "{yes}{no}" в конце всего кондишена тоже можно убрать, т.к. в случае > удачи if вернёт строку "true", а в случае неудачи вернёт пустую строку, > что для "condition" равноценно false. > Собственно как можно убрать только "{no}", тогда соответственно в случае > удачи вернёт "yes", а в случае неудачи - пустую строку, от чего > функциональность не изменится =) > В примере Лены yes/no|true/false заменено на 1/0 через bool, но в итоге > для exim это всё равнозначные удача/неудача. С bool{...} как-то стройнее и нагляднее получается, чем с eq. Он уже В общем главный вывод для меня из этой истории - что нельзя "or" и "and" подсовывать результат лукапа, хотя этот лукап тоже можно использоваться (в других местах) как condition, но это не expansion condition. А expansion conditions - только из строгого списка. Вот про bool{} пишут, что This condition turns a string holding a true or false representation into a boolean state. It parses “true”, “false”, “yes” and “no” (case-insensitively); also integer numbers map to true if non-zero, false if zero. An empty string is treated as false. Кто им мешал "or" и "and" сделать столь же всеядными? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
Vladimir Sharun wrote: > Привет, > > Потому что сейчас девелоперы exim'а работают над соблюдением типизации. > > Если раньше конструкции типа condition = {lookup} (без if) работали, то > сейчас - с очень переменным успехом. То есть есть шанс, что рано или поздно и конструкция "accept condition = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}{no}}" работать перестанет? Надо будет везде оборачивать в bool{...} ? > > Я вот такого типа конструкции проверяю через exim -be - выпадаешь в консоль > expression'ов и можно тестировать, только вместо expansion variables надо > использовать живые значения. Лукапы как минимум в mysql он в консоли делает > ок. Можно включить дебаг - покажет что он с чем сравнивает и почему факап. > > Да, в консоли я хз что там за редактор (если он вообще есть), лучше > копипастой вставлять готовые строки и enter. Можно на stdin ему. Я так и смотрю: echo '${lookup{v...@.com}lsearch{/etc/dovecot/aliases}{yes}{no}}' | exim -be потом стрелкой верх и меняю параметр. > > вторая тема - я бы врапнул вот эти длинные лукапы в named list - легче читать Примерчик можно? > > и третья тема (смое важное) - результат лукапа - это value, которое > при bool сравнении всегда будет или false или true - уже не помню; > если вам надо "есть или нет" надо использовать конструкцию типа > {bool{${lookup{$item}nwildlsearch{some_file}...} Зачем, почему? Работает же так root@mail3:/etc/exim4# echo 'bool{${lookup{v...@.com}lsearch{/etc/dovecot/users}{yes}{no}}}' | exim -be > bool{yes} > root@mail3:/etc/exim4# echo 'bool{${lookup{v...@.com}lsearch{/etc/dovecot/users}{yes}{no}}}' | exim -be > bool{no} > > Вот над этой конструкцией я потел часа два: > condition = ${if forall{<\n ${lc:${lookup dnsdb{ptr=$sender_host_address > {bool{${lookup{$item}nwildlsearch{/lists/HOSTS_REGEX}{1}{0} > > Тут все три секса сразу: и цикл forall, и передача $item в lookup, и > приведение к boolean результата лукапа. Для истинных поклонников sendmail.cf, чтобы не расслаблялись :-) -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
l...@lena.kiev.ua wrote: > > Мне сбивает с толку мысль, что в выражении > > accept condition = > > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} > > правая часть - вполне себе condition (так и написано же - "condition" :-) > > Нет, не expansion condition. > > https://www.exim.org/exim-html-current/doc/html/spec_html/ch-string_expansions.html > > or описано в разделе 8, Я читал. Оно там так красиво и хорошо описано: or {{}{}...} А что условие ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}{no}} или ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{1}{0}} надо еще через bool{...} пропускать - это я не сообразил. Оно ведь и так "yes|1" или "no|0" возвращает в зависимости от успешного или неуспешного лукапа. > а исчерпывающий перечень expansion conditions - в разделе 7. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > Hello! > > On Thu, 01 Oct 2020 at 17:32:30 (+0700), Victor Sudakov wrote: > > > > Нужна помощь клуба. > > > Пришел к такому варианту с бессчетными скобочками, но и он не работает. > > Я свой пример слишком на скорую руку сделал. Сорри. > Вот более детальный пример. Но, опять же, я не проверял в действии + могут > быть ошибки синтаксиса. > > condition = ${if or {\ > { eq > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}} {yes} }\ > { eq > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}} {yes} }\ > } {yes}} Работает вроде. Интересно, а чем же тогда мой: accept condition = ${if or {\ {eq{${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}{yes}}} \ {eq{${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}{yes}}} \ } {yes}} не подошёл, вроде такой же по смыслу, через eq{...}. "{yes}" не там, что ли. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
l...@lena.kiev.ua wrote: > > Пришел к такому варианту с бессчетными скобочками, но и он не работает. > > > > accept condition = ${if or{\ > > > > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}} \ > > > > {${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}} \ > > } {yes}} > > accept condition = ${if or{\ > {bool{${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{1}{0\ > {bool{${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{1}{0\ > }} OMG, тут что-то вроде приведения типа надо делать? Работает, очень большое спасибо. Я уже в попытках до такого дошел: accept condition = ${if or {\ {eq{${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}{yes}}} \ {eq{${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}{yes}}} \ } {yes}} И всё равно не работало (интересно почему. Или уже не интересно). > > Скобочки удобно проверять во встроенном редакторе Midnight Commander. > Его можно вызвать и отдельно: mcedit имяфайла > При наведении курсора на скобочку подсвечивается другая соответствующая > скобочка. А, спасибо, мне vim хорошо подсвечивает скобочки. Даже прямо при написании этого письма. > > В ACL можно обойтись без {1}{0} перед самой последней скобочкой > (закрывающей or). А в роутерах надо. Пусть уж будет везде единообразно. Мне сбивает с толку мысль, что в выражении accept condition = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} правая часть - вполне себе condition (так и написано же - "condition" :-) ). Но оказывается чтобы сделать AND или OR между такими conditions - надо их обернуть в bool{...} - почему? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
Victor Sudakov wrote: > > Нужна помощь клуба. Пришел к такому варианту с бессчетными скобочками, но и он не работает. accept condition = ${if or{\ {${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}} \ {${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}} \ } {yes}} failed to expand ACL string "${if or{{${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}}} {${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}}} } {yes}}": condition name expected, but found "${lookup{$local_" inside "or{...}" condition Гуру, подскажите работающий вариант пожалуйста. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
Victor Sudakov wrote: > > > > > > > А как вообще в exim потестировать condition? Ну я ему строчку, а он мне в > > > ответ yes или no (с реальными /etc/dovecot/aliases и /etc/dovecot/users > > > разумеется). > > > > Можно как-то тестить конкретные acl, но я не помню как, а в доке лень > > копаться. Можно протестить всю smtp-сессию: > > exim -d -bh какой-нить-ip-адрес > > Про -bh я знаю и иногда пользуюсь, но это довольно трудоемко каждый раз > вводить MAIL FROM и прочее. Или на expect обертку писать нужно. Вот да, старый добрый expect не подведет. #!/usr/bin/expect spawn exim -d-all+acl -bh x.x.x.x expect "220 XX.com ESMTP" send "EHLO .ru\n" expect "250 HELP" send "MAIL FROM:\n" expect "250 OK" send "RCPT TO:\n" expect "250 Accepted" interact exit А мог бы и на kermit написать. Поди никто уже не помнит, что это такое. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > > > > > > > А вот такие 2 условия, добавленные в acl_check_rcpt (контекст тоже > > > > > > привожу), > > > > > > нормально выглядят или можно улучшить? А как бы их в одно > > > > > > логическое выражение > > > > > > объединить, не подскажете? > > > > > > > # Accept mail for forwarded domains > > > > > > accept condition = > > > > > > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}} > > > > > > > # Accept valid recipient adresses in dovecot domains > > > > > > accept condition = > > > > > > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} > > > > > Хотел бы только понять синтаксис, как эти два условия объединить в ИЛИ. > > > [dd] > > > > Что-нить в таком духе: > > > accept condition = ${or > > > {lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}} \ > > > > > > {lookup{$local_part@$domain}lsearch{/etc/dovecot/users}} \ > > >} > > > Благодарю! Хотя не вижу тут {yes} почему-то, как я привык. > > А он там не нужен. Даже хуже может сделать. > В этом контексте это значение по умолчанию, которое вернёт лукап, если > зафейлится. А он же ж должен зафелить кондишен, если строка не была > найдена, а не вернуть "yes". Не, в вышеприведенном виде не работает с ошибкой: failed to expand ACL string "${or {lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}} {lookup{$local_part@$domain}lsearch{/etc/dovecot/users}} }": "${or" is not a known operator (or a } is missing in a variable reference) Я уж попробовал и через "${if or {..." делать и всячески - не ест. Нужна помощь клуба. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > > > А как вообще в exim потестировать condition? Ну я ему строчку, а он мне в > > ответ yes или no (с реальными /etc/dovecot/aliases и /etc/dovecot/users > > разумеется). > > Можно как-то тестить конкретные acl, но я не помню как, а в доке лень > копаться. Можно протестить всю smtp-сессию: > exim -d -bh какой-нить-ip-адрес Про -bh я знаю и иногда пользуюсь, но это довольно трудоемко каждый раз вводить MAIL FROM и прочее. Или на expect обертку писать нужно. А вот так, чтобы ввел адрес получателя как в -bt - а оно провело его про ACL. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > > > > > > allow_fail/allow_defer - чтобы фейлить или диферить прямо из data > > > > > например, можно в тот же aliases записать вот такое, чтобы давать > > > > > кастомные отлупы per $local_part@$domain: > > > > > pup...@domain.com :fail: Pupkin has gone for good > > > > > Проверил у себя. В моём случае ":fail: Pupkin has gone for good" в > > > > aliases не срабатывает в SMTP сессии. В смысле сперва письмо > > > > принимается, а потом генерится отлуп. В таком виде оно мне не надо, > > > > наверное. > > > > Чтобы оно в smtp-сессии отлуп давало нужно в acl_check_rcpt добавить > > > соответствующую проверку. > > > > Вот так это в дефолтном конфиге на Фре выглядит (у него финальный accept > > > в секции acl_check_rcot): > > > require verify = recipient > > > > А вот так в кастомном (у меня deny в финале секции acl_check_rcpt): > > > accept domains = +all_local_domains > > > endpass > > > message = Final recipient verification failed > > > verify= > > > recipient/callout=2m,use_sender,no_cache,defer_ok > > > Да вот не работает callout почему-то по LMTP. > > Я сам не юзаю lmtp, но гугл имеет что сказать =) > Вот пару ссылок по теме: > https://wiki.dovecot.org/LMTP/Exim#Verifying_recipients_using_LMTP > https://lists.exim.org/lurker/message/20040427.231839.a37eddca.ca.html То и беда, что гугл имеет много сказать, но не умеет (пока?) сказанное проверить. > > Гуглил по "exim lmtp verify recipient callout" =) Аналогично. Откуда еще взялось мое утверждение, что callout в LMTP не работает? Я пробовал и "use an SMTP transport ("smtp" driver), and set "protocol = lmtp" как в другой вышеприведенной ссылке написано, но dovecot-lmtpd не нравится LHLO, ему HELO подавай. Да и если честно, IMHO lookup по БД (даже если это просто текстовый файл) быстрее и менее ресурсоёмок. Беда что нет рабочего рецепта, который можно взять за основу. Какие-то разрозненные сведения в разных рассылках. > > > А можно я кусок своего конфига покажу, где acl и роутеры? > > Только если там нет контента +18 =)) Вот выложил https://termbin.com/tasy Весь контент 18+ вырезан, в том числе комментарии (для более удобного восприятия). Буду благодарен, если кто укажет на ошибки или предложит улучшения. Последовательные лукапы по двум файлам не успел слить в один лукап, но сделаю. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > On Wed, 30 Sep 2020 at 20:10:52 (+0700), Victor Sudakov wrote: > > > > > А вот такие 2 условия, добавленные в acl_check_rcpt (контекст тоже > > > > привожу), > > > > нормально выглядят или можно улучшить? А как бы их в одно логическое > > > > выражение > > > > объединить, не подскажете? > > > > > # Accept mail for forwarded domains > > > > accept condition = > > > > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}} > > > > > # Accept valid recipient adresses in dovecot domains > > > > accept condition = > > > > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} > > > Хотел бы только понять синтаксис, как эти два условия объединить в ИЛИ. [dd] > > Что-нить в таком духе: > accept condition = ${or > {lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}} \ > > {lookup{$local_part@$domain}lsearch{/etc/dovecot/users}} \ >} Благодарю! Хотя не вижу тут {yes} почему-то, как я привык. А как вообще в exim потестировать condition? Ну я ему строчку, а он мне в ответ yes или no (с реальными /etc/dovecot/aliases и /etc/dovecot/users разумеется). -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > > > > > > user_aliases: > > > > > driver = redirect > > > > > allow_fail > > > > > allow_defer > > > > > data = ${lookup{$local_part@$domain}lsearch{/etc/exim/aliases}} > > > > > user = exim > > > > > group = mail > > > > > file_transport = address_file > > > > > pipe_transport = address_pipe > > > > > О, замечательно! А зачем тут user, group, pipe_transport и прочие > > > > параметры, они точно нужны? > > > > "user, group" - очевидно вроде ж. для транспорта, если вдруг нужно > > > деливерить из-под юзера/группы, отличной от exim'овских. > > > > pipe_transport - чтобы на пайпу форвардить. > > > file_transport - чтобы в файл деливерить. > > > Но какой у redirect-а транспорт? Он же просто переадресует письмо и оно > > отправится дальше по роутерам, а у тех уже свои транспорты. > > > Или это чтобы в /etc/exim/aliases перенаправить в "| some_program" и т.п.? > > Именно. Буду иметь в виду, но пока не нужно. > > > > allow_fail/allow_defer - чтобы фейлить или диферить прямо из data > > > например, можно в тот же aliases записать вот такое, чтобы давать > > > кастомные отлупы per $local_part@$domain: > > > pup...@domain.com :fail: Pupkin has gone for good > > > Проверил у себя. В моём случае ":fail: Pupkin has gone for good" в > > aliases не срабатывает в SMTP сессии. В смысле сперва письмо > > принимается, а потом генерится отлуп. В таком виде оно мне не надо, > > наверное. > > Чтобы оно в smtp-сессии отлуп давало нужно в acl_check_rcpt добавить > соответствующую проверку. > > Вот так это в дефолтном конфиге на Фре выглядит (у него финальный accept > в секции acl_check_rcot): > require verify = recipient > > А вот так в кастомном (у меня deny в финале секции acl_check_rcpt): > accept domains = +all_local_domains > endpass > message = Final recipient verification failed > verify= recipient/callout=2m,use_sender,no_cache,defer_ok Да вот не работает callout почему-то по LMTP. А можно я кусок своего конфига покажу, где acl и роутеры? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
dawnshade wrote: > > А чего ЛМТП не заменить на dovecot-lda, последний вроде умеет проверку. А черт его знает, наверное просто не нашёл хорошего howto по exim+dovecot, собирал по немногу отовсюду да сам додумывал. Если есть толковый best practice, с благодарностью приму ссылку. Опять же, при LMTP о правах на файловой системе думать не надо. А dovecot-lda поди придется делать setuid или setgid. В общем пошёл по простому пути за неимением грамотного наставления. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > > On Wed, 30 Sep 2020 at 17:53:00 (+0700), Victor Sudakov wrote: > > > А вот такие 2 условия, добавленные в acl_check_rcpt (контекст тоже привожу), > > нормально выглядят или можно улучшить? А как бы их в одно логическое > > выражение > > объединить, не подскажете? > > > # Accept mail for forwarded domains > > accept condition = > > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}} > > > # Accept valid recipient adresses in dovecot domains > > accept condition = > > ${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} > > По сути эти оба стейтмента покрываются тем, который ниже, т.к. он > пропустит только домены из списков +local_domains и +relay_to_domains, Ну у меня dovecot-овские домены в отдельном списке +dovecot_domains, но не суть. > но не закончит, а передаст нижеследующим стейтментам, если они есть. Нижеследующих там только "require verify = recipient", а потом accept. И они мне не помогут отказать в приеме почты для несуществующих пользователей в виртуальных доменах, потому что по LMTP невозможно на ходу проверить, какие пользователи есть в dovecot, а каких нет. Т.е. теоретически можно было бы сделать какой-то callout в dovecot, но он у меня по LMTP не заработал. Поэтому вот так проверяю заранее, по базе пользователей dovecot. Хотел бы только понять синтаксис, как эти два условия объединить в ИЛИ. > Там где-то в конце блока acl_check_rcpt должен быть accept для всего, > что дошло до него. В него (или перед ним) можно (нужно?) добавить > проверку получателя, чтобы exim проверил его деливерабельность и выдал > отлуп, если получатель undeliverable. Не может он проверить деливерабельность по LMTP, в том и беда. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
George L. Yermulnik wrote: > Hello! > > On Wed, 30 Sep 2020 at 16:57:11 (+0700), Victor Sudakov wrote: > > > > user_aliases: > > > driver = redirect > > > allow_fail > > > allow_defer > > > data = ${lookup{$local_part@$domain}lsearch{/etc/exim/aliases}} > > > user = exim > > > group = mail > > > file_transport = address_file > > > pipe_transport = address_pipe > > > О, замечательно! А зачем тут user, group, pipe_transport и прочие > > параметры, они точно нужны? > > "user, group" - очевидно вроде ж. для транспорта, если вдруг нужно > деливерить из-под юзера/группы, отличной от exim'овских. > pipe_transport - чтобы на пайпу форвардить. > file_transport - чтобы в файл деливерить. Но какой у redirect-а транспорт? Он же просто переадресует письмо и оно отправится дальше по роутерам, а у тех уже свои транспорты. Или это чтобы в /etc/exim/aliases перенаправить в "| some_program" и т.п.? > > allow_fail/allow_defer - чтобы фейлить или диферить прямо из data > например, можно в тот же aliases записать вот такое, чтобы давать > кастомные отлупы per $local_part@$domain: > pup...@domain.com :fail: Pupkin has gone for good Проверил у себя. В моём случае ":fail: Pupkin has gone for good" в aliases не срабатывает в SMTP сессии. В смысле сперва письмо принимается, а потом генерится отлуп. В таком виде оно мне не надо, наверное. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
Victor Sudakov wrote: > > О, замечательно! А зачем тут user, group, pipe_transport и прочие > параметры, они точно нужны? > > Я вот сейчас написал просто перед довкотом: > > # Redirect virtual users > virtual_redirect: > driver = redirect > data = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}} > > > и оно вроде работает, по крайней мере "exim -bt" ожидаемо их резолвит > куда надо (реальную доставку не успел попробовать). А вот такие 2 условия, добавленные в acl_check_rcpt (контекст тоже привожу), нормально выглядят или можно улучшить? А как бы их в одно логическое выражение объединить, не подскажете? # Insist that a HELO/EHLO was accepted. require message = nice hosts say HELO first condition = ${if def:sender_helo_name} # Accept mail for forwarded domains accept condition = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}{yes}} # Accept valid recipient adresses in dovecot domains accept condition = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} # Insist that any other recipient address that we accept is either in one of # our local domains, or is in a domain for which we explicitly allow # relaying. Any other domain is rejected as being unacceptable for relaying. require message = relay not permitted domains = +local_domains : +relay_to_domains -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] совсем виртуальные пользователи и редирект
dawnshade wrote: > > Привет. > Ну алиасы точно так же работают с таким роутером перед довкотом: > > user_aliases: > driver = redirect > allow_fail > allow_defer > data = ${lookup{$local_part@$domain}lsearch{/etc/exim/aliases}} > user = exim > group = mail > file_transport = address_file > pipe_transport = address_pipe О, замечательно! А зачем тут user, group, pipe_transport и прочие параметры, они точно нужны? Я вот сейчас написал просто перед довкотом: # Redirect virtual users virtual_redirect: driver = redirect data = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/aliases}} и оно вроде работает, по крайней мере "exim -bt" ожидаемо их резолвит куда надо (реальную доставку не успел попробовать). > > проблема в том, что очередь из-за этого забивается. тк едет весь dkim/spf/etc > и удаленка не принимает письмо Ну это проблема с форвардами всегда такая была со времен появления SPF, тут только SRS спасет IMHO. Интересно, можно ли прикрутить SRS к redirect-у. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] совсем виртуальные пользователи и редирект
Коллеги, Переношу одну legacy почтовую систему на exim+dovecot. И еще прошу помощи. Работает доставка в dovecot (см. ниже). Но ещё надо письма некоторым адресатам из +dovecot_domains отправлять не в dovecot, а форвардить на другие почтовые сервера согласно списку: pup...@mydomain.ru : pup...@gmail.com vas...@mydomain.com : pup...@gmail.com При этом mydomain.ru и mydomain.com входят в +dovecot_domains. Можно как-то перехватить роутинг до срабатывания router dovecot и отправить в другой router и transport, который отправит почту для pup...@mydomain.ru по MX на pup...@gmail.com? Добавлять +dovecot_domains в local_domains не хотелось бы, если без этого можно обойтись. Т.е. хотелось бы устроить нечто вроде нелокальных /etc/aliases. # фрагмент текущей конфигурации begin routers dovecot: driver = accept domains = +dovecot_domains transport = dovecot_lmtp [...] begin transports dovecot_lmtp: driver = lmtp socket = /var/run/dovecot/lmtp -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] dovecot users - lookup and reject an invalid sender
Эта строчка в конфиге есть по умолчанию, и она не проверяет то, что я хотел (local_part в домене отправителя). Либо я Вас не понял. dawnshade wrote: > > require verify = sender > > > >Вторник, 29 сентября 2020, 12:54 +03:00 от Victor Sudakov : > > > >Коллеги, > > > >Помогите пожалуйста с лукапом. > > > >userdb dovecot находится в файле /etc/dovecot/users (там сразу > >пользователи хранятся в виде user@domain). Чтобы не принимать почту на > >несуществующих пользователей, сделал такой ACL и поставил в > >acl_check_rcpt после "require message = relay not permitted domains ..." > > > ># Accept valid (and reject invalid) recipient adresses in dovecot domains > > accept domains = +dovecot_domains > >endpass > >message = Recipient unknown > >condition = > >${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} > > > >Потестировал - вроде работает. А какой бы теперь еще lookup сделать (и > >главное в какое место какого ACL его вставить), чтобы если кто-то извне > >будет отправлять почту с несуществующего ящика, но с домена из > >+dovecot_domains, чтобы был reject сразу? > > > >-- > >Victor Sudakov, VAS4-RIPE, VAS47-RIPN > >2:5005/49@fidonet http://vas.tomsk.ru/ > > > >___ > >Exim-users mailing list > >Exim-users@mailground.net > >http://mailground.net/mailman/listinfo/exim-users > > > > > -- > - - > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] dovecot users - lookup and reject an invalid sender
Коллеги, Помогите пожалуйста с лукапом. userdb dovecot находится в файле /etc/dovecot/users (там сразу пользователи хранятся в виде user@domain). Чтобы не принимать почту на несуществующих пользователей, сделал такой ACL и поставил в acl_check_rcpt после "require message = relay not permitted domains ..." # Accept valid (and reject invalid) recipient adresses in dovecot domains accept domains = +dovecot_domains endpass message= Recipient unknown condition = ${lookup{$local_part@$domain}lsearch{/etc/dovecot/users}{yes}} Потестировал - вроде работает. А какой бы теперь еще lookup сделать (и главное в какое место какого ACL его вставить), чтобы если кто-то извне будет отправлять почту с несуществующего ящика, но с домена из +dovecot_domains, чтобы был reject сразу? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] $dkim_verify_status поломался
Victor Sudakov wrote: > l...@lena.kiev.ua wrote: > > > > Но проблема, как мне кажется, не в этом. > > > > > acl_check_dkim: > > >warn dkim_status = none:invalid:fail > > > add_header = :at_start:${authresults {$primary_hostname}} > > > add_header = X-DKIM-result: $dkim_verify_status > > >accept add_header = :at_start:${authresults {$primary_hostname}} > > > > По-моему, в строку с X-DKIM-result имеет смысл добавить $dkim_cur_signer > > Ха, прикольно получилось. Послал себе письмо с gmail и что я вижу? > > Return-path: > Envelope-to: v...@sibptus.ru > Authentication-Results: admin.sibptus.ru; > iprev=pass (mail-io1-xd31.google.com) > smtp.remote-ip=2607:f8b0:4864:20::d31; > spf=pass smtp.mailfrom=gmail.com; > dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256 > [...] > X-DKIM-result: none yandex.ru > X-DKIM-result: none groups.io > X-DKIM-result: none ebay.com > X-DKIM-result: none paypal.com > > > Явно что-то пошло не так, хотя стало понятнее что происходит. > А происходило видимо следующее. При наличии списка доменов в dkim_verify_signers dkim_verify_signers = gmail.com:yandex.ru:groups.io:ebay.com:paypal.com:$dkim_signers DKIM проверялся для каждого из них по очереди, но заголовок "X-DKIM-result:" вставлялся только хронологически последний по результату последней проверки. При добавлении $dkim_cur_signer к заголовку - заголовков стало несколько по количеству проверок. Но понятно, что проверять в каждом письме наличие подписи gmail.com, yandex.ru, groups.io и др. было достаточно глупо. Оставил только "dkim_verify_signers = $dkim_signers". А кажется и эта строчка не нужна, она уже dkim_verify_signers уже по умолчанию $dkim_signers. Теперь нужен какой-то добавочный ACL (или доп. условие в acl_smtp_dkim), который будет ловить письма именно в случае, если письмо а) от gmail.com:yandex.ru:groups.io:ebay.com:paypal.com и иже с ними по списку и б) подпись отсутствует или неверна. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] $dkim_verify_status поломался
l...@lena.kiev.ua wrote: > > Но проблема, как мне кажется, не в этом. > > > acl_check_dkim: > >warn dkim_status = none:invalid:fail > > add_header = :at_start:${authresults {$primary_hostname}} > > add_header = X-DKIM-result: $dkim_verify_status > >accept add_header = :at_start:${authresults {$primary_hostname}} > > По-моему, в строку с X-DKIM-result имеет смысл добавить $dkim_cur_signer Ха, прикольно получилось. Послал себе письмо с gmail и что я вижу? Return-path: Envelope-to: v...@sibptus.ru Authentication-Results: admin.sibptus.ru; iprev=pass (mail-io1-xd31.google.com) smtp.remote-ip=2607:f8b0:4864:20::d31; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256 [...] X-DKIM-result: none yandex.ru X-DKIM-result: none groups.io X-DKIM-result: none ebay.com X-DKIM-result: none paypal.com Явно что-то пошло не так, хотя стало понятнее что происходит. > > > acl-то хоть правильный у меня? > > Да. Видимо таки не совсем. ЗЫ конфиг есть в изначальном письме в цепочке. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] $dkim_verify_status поломался
Victor Sudakov wrote: > > dkim_verify_signers = > gmail.com:yandex.ru:groups.io:ebay.com:paypal.com:$dkim_signers > acl_smtp_dkim = acl_check_dkim > > acl_check_dkim: >warn dkim_status = none:invalid:fail > add_header = :at_start:${authresults {$primary_hostname}} > add_header = X-DKIM-result: $dkim_verify_status >accept add_header = :at_start:${authresults {$primary_hostname}} acl-то хоть правильный у меня? Может надо местами поменять условие и модификатор add_header? Замысел был такой, чтобы вставлять "X-DKIM-result:" только при неуспехе проверки dkim. > > > > В логе тоже вроде как "verification succeeded": > > 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=newsletter.metro-cc.ru s=mailing > c=relaxed/simple a=rsa-sha256 b=1024 i=metron...@newsletter.metro-cc.ru > [verification succeeded] > 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=newsletter.metro-cc.ru s=mailing > c=relaxed/simple a=rsa-sha256 b=1024 i=metron...@newsletter.metro-cc.ru > [verification succeeded] > 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=srv2.de s=mailing > c=relaxed/simple a=rsa-sha256 b=1024 [verification succeeded] > 2019-10-03 20:53:56 1iG1YK-0004VB-3K <= ret...@newsletter.metro-cc.ru > H=mail20-195.srv2.de [91.229.179.195] P=esmtps > X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no S=62240 DKIM=srv2.de > id=re-p63enoxrdegerbgw7-3k88wrka-3k628g0u-j28...@newsletter.metro-cc.ru > 2019-10-03 20:53:56 1iG1YK-0004VB-3K => |/usr/local/bin/procmail > R=userforward T=address_pipe > 2019-10-03 20:53:56 1iG1YK-0004VB-3K Completed > -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] $dkim_verify_status поломался
l...@lena.kiev.ua wrote: > > Подскажите хоть пожалуйста, как подебажить. > > Можно попытаться вставить в acl rcpt: > > warn condition = ... >control = debug/opts=+all > Именно в rcpt, не в acl_smtp_dkim ? acl rcpt он большой и в некоторых местах стоит dkim_disable_verify, куда бы вставить этот debug? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] $dkim_verify_status поломался
Подскажите хоть пожалуйста, как подебажить. Victor Sudakov wrote: > Коллеги, > > После многочисленных обновлений exim за последнее время, и не помню > точно после которого обновления, перестала работать проверка DKIM, > точнее $dkim_verify_status. В заголовках входящего письма вижу например: > > Authentication-Results: admin.sibptus.ru; > iprev=pass (mail20-195.srv2.de) smtp.remote-ip=91.229.179.195; > spf=pass smtp.mailfrom=newsletter.metro-cc.ru; > dkim=pass header.d=newsletter.metro-cc.ru > header.i=metron...@newsletter.metro-cc.ru header.s=mailing > header.a=rsa-sha256; > dkim=pass header.d=srv2.de header.s=mailing header.a=rsa-sha256 > > А статус проверки выставляется в none: > > X-DKIM-result: none > > Вот что в конфиге: > > dkim_verify_signers = > gmail.com:yandex.ru:groups.io:ebay.com:paypal.com:$dkim_signers > acl_smtp_dkim = acl_check_dkim > > acl_check_dkim: >warn dkim_status = none:invalid:fail > add_header = :at_start:${authresults {$primary_hostname}} > add_header = X-DKIM-result: $dkim_verify_status >accept add_header = :at_start:${authresults {$primary_hostname}} > > > А раньше работало. > > В логе тоже вроде как "verification succeeded": > > 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=newsletter.metro-cc.ru s=mailing > c=relaxed/simple a=rsa-sha256 b=1024 i=metron...@newsletter.metro-cc.ru > [verification succeeded] > 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=newsletter.metro-cc.ru s=mailing > c=relaxed/simple a=rsa-sha256 b=1024 i=metron...@newsletter.metro-cc.ru > [verification succeeded] > 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=srv2.de s=mailing > c=relaxed/simple a=rsa-sha256 b=1024 [verification succeeded] > 2019-10-03 20:53:56 1iG1YK-0004VB-3K <= ret...@newsletter.metro-cc.ru > H=mail20-195.srv2.de [91.229.179.195] P=esmtps > X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no S=62240 DKIM=srv2.de > id=re-p63enoxrdegerbgw7-3k88wrka-3k628g0u-j28...@newsletter.metro-cc.ru > 2019-10-03 20:53:56 1iG1YK-0004VB-3K => |/usr/local/bin/procmail > R=userforward T=address_pipe > 2019-10-03 20:53:56 1iG1YK-0004VB-3K Completed > > > > -- > Victor Sudakov, VAS4-RIPE, VAS47-RIPN > 2:5005/49@fidonet http://vas.tomsk.ru/ > > ___ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users > -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] $dkim_verify_status поломался
Коллеги, После многочисленных обновлений exim за последнее время, и не помню точно после которого обновления, перестала работать проверка DKIM, точнее $dkim_verify_status. В заголовках входящего письма вижу например: Authentication-Results: admin.sibptus.ru; iprev=pass (mail20-195.srv2.de) smtp.remote-ip=91.229.179.195; spf=pass smtp.mailfrom=newsletter.metro-cc.ru; dkim=pass header.d=newsletter.metro-cc.ru header.i=metron...@newsletter.metro-cc.ru header.s=mailing header.a=rsa-sha256; dkim=pass header.d=srv2.de header.s=mailing header.a=rsa-sha256 А статус проверки выставляется в none: X-DKIM-result: none Вот что в конфиге: dkim_verify_signers = gmail.com:yandex.ru:groups.io:ebay.com:paypal.com:$dkim_signers acl_smtp_dkim = acl_check_dkim acl_check_dkim: warn dkim_status = none:invalid:fail add_header = :at_start:${authresults {$primary_hostname}} add_header = X-DKIM-result: $dkim_verify_status accept add_header = :at_start:${authresults {$primary_hostname}} А раньше работало. В логе тоже вроде как "verification succeeded": 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=newsletter.metro-cc.ru s=mailing c=relaxed/simple a=rsa-sha256 b=1024 i=metron...@newsletter.metro-cc.ru [verification succeeded] 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=newsletter.metro-cc.ru s=mailing c=relaxed/simple a=rsa-sha256 b=1024 i=metron...@newsletter.metro-cc.ru [verification succeeded] 2019-10-03 20:53:56 1iG1YK-0004VB-3K DKIM: d=srv2.de s=mailing c=relaxed/simple a=rsa-sha256 b=1024 [verification succeeded] 2019-10-03 20:53:56 1iG1YK-0004VB-3K <= ret...@newsletter.metro-cc.ru H=mail20-195.srv2.de [91.229.179.195] P=esmtps X=TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no S=62240 DKIM=srv2.de id=re-p63enoxrdegerbgw7-3k88wrka-3k628g0u-j28...@newsletter.metro-cc.ru 2019-10-03 20:53:56 1iG1YK-0004VB-3K => |/usr/local/bin/procmail R=userforward T=address_pipe 2019-10-03 20:53:56 1iG1YK-0004VB-3K Completed -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Почту не принимать, но принимать.
dawnshade wrote: > control = fakereject/ < message > > This control is permitted only for the MAIL, RCPT, and DATA ACLs, in > other words, only when an SMTP message is being received. If Exim > accepts the message, instead the final 250 response, a 550 rejection > message is sent. However, Exim proceeds to deliver the message as > normal. The control applies only to the current message, not to any > subsequent ones that may be received in the same SMTP connection. > подойдет? Познавательно, но мне надо действительно не принимать, тов. Пупкин не хочет эти письма видеть, потому что его логин - очень популярное имя, на которые спамеры постоянно шлют просто наугад (в предположении, что на каждом почтовом домене есть alex, marina и др.). Сделал через acl_check_rcpt: deny message = This mailbox is disabled local_parts = pupkin : pupkinvv -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Почту не принимать, но принимать.
George L. Yermulnik wrote: > > > Есть локальный пользователь pupkin, как бы сделать чтобы > > > 1. Почта на pupkin@mydomain не принималась (:fail:), но при этом > > > 2. Почта на webmaster@mydomain поступала в ящик этому самому pupkin, то > > есть я же не могу написать в aliases > > > pupkin :fail: Invalid mailbox > > webmaster: pupkin > > > Проблема курицы и яйца какая-то. > > А фейлить pupkin@mydomain на этапе acl_smtp_rcpt не проходит? В смысле > делать это через acl, а не через aliases. Спасибо за совет, так и сделаю. > Или нужно фейлить почту и от > локальных пользователей? Если подумать, то нет. Наоборот полезно, чтобы локальная почта на pupkin (сообщения от at, cron и т.п.) продолжала ходить. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] Почту не принимать, но принимать.
Коллеги, Есть локальный пользователь pupkin, как бы сделать чтобы 1. Почта на pupkin@mydomain не принималась (:fail:), но при этом 2. Почта на webmaster@mydomain поступала в ящик этому самому pupkin, то есть я же не могу написать в aliases pupkin :fail: Invalid mailbox webmaster: pupkin Проблема курицы и яйца какая-то. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Multidomain DKIM
Victor Cheburkin wrote: > >>>>>>> 2. Здесь нет fallback на default domain на случай отсутствия файла с > >>>>>>> ключом, или я его не вижу? > >>>>>> > >>>>>> Если нет файла, нет подписи. Толку-то от fallback, если домен будет > >>>>>> другой? > >>>>> > >>>>> Я не эксперт по DKIM, но AFAIR нет такого требования, чтобы подпись была > >>>>> от того же самого домена, который во From. > >>>> > >>>> Гм. Вроде оно изначально -- подпись идет от домена отправителя. Если > >>> > >>> А в случае mailing list, который не переписывает From на себя, но > >>> модифицирует тело письма например? > >> > >> Это изначально больная тема. Еще с SPF. > > > > Но в случае DKIM как раз получается нормально: поменял письмо - взял > > ответственность на себя. > > Угу. Только вот доверия к такому письму уже не будет... Да и все проверяющие > системы, которые берут домен из From даже смотреть не будут на такую подпись. > Вот получаю я такое письмо, смотрю -- From один, подпись другая... Спам 99%. > И никому Ваша ответственность, в этом случае, не нужна... По крайней мере > пока. Не все же проверяющие системы так топорно работают. Вот например что сообщает Gmail о подобном письме: http://admin.sibptus.ru/~vas/Screenshot_2019-01-03-13-31-04-965_com.google.android.gm.png С учетом того, что MX домена mpeks.tomsk.su находится в домене sibptus.ru и это легко проверить простым DNS-запросом, IMHO это правильный подход к DKIM-подписи. > > >>>> это Ваш поддомен, то да, можно не париться, но если нет -- какой тогда > >>>> в этом смысл? Я пишу от Вашего лица, но подписываю письмо своим > >>>> ключем? Где ж тогда гарантия, что пишете Вы? > >>> > >>> Если не для подтверждения подлинности отправителя, а для подтверждения > >>> того что письмо по дороге не менялось, то наверное может иметь смысл. \ > >> > >> Кому будет легче, если я отправлю письмо от Вашего имени и оно по дороге > >> не поменяется? > > > > Ну как минимум сразу будет видно, кто подделал мой From :-) > > Да, случай будет как со списками рассылки. Т.е. будет fail. По спецификации DKIM это вовсе не fail, если "From" и подписант различаются. Это вполне себе pass, если подпись подлинная. Хотя если по большому счету, в E-mail нельзя доверять ничему, кроме E2EE. > >>>>>>> 3. Селектор для всех доменов одинаковый, а вряд ли удастся этого > >>>>>>> достичь. > >>>>>> > >>>>>> Если селекторы разные, то лучше подумать, как узнавать какому домену > >>>>>> какой селектор. > >>>>> > >>>>> Ну я в изначальном письме предложил его хранить в файле > >>>>> ${domain}.selector.txt > >>>> > >>>> будет еще n файлов на n доменов. смысл? > >>> > >>> IMHO удобно такие вещи хранить в отдельных файликах, удалил-добавил файл > >>> вместе с удалением-добавлением домена. Скажем из текстового файла > >>> строчку из середины удалить или отредактировать - уже менее удобно, > >>> особенно если скриптом. > >> > >> Гм, не вижу проблемы со скриптами: sed справляется с этим без вопросов. > >> sed -i '/^domain\.com$/d' domainlist.file -- и нет более domain.com в этом > >> файле. > > > > Не хочу начинать holy war, но IMHO весьма неспроста в линуксах (и не > > только) пошла мода пилить конфиги на маленькие фрагменты и класть их в > > conf.d. Значит это даёт удобства. > > Holy war? Да все просто как угол дома -- при установке из пакета куда как > проще один файлик положить/удалить. (глядя на dovecot) И поэтому в _одном_ пакете конфиг побит на полста фрагментов? Что-то не сходится. > > > Это ведь по надежности при автоматизации совершенно разные решения: > > а) просто сказать "rm /etc/exim/somedomain.pem" и б) сгенерить sed script, > > который сделает что нужно, а потом запустить его с нужными правами. А > > если некорректно сгенерить - ещё и снесёт что-нибудь лишнее. > > > Не sed script, а скрипт, который сделает все нужные действия. Разные > вещи, не так ли? К тому же, имея скрипт -- имеем готовую процедуру, в > которой сложнее совершить ошибку чем в удалении пофайлово, а потом, > возможно, еще каких-то действиях. Но дело такое, лично мне все равно, > добавить sed или rm в скрипт, но смотреть мне удобнее в одном файле, а > не в 10, но это дело вкуса и, в любом случае, это немного уже не про > exim. Да, пора с этим заканчивать, а то придёт кто-нибудь и скажет, что единственно верный способ - хранить такую информацию в SQL, или в реестре. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Multidomain DKIM
Victor Cheburkin wrote: > > > > Victor Cheburkin wrote: > >>>>> 2. Здесь нет fallback на default domain на случай отсутствия файла с > >>>>> ключом, или я его не вижу? > >>>> > >>>> Если нет файла, нет подписи. Толку-то от fallback, если домен будет > >>>> другой? > >>> > >>> Я не эксперт по DKIM, но AFAIR нет такого требования, чтобы подпись была > >>> от того же самого домена, который во From. > >> > >> Гм. Вроде оно изначально -- подпись идет от домена отправителя. Если > > > > А в случае mailing list, который не переписывает From на себя, но > > модифицирует тело письма например? > > Это изначально больная тема. Еще с SPF. Но в случае DKIM как раз получается нормально: поменял письмо - взял ответственность на себя. > > >> это Ваш поддомен, то да, можно не париться, но если нет -- какой тогда > >> в этом смысл? Я пишу от Вашего лица, но подписываю письмо своим > >> ключем? Где ж тогда гарантия, что пишете Вы? > > > > Если не для подтверждения подлинности отправителя, а для подтверждения > > того что письмо по дороге не менялось, то наверное может иметь смысл. \ > > Кому будет легче, если я отправлю письмо от Вашего имени и оно по дороге не > поменяется? Ну как минимум сразу будет видно, кто подделал мой From :-) > > >>>>> 3. Селектор для всех доменов одинаковый, а вряд ли удастся этого > >>>>> достичь. > >>>> > >>>> Если селекторы разные, то лучше подумать, как узнавать какому домену > >>>> какой селектор. > >>> > >>> Ну я в изначальном письме предложил его хранить в файле > >>> ${domain}.selector.txt > >> > >> будет еще n файлов на n доменов. смысл? > > > > IMHO удобно такие вещи хранить в отдельных файликах, удалил-добавил файл > > вместе с удалением-добавлением домена. Скажем из текстового файла > > строчку из середины удалить или отредактировать - уже менее удобно, > > особенно если скриптом. > > Гм, не вижу проблемы со скриптами: sed справляется с этим без вопросов. > sed -i '/^domain\.com$/d' domainlist.file -- и нет более domain.com в этом > файле. Не хочу начинать holy war, но IMHO весьма неспроста в линуксах (и не только) пошла мода пилить конфиги на маленькие фрагменты и класть их в conf.d. Значит это даёт удобства. Это ведь по надежности при автоматизации совершенно разные решения: а) просто сказать "rm /etc/exim/somedomain.pem" и б) сгенерить sed script, который сделает что нужно, а потом запустить его с нужными правами. А если некорректно сгенерить - ещё и снесёт что-нибудь лишнее. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Multidomain DKIM
Victor Cheburkin wrote: > >>> 2. Здесь нет fallback на default domain на случай отсутствия файла с > >>> ключом, или я его не вижу? > >> > >> Если нет файла, нет подписи. Толку-то от fallback, если домен будет другой? > > > > Я не эксперт по DKIM, но AFAIR нет такого требования, чтобы подпись была > > от того же самого домена, который во From. > > Гм. Вроде оно изначально -- подпись идет от домена отправителя. Если А в случае mailing list, который не переписывает From на себя, но модифицирует тело письма например? > это Ваш поддомен, то да, можно не париться, но если нет -- какой тогда > в этом смысл? Я пишу от Вашего лица, но подписываю письмо своим > ключем? Где ж тогда гарантия, что пишете Вы? Если не для подтверждения подлинности отправителя, а для подтверждения того что письмо по дороге не менялось, то наверное может иметь смысл. > >>> 3. Селектор для всех доменов одинаковый, а вряд ли удастся этого > >>> достичь. > >> > >> Если селекторы разные, то лучше подумать, как узнавать какому домену > >> какой селектор. > > > > Ну я в изначальном письме предложил его хранить в файле > > ${domain}.selector.txt > > будет еще n файлов на n доменов. смысл? IMHO удобно такие вещи хранить в отдельных файликах, удалил-добавил файл вместе с удалением-добавлением домена. Скажем из текстового файла строчку из середины удалить или отредактировать - уже менее удобно, особенно если скриптом. > > > > Типа да. А какой лукап возвращает содержимое файла по его имени, такой > > существует? > > > Есть: > ${readfile{}{}} Спасибо. Наверное "eol string" надо будет сделать пустой. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Multidomain DKIM
Mikhail Golub wrote: > > > 02.01.2019 12:52, Victor Sudakov пишет: > > Я не эксперт по DKIM, но AFAIR нет такого требования, чтобы подпись была > > от того же самого домена, который во From. > > Да, нет. > Но лучше использовать домен из заголовка From. > Это надо будет дальше, для DMARC ... Я с прицелом на DMARC и начал делать Multidomain DKIM, но fallback на default domain хотел бы сохранить. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Multidomain DKIM
Victor Cheburkin wrote: > > > 2 янв. 2019 г., в 12:03, Victor Sudakov написал(а): > > > > Victor Cheburkin wrote: > >> Hi! > >> > >> Нашел где-то в инете, что-то правил, вот результат: > >> > >> EXIM = /etc/exim > >> DKIM_SIGN = dkim > >> DKIM_DOMAIN = ${lc:${domain:$h_from:}} > >> DKIM_FILE = EXIM/DKIM_SIGN-DKIM_DOMAIN.key > >> > >> remote_smtp: > >> driver = smtp > >> dkim_domain = DKIM_DOMAIN > >> dkim_selector = DKIM_SIGN > >> dkim_private_key = ${if exists{DKIM_FILE} {DKIM_FILE}} > >> dkim_sign_headers = > >> From:Subject:Date:Message-Id:Reply-To:To:Cc:Sender:Content-Type:\ > >> ${if def:h_list-id: > >> {List-Id:List-Help:List-Subscribe:List-Unsubscribe}} > > > > Да, в интернете такие примеры и я находил, но они вызывают вопросы: > > > > 1. Обязательно все эти макросы DKIM_SIGN, DKIM_DOMAIN и прочие > > определять и потом с ними работать, или можно все эти выражения сразу в > > транспорте писать? > > Можно и в транспорте. Но тогда просто будет немного менее читабельно, кмк. OK. > > > 2. Здесь нет fallback на default domain на случай отсутствия файла с > > ключом, или я его не вижу? > > Если нет файла, нет подписи. Толку-то от fallback, если домен будет другой? Я не эксперт по DKIM, но AFAIR нет такого требования, чтобы подпись была от того же самого домена, который во From. > > > 3. Селектор для всех доменов одинаковый, а вряд ли удастся этого > > достичь. > > Если селекторы разные, то лучше подумать, как узнавать какому домену > какой селектор. Ну я в изначальном письме предложил его хранить в файле ${domain}.selector.txt > И, кмк, в этом случае лучше думать в сторону полиси, а > не пытаться изобретать велосипеды. Можно хранить все это в > файле/базе/таблице и оттуда через lookup доставать селектор, имя > файла, еще чего-нить (headers?). Типа да. А какой лукап возвращает содержимое файла по его имени, такой существует? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Multidomain DKIM
Victor Cheburkin wrote: > Hi! > > Нашел где-то в инете, что-то правил, вот результат: > > EXIM = /etc/exim > DKIM_SIGN = dkim > DKIM_DOMAIN = ${lc:${domain:$h_from:}} > DKIM_FILE = EXIM/DKIM_SIGN-DKIM_DOMAIN.key > > remote_smtp: > driver = smtp > dkim_domain = DKIM_DOMAIN > dkim_selector = DKIM_SIGN > dkim_private_key = ${if exists{DKIM_FILE} {DKIM_FILE}} > dkim_sign_headers = > From:Subject:Date:Message-Id:Reply-To:To:Cc:Sender:Content-Type:\ > ${if def:h_list-id: > {List-Id:List-Help:List-Subscribe:List-Unsubscribe}} Да, в интернете такие примеры и я находил, но они вызывают вопросы: 1. Обязательно все эти макросы DKIM_SIGN, DKIM_DOMAIN и прочие определять и потом с ними работать, или можно все эти выражения сразу в транспорте писать? 2. Здесь нет fallback на default domain на случай отсутствия файла с ключом, или я его не вижу? 3. Селектор для всех доменов одинаковый, а вряд ли удастся этого достичь. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] Multidomain DKIM
Коллеги, Нет ли у кого работающего примера multidomain DKIM, которым не жалко поделиться? Хотелось бы, чтобы dkim_selector и dkim_private_key брались из текстовых файликов типа ${domain}.pem и ${domain}.selector в зависимости от $h_from, а если файликов не нашлось, то возвращалось к подписыванию исходящего письма доменом по умолчанию: remote_smtp: driver = smtp dkim_domain = example.org dkim_selector = 20181118 dkim_private_key = /usr/local/etc/exim/example.org.private.pem dkim_canon = relaxed dkim_sign_headers = Date:From:To:Subject:Message-Id:In-Reply-To В сети в общем-то примеры есть типа https://www.ryanschulze.net/archives/1728, но они какие-то недоделанные, либо заточенные под Debian-овский шинкованный конфиг. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] DKIM
Victor Sudakov wrote: Это, как я понимаю, известная и описанная в RFC6377 багофича, когда mail list manager дописывает футер в тело сообщения, и сообщение становится неаутентичным. Видимо MLM на mailground.net тоже страдает этой проблемой - и это неизбежно, если этот MLM не является DKIM-aware. Письма, прошедшие через списки рассылки freebsd.org, тоже приходят с невалидной подписью, т.к. MLM дописывает футер. Впрочем если подписать письмо в рассылку с помощью PGP/MIME, то MLM не трогает тело и подпись остаётся валидная. Гораздо интереснее, когда в папке писем, не прошедших проверку, я обнаружил письма от cust-security-announce AT cisco.com и CGPupdate-report AT mail.stalker.com - удивлению моему не было предела. Причины аналогичные: body modified in transit или headers modified in transit. Эти-то могли бы заметить, серьёзные же люди. А вот MLM на groups.io, надо отдать должное, красиво работает. Всю рассылаемую почту подписывает своим доменом. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] DKIM
Mikhail Golub wrote: Решил тоже вернуться к проверке DKIM. Раньше я ничего полезного для себя в проверке DKIM во входящей почте не получил. А чего я собственно вообще заинтересовался DKIM-ом. Есть неплохой почтовый клиент для Андроид, называется AquaMail. Так вот он рисует на письме зелёный или красный замочек в зависимости от содержимого хедера Authentication-Results. Лучше бы он, наверное, этого не делал... Промониторив несколько дней почту на ошибки DKIM понял, что на статус "invalid" не стоит обращать внимания ... Ошибки типа "failed key import". Что может быть полезным - статус "fail". Т.е. подпись есть, но проверка не проходит. И вот здесь засада :( И ещё какая. Домены, которые используют услуги Office 365, не проходят проверку. Если бы только они. Вот например твоё письмо, на которое я сейчас отвечаю - тоже не прошло проверку: dkim=fail (body hash mismatch; body probably modified in transit) Это, как я понимаю, известная и описанная в RFC6377 багофича, когда mail list manager дописывает футер в тело сообщения, и сообщение становится неаутентичным. Видимо MLM на mailground.net тоже страдает этой проблемой - и это неизбежно, если этот MLM не является DKIM-aware. Письма, прошедшие через списки рассылки freebsd.org, тоже приходят с невалидной подписью, т.к. MLM дописывает футер. Впрочем если подписать письмо в рассылку с помощью PGP/MIME, то MLM не трогает тело и подпись остаётся валидная. Гораздо интереснее, когда в папке писем, не прошедших проверку, я обнаружил письма от cust-security-announce AT cisco.com и CGPupdate-report AT mail.stalker.com - удивлению моему не было предела. Причины аналогичные: body modified in transit или headers modified in transit. Эти-то могли бы заметить, серьёзные же люди. Например: mih.onmicrosoft.com; fail - bodyhash_mismatch -- это metinvestholding.com datagr.onmicrosoft.com; fail - bodyhash_mismatch -- это Датагруп. В privatbank.ua используются сервисы Google: privatbank.ua; fail - signature_incorrect Т.е. вполне себе уважаемые и не маленькие компании в Украине. И если согласно FAIL не принять письмо ... - в общем не стоит :) А красный замочек напротив такого письма AquaMail всё равно нарисует. Разве что выполнять проверки только для конкретных доменов типа google.com, paylal.com .., о чем и писал в своем вопросе Виктор. Вот и сделай проверку для cisco.com - будет сюрприз. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] DKIM
Подскажите pls, как исключить определённых локальных пользователей из проверки DKIM при приёме почты для них? По условию domain (эти пользователи в виртуальных доменах) не получилось: "cannot test domains condition in DKIM ACL" -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] DKIM
Victor Sudakov wrote: Вроде работает как ожидается. И даже красиво получилось с поддельным письмом: Date: Mon, 19 Nov 2018 20:50:14 -0700 From offic...@ail.com Tue Nov 20 10:50:55 2018 From: PayPal Service To: v...@vas.dcs.aber.ac.uk Subject: Alert : Important about your account. Authentication-Results: admin.sibptus.ru; iprev=fail; spf=none smtp.mailfrom=ail.com; dkim=tmperror (pubkey unavailable) header.d=ksjung14.com header.s=default header.a=rsa-sha256 X-DKIM-Debug: invalid X-SpamProbe: GOOD 0.809 495782c13b123604eabad8f4f0baffbd Click here to view this message in your browser. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] DKIM
Victor Sudakov wrote: >>Такой минимальной конфигурации достаточно для проверки DKIM во >>входящей почте? (для доменов gmail.com, groups.io присутствие подписи >>обязательно, для остальных - проверяем если она есть): >> >>dkim_verify_signers = gmail.com:groups.io:$dkim_signers >>acl_smtp_dkim = acl_check_dkim >> >>begin acl >> >>acl_check_dkim: >>denymessage = DKIM signature verification failure >>dkim_status = none:invalid:fail >> >>accept [dd] В общем наверное лучше мне заменить deny на warn и проверить на практике, чем тут теоретизировать. Вроде работает как ожидается. Пока только помечаю и набираю статистику, в приёме не отказываю: == dkim_verify_signers = gmail.com:yandex.ru:groups.io:ebay.com:paypal.com:$dkim_signers acl_smtp_dkim = acl_check_dkim begin acl acl_check_dkim: warn dkim_status = none:invalid:fail add_header = X-DKIM-Debug: $dkim_verify_status add_header = :at_start:${authresults {$primary_hostname}} accept add_header = X-DKIM-Debug: $dkim_verify_status add_header = :at_start:${authresults {$primary_hostname}} == -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] DKIM
l...@lena.kiev.ua wrote: >>Такой минимальной конфигурации достаточно для проверки DKIM во >>входящей почте? (для доменов gmail.com, groups.io присутствие подписи >>обязательно, для остальных - проверяем если она есть): >> >>dkim_verify_signers = gmail.com:groups.io:$dkim_signers >>acl_smtp_dkim = acl_check_dkim >> >>begin acl >> >>acl_check_dkim: >>denymessage = DKIM signature verification failure >>dkim_status = none:invalid:fail >> >>accept > >Подозреваю, что это будет отвергать все письма от всех остальных кроме >gmail и groups.io. А почему? По моему представлению: 1. Если в письме нет DKIM-заголовков и это не gmail и groups.io, то они в acl_check_dkim вообще не попадут (их не окажется в dkim_verify_signers, потому что их не будет в $dkim_signers). В dkim_verify_signers есть gmail.com. dkim_verify_signers - это список тех From, которых надо передавать на проверку в acl_smtp_dkim. Поэтому если письмо будет (по-настоящему или не по-настоящему) от gmail.com, то да Будет проверка gmail.com, результат none. Или fail. Или pass. В зависимости от того, действительно ли это письмо от gmail.com. В общем наверное лучше мне заменить deny на warn и проверить на практике, чем тут теоретизировать. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] DKIM
l...@lena.kiev.ua wrote: Такой минимальной конфигурации достаточно для проверки DKIM во входящей почте? (для доменов gmail.com, groups.io присутствие подписи обязательно, для остальных - проверяем если она есть): dkim_verify_signers = gmail.com:groups.io:$dkim_signers acl_smtp_dkim = acl_check_dkim begin acl acl_check_dkim: denymessage = DKIM signature verification failure dkim_status = none:invalid:fail accept Подозреваю, что это будет отвергать все письма от всех остальных кроме gmail и groups.io. А почему? По моему представлению: 1. Если в письме нет DKIM-заголовков и это не gmail и groups.io, то они в acl_check_dkim вообще не попадут (их не окажется в dkim_verify_signers, потому что их не будет в $dkim_signers). 2. Если в письме нет DKIM-заголовков и это gmail или groups.io, то результат проверки будет none и такие письма будут отвергнуты. 3. Если заголовки есть, они попадут в acl_check_dkim и будут проверены, и отвергнуты, если результат проверки invalid или fail. Что я не учёл? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] DKIM
Коллеги, Такой минимальной конфигурации достаточно для проверки DKIM во входящей почте? (для доменов gmail.com, groups.io присутствие подписи обязательно, для остальных - проверяем если она есть): dkim_verify_signers = gmail.com:groups.io:$dkim_signers acl_smtp_dkim = acl_check_dkim begin acl acl_check_dkim: denymessage = DKIM signature verification failure dkim_status = none:invalid:fail accept -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] format=flowed
Коллеги, Вопрос не про exim, но здесь присутствуют знатоки почтовых протоколов, может кто посмотрит. Является ли данное письмо http://admin.sibptus.ru/~vas/flowed.zip корректным с точки зрения format=flowed? А если является, то почему Gmail и MS Outlook 2016 не желают переформатировать абзац при изменении размеров окна просмотра? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Перенаправить почту пользователя
Mikhail Golub wrote: > Доброе утро. > > Я использую SRS для исключения проблем с SPF. > Все пользователи виртуальные для Exim,поэтому "~/.forward" нету. > Но есть роутеры, который позволяет делать алиас, форвард ... Нет ли хорошей документации, как настроить SRS для обычных пользователей с форвардами? exim у меня собран с SRS=on, надо только задействовать как-то. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Перенаправить почту пользователя
Victor Sudakov wrote: > l...@lena.kiev.ua wrote: > > > При необходимости перенаправить почту одного из моих пользователей на > > > другой почтовый сервер > > > > Лучше убедить пользователя забирать почту с вашего сервера по POP3. > > Gmail, mail.ru и др. умеют это делать. > > Хорошо, если умеют, но хотелось бы рассмотреть общий случай пересылки > по SMTP. > > > > > > классическим механизмом ~/.forward пользоваться уже в > > > общем-то нельзя из-за SPF и прочего. > > > > Gmail говорит, что пытается понять, что почта перенаправлена, > > и советует не изменять envelope-from. > > То есть на Gmail можно форвардить по-старинке? Это полезная > информация, а где у них это написано официально? Нашёл статейку: https://support.google.com/mail/answer/175365?hl=en -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Перенаправить почту пользователя
l...@lena.kiev.ua wrote: > > При необходимости перенаправить почту одного из моих пользователей на > > другой почтовый сервер > > Лучше убедить пользователя забирать почту с вашего сервера по POP3. > Gmail, mail.ru и др. умеют это делать. Хорошо, если умеют, но хотелось бы рассмотреть общий случай пересылки по SMTP. > > > классическим механизмом ~/.forward пользоваться уже в > > общем-то нельзя из-за SPF и прочего. > > Gmail говорит, что пытается понять, что почта перенаправлена, > и советует не изменять envelope-from. То есть на Gmail можно форвардить по-старинке? Это полезная информация, а где у них это написано официально? > Тем не менее, > из-за пересылки спама репутация вашего сервера может пострадать. Это минус, я согласен, но иногда без пересылки не обойтись. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] Перенаправить почту пользователя
Коллеги, При необходимости перенаправить почту одного из моих пользователей на другой почтовый сервер, классическим механизмом ~/.forward пользоваться уже в общем-то нельзя из-за SPF и прочего. Я не придумал ничего лучшего, как засунуть пользователю в .forward следующую конструкцию: |/usr/local/sbin/exim -f pup...@mydomain.ru -i pup...@gmail.com Но это как-то криво, нет? Как минимум для переправленных таким способом писем прерывается преемственность в логе exim, что неудобно. Сделать "echo pup...@gmail.com > ~pupkin/.forward", как в старые добрые времена, нельзя из-за возможных проблем с SPF. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] домен mpeks.tomsk.su
Valentin Nechayev wrote: > > > Вопрос к знатокам почтовых протоколов. Невозможность разрезолвить > > домен получателя - это временная ошибка или постоянная с точки зрения > > доставки почты? [dd] > > А в RFC1034 целая глава: > > 5.2.3. Temporary failures Спасибо. > > Думаю, можно на это ссылаться. > > > А вообще история мутная. Делегирование tomsk.su прекращалось на > > несколько часов 2 октября, Recent Bounces показываются за 4-6 октября, > > автор groups.io говорит "their DNS records had was fixed > > around 11pm pacific time Friday night. That's when we started to be > > able to send email to them again" (это видимо пятница 5 октября). > > Где-то эти SERVFAIL задержались на несколько дней? > Я бы не удивился. Интересно, а состояние SERVFAIL может закешироваться? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] домен mpeks.tomsk.su
l...@lena.kiev.ua wrote: > > в https://groups.io/g/SBL/subdeliveries висят около 20 сообщений в > > "Recent Bounces", датированных 4-6 Oct, и даже не думают доставляться по > > назначению. > > > > Может там что-то надо пнуть руками, чтобы произошла попытка доставки и эти > > сообщения наконец ушли? Или они уже всё, списаны в утиль? > > Уже всё. То, что видят рядовые подписчики в Recent Bounces, > повторяться не будет. Вопрос к знатокам почтовых протоколов. Невозможность разрезолвить домен получателя - это временная ошибка или постоянная с точки зрения доставки почты? А вообще история мутная. Делегирование tomsk.su прекращалось на несколько часов 2 октября, Recent Bounces показываются за 4-6 октября, автор groups.io говорит "their DNS records had was fixed around 11pm pacific time Friday night. That's when we started to be able to send email to them again" (это видимо пятница 5 октября). -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] домен mpeks.tomsk.su
l...@lena.kiev.ua wrote: > > Есть ли новости по доставке почты c groups.io на mpeks.tomsk.su? > > > > А ошибка в веб-интерфейсе groups.io действительно загадочная: > > > > "MX lookup returned: lookup mpeks.tomsk.su on 173.230.155.5:53: server > > misbehaving" > > Ответ от автора groups.io (он написал софт на языке Go): > > - > > From the logs it looks like whatever issue their DNS records had was > fixed around 11pm pacific time Friday night. That's when we started to > be able to send email to them again. Интересно, какую Friday night он имеет в виду. Домен tomsk.su был кратковременно недоступен (снят с делегирования за неуплату) 02.10.2018, и через несколько часов оплачен и включен обратно. Но это вторник. > > Our algorithm is that we first try to look up MX records. If we encounter > an error/can't find any, then we lookup their A record. Совершенно правильно товарищ говорит, никакие NS записи не нужны. Ищем MX, при отсутствии ищем A (или , наверное). > > The unhelpful 'server misbehaving' message is generated within the Go > net.LookupIP() function and I think generally just means something > responded SERVFAIL, although I'm not positive about that. It would be > nice if that error could be replaced with something better. Таки да, 02.10.2018 был кратковременный SERVFAIL, потому что nic.ru переписывает NS-записи неоплаченных доменов на какие-то свои специальные сервера, возвращающие SERVFAIL. > > Please let me know if you see this come up again. Как бы в https://groups.io/g/SBL/subdeliveries висят около 20 сообщений в "Recent Bounces", датированных 4-6 Oct, и даже не думают доставляться по назначению. Может там что-то надо пнуть руками, чтобы произошла попытка доставки и эти сообщения наконец ушли? Или они уже всё, списаны в утиль? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] домен mpeks.tomsk.su
l...@lena.kiev.ua wrote: > В email-конференции (mailing list) модераторов конференций на сервере > groups.io > пожаловались на ошибку, выданную серверами groups.io при попытке отправить > сообщения из конференций на адрес @ mpeks.tomsk.su: > https://groups.io/g/GroupManagersForum/message/12296 Есть ли новости по доставке почты c groups.io на mpeks.tomsk.su? А ошибка в веб-интерфейсе groups.io действительно загадочная: "MX lookup returned: lookup mpeks.tomsk.su on 173.230.155.5:53: server misbehaving" -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] домен mpeks.tomsk.su
l...@lena.kiev.ua wrote: > В email-конференции (mailing list) модераторов конференций на сервере > groups.io > пожаловались на ошибку, выданную серверами groups.io при попытке отправить > сообщения из конференций на адрес @ mpeks.tomsk.su: Странно, что они первым делом не попробовали написать на postmas...@mpeks.tomsk.su, IMHO профессионалы почтового дела так поступили бы. Но спасибо, что хоть здесь меня нашли, чудом :-) > https://groups.io/g/GroupManagersForum/message/12296 > > Смотрю домен mpeks.tomsk.su так: [dd] > Получается, что у домена mpeks.tomsk.su нет ни одной записи типа NS. Совершенно верно, нет записей NS, потому что "mpeks.tomsk.su" - это просто имя, label в зоне tomsk.su, а не отдельная делегированная зона. У зоны tomsk.su разумеется есть NS записи. ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 9130 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;; tomsk.su.IN NS ;; ANSWER SECTION: tomsk.su. 86400 IN NS ns2.tomsk.su. tomsk.su. 86400 IN NS ns.tomsk.su. ;; AUTHORITY SECTION: ;; ADDITIONAL SECTION: ;; Query time: 307 msec ;; SERVER: 2001:19f0:300:1704::6 ;; WHEN: Sat Oct 6 18:17:31 2018 ;; MSG SIZE rcvd: 61 > Софт groups.io не может справиться с этой ситуацией. Странный какой-то софт. Что-то они перемудрили. Этот mpeks.tomsk.su и десятки других почтовых доменов в зоне tomsk.su уже третий десяток лет проработали в такой конфигурации, еще со времён древних sendmail-ов и UUCP. > Если спросить так: > > ~ $ host mpeks.tomsk.su > mpeks.tomsk.su mail is handled by 10 admin.sibptus.ru. > ~ $ host admin.sibptus.ru > admin.sibptus.ru has address 95.179.154.55 > admin.sibptus.ru has IPv6 address 2001:19f0:5001:21dc:5400:1ff:feaf:6afb > admin.sibptus.ru mail is handled by 10 admin.sibptus.ru. > > то выдает MX, И хорошо. Почту надо доставлять по MX, если нет MX - то по A. > но всё-таки без NS записей нехорошо. Вот и чекер ошибки выдает: > https://dnsstuff.hostpro.ua/index.php?fDNSreport=mpeks.tomsk.su.&continue=true Это наверное чекер для проверки делегирования какой-нибудь, а mpeks.tomsk.su никому не делегирован. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Max Kostikov wrote: > Victor Sudakov писал 2018-10-05 03:48: > >> Сессию трассерните. > > > > Трейс сессии есть в первом письме в цепочке: > > http://mailground.net/pipermail/exim-users/2018-October/002229.html > > Эта логика расписана здесь: Так вот то ли расписана, то ли "внезапно". > https://www.exim.org/exim-html-current/doc/html/spec_html/ch-message_processing.html > в частности см. 47.1, Если здесь и написано, что в случае "control = submission" нафиг переписывается то, что MUA передал в "MAIL FROM:", то написано это как-то не очень внятно. Вот это ближе всего по смыслу: "By default, submission mode forces the return path to the same address as is used to create the Sender: header. " Но тут можно подумать, что речь идёт о 47.15, а не о "MAIL FROM:" > 47.11 и 47.16 А это про заголовки "From: " и "Sender" ", к обсуждаемому вопросу отношения не имеют. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] capital letters in DNS labels
Может кто знает, какой чёрт иногда делает буквы в DNS labels заглавными? В данном примере "SIBPTUS" стал заглавными буквами. От MUA ушло: 250-admin.sibptus.ru Hello admin.sibptus.tomsk.ru [212.73.125.240] 250-SIZE 31457280 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250-CHUNKING 250-PRDR 250-SMTPUTF8 250 HELP MAIL FROM: rcpt to: DATA 250 OK 250 Accepted 354 Enter message, ending with "." on a line by itself К получателю в ящик пришло: >From v...@sibptus.ru Fri Oct 05 12:50:41 2018 Return-path: Envelope-to: v...@dtdm.tomsk.ru Delivery-date: Fri, 05 Oct 2018 12:50:41 +0700 Received: from admin.sibptus.ru ([95.179.154.55] ident=mailnull) by dtu.net.tomline.ru with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91 (FreeBSD)) (envelope-from ) id 1g8J0b-000Ohq-3q for v...@dtdm.tomsk.ru; Fri, 05 Oct 2018 12:50:41 +0700 Received: from admin.sibptus.tomsk.ru ([212.73.125.240]) by admin.sibptus.ru with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91 (FreeBSD)) (envelope-from ) id 1g8J0F-0007DZ-Oj for v...@dtdm.tomsk.ru; Fri, 05 Oct 2018 12:50:20 +0700 Subject: test from expect -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Victor Sudakov wrote: > > Но не хотелось бы, чтобы формат логина как-то влиял на FQDN в "MAIL FROM:", > как-то это неправильно. "control = submission/sender_retain" похоже решило задачу. Странная проблема на ровном месте. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Alexander Titaev wrote: > >> > >> > Кто может прокомментировать такую проблему с MUA? AquaMail в своих > >> > логах пишет, что использовал "MAIL FROM: ", а exim в > >> > своём логе считает, что envelope-from был v...@admin.sibptus.ru. > >> > >> accept authenticated = * > >> control = submission/domain= > > > Сделал как рекомендовано выше, и почта от MUA вообще перестала > > приниматься, с ошибкой > > > 2018-10-04 14:20:27 1g7xvu-000244-QE H=([192.168.0.106]) [212.73.125.99] > > X=TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128 > > CV=no F= A=sasl_plain:vas rejected after DATA: header > > syntax (unqualified address not permitted: > > failing address in "Sender:" header is: vas): unqualified address not > > permitted: failing address in "Sender:" header is: vas > > > Пока убрал "/domain=" > > > а sasl_plain поймет логин с доменом? Вечером проверю - напишу. Но не хотелось бы, чтобы формат логина как-то влиял на FQDN в "MAIL FROM:", как-то это неправильно. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Max Kostikov wrote: > Victor Sudakov писал 2018-10-04 18:46: > > Для меня оно оказалось сюрпризом, sendmail так никогда не делал > > Я бы не был так уверен в этом (скорее всего вы не правы), Я с sendmail имел дело лет двадцать, в том числе лет пятнадцать с SASL-аутентификацией. > потому что > Sendmail, как раз, славится своим автоматическими хитромудрыми > перезаписями адресов и хедеров в зависимости от настроек опций. Он славится своим конфигом с правилами, это верно. Но если специально не настраивать в нем маскарад (аналог rewrite в exim), то максимум что он сделает в конфигурации по умолчанию - это canonicalization доменного имени. > Вообще, связь между Envelope-from и From в общем случае, отсутствует. > Более того, From может быть совершенно произвольным или вообще пустым и > брать оттуда что либо было бы крайне неразумно. Про "From:" вообще никто не говорит. Задача - чтобы exim не пытался менять envelope-from, полученный от клиента в "MAIL FROM:" в ходе SMTP сессии. Да ещё и лгать при этом в логе, что "так и было". > Потому данные конверта > берутся из MAIL FROM и RCPT TO сессии, А вот хрен, извините. В том и проблема, что они не из MAIL FROM берутся, а exim по каким-то известным ему причинам пытается переписать полученное от MUA в сессии, и это завязано на $authenticated_id. > а никак не из тела письма, Про тело письма никто вообще ничего не говорил. Перечитайте тред внимательно, пожалуйста. > В вашем случае там локальная часть, Нет, в моём случае там полный адрес. Смотрите лог сессии http://mailground.net/pipermail/exim-users/2018-October/002229.html -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Max Kostikov wrote: > Victor Sudakov писал 2018-10-04 18:46: > > Так я не хочу ничего переписывать, я хочу сохранить то, что MUA пишет > > в "MAIL FROM:". Т.е. если аутентификация прошла, пусть пишет что > > хочет, верим. > > Ну так вот у вас там и пишется, похоже, только локальная часть. Нет. > По RFC так можно. Но в рассматриваемом случае это не так. > Сессию трассерните. Трейс сессии есть в первом письме в цепочке: http://mailground.net/pipermail/exim-users/2018-October/002229.html -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Max Kostikov wrote: > Ну, в общем то, это нормальное поведение. Для меня оно оказалось сюрпризом, sendmail так никогда не делал, Communigate тем более. > Можете переписать envelope-to прямо в транспорте через опцию > return-path. > Если у вас логин это только локальная часть, то напишите что-то вроде > > return-path = return_path = $return_p...@example.com > > Но лучше логику вашей конфигурации осмыслить через чтение документации. Так я не хочу ничего переписывать, я хочу сохранить то, что MUA пишет в "MAIL FROM:". Т.е. если аутентификация прошла, пусть пишет что хочет, верим. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Alexander Titaev wrote: > > >> > >> пологаю это следствие того, что auth = vas, а primary_domain = > >> admin.sibptus.ru > > > А что с этим не так и как надо? > > > Ну есть пользователь vas на хосте admin.sibptus.ru, аутентифицируется > > в SMTP через saslauthd. > > да все так, только exim в контексте данных настроек считает что это > и есть валидный envelope from Он из $authenticated_id что ли пытается самостоятельно сконструировать envelope-from? Странная идея IMHO. А чтобы проверять логин/пароль при submission, но MUA-шный envelope-from не трогать, это надо включить что? Это "control = submission/sender_retain" без вариантов? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Alexander Titaev wrote: > >> > >> > Кто может прокомментировать такую проблему с MUA? AquaMail в своих > >> > логах пишет, что использовал "MAIL FROM: ", а exim в > >> > своём логе считает, что envelope-from был v...@admin.sibptus.ru. > >> > >> accept authenticated = * > >> control = submission/domain= > > > Александр, спасибо, но пока не очень понятно. > > > Зачем exim вообще лезет менять envelope-адрес отправителя, если MUA в > > "MAIL FROM:" дал совершенно валидный адрес в виде user@FQDN? > > пологаю это следствие того, что auth = vas, а primary_domain = > admin.sibptus.ru А что с этим не так и как надо? Ну есть пользователь vas на хосте admin.sibptus.ru, аутентифицируется в SMTP через saslauthd. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
l...@lena.kiev.ua wrote: > > a submission mode setting may specify a domain > > to be used when generating a From: or Sender: header line. For example: > > > > control = submission/domain=some.domain > > > > The domain may be empty. > > == > > > > Но не объясняется, что означает empty domain. Вроде не сказано, что > > это сохранение домена, который сообщил клиент. > > Рядом описана опция sender_retain. Согласно документации, она много другого еще делает: "Specifying sender_retain has the effect of setting local_sender_retain true and local_from_check false for the current incoming message. The first of these allows an existing Sender: header in the message to remain, and the second suppresses the check to ensure that From: matches the authenticated sender. With this setting, Exim still fixes up messages by adding Date: and Message-ID: header lines if they are missing, but makes no attempt to check sender authenticity in header lines." Мне не нравится отключение вышеперечисленных проверок. Мне бы какую-нибудь опцию, которая только отключала это неожиданное *переписывание* FQDN в клиентском "MAIL FROM:", а остальные проверки пусть остаются как есть. > Можно использовать ее вместо empty domain. empty domain похоже вообще использовать нельзя, у меня после его прописывания почта от AquaMail приниматься совсем перестала (см. лог в соседнем письме). -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Alexander Titaev wrote: > > > Кто может прокомментировать такую проблему с MUA? AquaMail в своих > > логах пишет, что использовал "MAIL FROM: ", а exim в > > своём логе считает, что envelope-from был v...@admin.sibptus.ru. > > accept authenticated = * > control = submission/domain= Сделал как рекомендовано выше, и почта от MUA вообще перестала приниматься, с ошибкой 2018-10-04 14:20:27 1g7xvu-000244-QE H=([192.168.0.106]) [212.73.125.99] X=TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128 CV=no F= A=sasl_plain:vas rejected after DATA: header syntax (unqualified address not permitted: failing address in "Sender:" header is: vas): unqualified address not permitted: failing address in "Sender:" header is: vas Пока убрал "/domain=" -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Странная проблема с MUA и "MAIL FROM:"
Alexander Titaev wrote: > > > Кто может прокомментировать такую проблему с MUA? AquaMail в своих > > логах пишет, что использовал "MAIL FROM: ", а exim в > > своём логе считает, что envelope-from был v...@admin.sibptus.ru. > > accept authenticated = * > control = submission/domain= Александр, спасибо, но пока не очень понятно. Зачем exim вообще лезет менять envelope-адрес отправителя, если MUA в "MAIL FROM:" дал совершенно валидный адрес в виде user@FQDN? В документации написано == a submission mode setting may specify a domain to be used when generating a From: or Sender: header line. For example: control = submission/domain=some.domain The domain may be empty. == Но не объясняется, что означает empty domain. Вроде не сказано, что это сохранение домена, который сообщил клиент. В качестве workaround мне помогла установка "qualify_domain = sibptus.ru", но как я понимаю, теперь ЛЮБОЙ FQDN от отправителя будет переписываться в "sibptus.ru", так? Мне такое тоже не надо, тут разные виртуальные домены лежат. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] Странная проблема с MUA и "MAIL FROM:"
sec 2018.10.04 07:51:46.652 +0700 [NETWRK.5954] Encryption: protocol TLSv1.2, cipher TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 2018.10.04 07:51:46.653 +0700 [NETWRK.5954] Semaphore release for [admin.sibptus.ru:587, tlsRelaxed, login = 0, pass = true, cert = false] 2018.10.04 07:51:46.654 +0700 [SMTP.5954] Sending: EHLO [10.156.88.9] 2018.10.04 07:51:46.773 +0700 [SMTP.5954] Data is <178>: 250-admin.sibptus.ru Hello [10.156.88.9] [213.87.123.192] 250-SIZE 31457280 250-8BITMIME 250-PIPELINING 250-AUTH PLAIN LOGIN 250-CHUNKING 250-PRDR 250-SMTPUTF8 250 HELP 2018.10.04 07:51:46.774 +0700 [SMTP.5954] Resp EHLO: 250-admin.sibptus.ru Hello [10.156.88.9] [213.87.123.192] 2018.10.04 07:51:46.774 +0700 [SMTP.5954] Resp EHLO: 250-SIZE 31457280 2018.10.04 07:51:46.774 +0700 [SMTP.5954] The server's maximum message size is 31457280 2018.10.04 07:51:46.774 +0700 [SMTP.5954] Resp EHLO: 250-8BITMIME 2018.10.04 07:51:46.775 +0700 [SMTP.5954] Resp EHLO: 250-PIPELINING 2018.10.04 07:51:46.775 +0700 [SMTP.5954] Resp EHLO: 250-AUTH PLAIN LOGIN 2018.10.04 07:51:46.775 +0700 [SMTP.5954] The server supports AUTH PLAIN 2018.10.04 07:51:46.775 +0700 [SMTP.5954] The server supports AUTH LOGIN 2018.10.04 07:51:46.776 +0700 [SMTP.5954] Resp EHLO: 250-CHUNKING 2018.10.04 07:51:46.776 +0700 [SMTP.5954] Resp EHLO: 250-PRDR 2018.10.04 07:51:46.776 +0700 [SMTP.5954] Resp EHLO: 250-SMTPUTF8 2018.10.04 07:51:46.776 +0700 [SMTP.5954] Resp EHLO: 250 HELP 2018.10.04 07:51:46.778 +0700 [SMTP.5954] Sending: AUTH PLAIN vas *** 2018.10.04 07:51:46.901 +0700 [SMTP.5954] Data is <30>: 235 Authentication succeeded 2018.10.04 07:51:46.902 +0700 [SMTP.5954] Resp AUTH PLAIN: 235 Authentication succeeded 2018.10.04 07:51:46.902 +0700 [SMTP.5954] Estimated mesage size: 1 K 2018.10.04 07:51:46.903 +0700 MailStateWatcherService state change uri: content://org.kman.AquaMail.data/accounts/2/out/375211974, what: 160, aux = 0x1 2018.10.04 07:51:46.905 +0700 KeepAliveServiceFacade: start 0%: Отправка через v...@sibptus.ru 2018.10.04 07:51:46.906 +0700 MailStateWatcherRemoving account error notification, acct v...@sibptus.ru, id 0x202 2018.10.04 07:51:46.907 +0700 [SMTP.5954] Sending: MAIL FROM: SIZE=10344 2018.10.04 07:51:46.908 +0700 [CONCTR.2] Service state change: uri: content://org.kman.AquaMail.data/accounts/2/out/375211974, what: 160, aux = 0x1 2018.10.04 07:51:46.909 +0700 AccountListShardSend state: uri: content://org.kman.AquaMail.data/accounts/2/out/375211974, what: 160, aux = 0x1 2018.10.04 07:51:46.909 +0700 AsyncDataLoaderImpl Submit org.kman.AquaMail.data.AsyncDataLoader@24db4c2 item org.kman.AquaMail.ui.av$a@9f855d4 2018.10.04 07:51:46.909 +0700 AsyncDataLoaderWorker#0 Submit org.kman.AquaMail.data.AsyncDataLoader@24db4c2 item org.kman.AquaMail.ui.av$a@9f855d4 2018.10.04 07:51:46.910 +0700 AsyncDataLoaderWorker#0 Loading org.kman.AquaMail.ui.av$a@9f855d4 2018.10.04 07:51:46.910 +0700 KeepAliveServiceonStartCommand msg = [0%: Отправка через v...@sibptus.ru] will startForeground 2018.10.04 07:51:46.913 +0700 AsyncDataLoaderWorker#0 Loading org.kman.AquaMail.ui.av$a@9f855d4 took 3 ms 2018.10.04 07:51:46.917 +0700 AsyncDataLoaderImpl Delivering org.kman.AquaMail.data.AsyncDataLoader@24db4c2 item org.kman.AquaMail.ui.av$a@9f855d4 2018.10.04 07:51:46.917 +0700 AccountListShard updateAccountMessageCounts for org.kman.AquaMail.mail.MailAccount@fe0f484: id = 2, username = Victor Sudakov, email = v...@sibptus.ru, name = v...@sibptus.ru -> unread = 22 2018.10.04 07:51:47.027 +0700 [SMTP.5954] Data is <8>: 250 OK 2018.10.04 07:51:47.028 +0700 [SMTP.5954] Resp MAIL FROM:: 250 OK 2018.10.04 07:51:47.029 +0700 [SMTP.5954] Sending: RCPT TO: 2018.10.04 07:51:47.143 +0700 [SMTP.5954] Data is <14>: 250 Accepted 2018.10.04 07:51:47.144 +0700 [SMTP.5954] Resp RCPT TO:: 250 Accepted 2018.10.04 07:51:47.144 +0700 [SMTP.5954] Sending: DATA 2018.10.04 07:51:47.259 +0700 [SMTP.5954] Data is <56>: 354 Enter message, ending with "." on a line by itself 2018.10.04 07:51:47.260 +0700 [SMTP.5954] Resp DATA: 354 Enter message, ending with "." on a line by itself 2018.10.04 07:51:47.272 +0700 [SMTP.5954] Part list dump 2018.10.04 07:51:47.273 +0700 MimeMessagePart TextPart, mime text/plain, size 4 2018.10.04 07:51:47.282 +0700 [SMTP.5954] Chosen charset: us-ascii 2018.10.04 07:51:47.283 +0700 [SMTP.5954] Sending: From: Victor Sudakov 2018.10.04 07:51:47.283 +0700 [SMTP.5954] Sending: To: 2018.10.04 07:51:47.284 +0700 [SMTP.5954] Sending: Date: Thu, 04 Oct 2018 07:51:44 +0700 2018.10.04 07:51:47.284 +0700 [SMTP.5954] Sending: Message-ID: <1663c8f1918.276e.de2d028b2d245d1765dc137fd863b..
Re: [Exim-users] accept mail from unrouteable addresses
Victor Ustugov wrote: > >> > >> > >>> Нужно получать почту от технологических хостов, у которых в > >>> envelope-from может быть что попало, в том числе заведомый Unrouteable > >>> address. > >> > >> У меня такое есть на всяких машинах во внутренних сетях. Я там средствами > >> МТА переписываю адрес отправителя на свой реальный, чтобы можно было > >> отправлять почту на любые релеи. Выглядит он тогда так: "Charlie Root" > >> . Но там - sendmail шлёт всякие логи и алерты. > > > > Это надо на машинах во внутренних сетях маскарад делать, что не > > всегда возможно и не всегда есть желание этим заниматься. > > > > В самом тяжелом случае, однажды мы на NMS от DMR2000 виндовый бинарник > > патчили, чтобы "MAIL FROM" был приемлемый (он там был без доменной > > части и это не настраивалось). > > перечислите IP адреса этих технологических хостов в отдельном списке. > сделайте accept где-то в начале acl_check_rcpt для хостов из этого > списка, если получатель письма из локального домена. > остальные письма или пусть проходят обработку на общих основаниях, или > сделать им deny (если с этих хостов письма не должны уходить дальше > данного сервера). Это разумно, спасибо. Нечто вроде hostlist techno_hosts = x.x.x.x/25 acl_check_rcpt: #где-нибудь до "require verify = sender" accept hosts = +techno_hosts control = dkim_disable_verify control = submission domains = +local_domains Правильно? > > использование relay_from_hosts для решения данной проблемы не исключает > рилеинг во внешний мир через данный сервер неизвестно какой почты с > хостов, на которых может быть не всё хорошо с envelope from, а может и с > чем-то ещё. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] accept mail from unrouteable addresses
Alexander Sheiko wrote: > > > > Нужно получать почту от технологических хостов, у которых в > > envelope-from может быть что попало, в том числе заведомый Unrouteable > > address. > > У меня такое есть на всяких машинах во внутренних сетях. Я там средствами > МТА переписываю адрес отправителя на свой реальный, чтобы можно было > отправлять почту на любые релеи. Выглядит он тогда так: "Charlie Root" > . Но там - sendmail шлёт всякие логи и алерты. Это надо на машинах во внутренних сетях маскарад делать, что не всегда возможно и не всегда есть желание этим заниматься. В самом тяжелом случае, однажды мы на NMS от DMR2000 виндовый бинарник патчили, чтобы "MAIL FROM" был приемлемый (он там был без доменной части и это не настраивалось). > В Exim замена адресов тоже просто обязана быть. ИМХО - это самый > правильный путь, вместо того, чтобы убирать проверки на одном своём > релее. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] accept mail from unrouteable addresses
Victor Sudakov wrote: > l...@lena.kiev.ua wrote: > > > <<< 550 Sender verify failed > > > > Это результат verify = sender > > Это понятно, а как бы его грамотно отменить только для тех, кто в > relay_from_hosts? И поскольку судя по приведенной сессии этот verify > происходит на этапе RCPT TO, то надо что-то вставить в acl_check_rcpt > до "require verify = sender" или сделать в этом месте исключение. А если я "require verify = sender" внутри ACL acl_check_rcpt пониже перенесу, после "accept hosts = +relay_from_hosts" - никаких побочных последствий не будет? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] accept mail from unrouteable addresses
l...@lena.kiev.ua wrote: > > <<< 550 Sender verify failed > > Это результат verify = sender Это понятно, а как бы его грамотно отменить только для тех, кто в relay_from_hosts? И поскольку судя по приведенной сессии этот verify происходит на этапе RCPT TO, то надо что-то вставить в acl_check_rcpt до "require verify = sender" или сделать в этом месте исключение. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] accept mail from unrouteable addresses
Коллеги, Нужно получать почту от технологических хостов, у которых в envelope-from может быть что попало, в том числе заведомый Unrouteable address. Я прописал эти хосты в relay_from_hosts, что бы еще такого добавить в acl_check_rcpt, чтобы вот такого не было: >>> MAIL FROM: <<< 250 OK >>> RCPT TO: <<< 550-Verification failed for <<< 550-Unrouteable address <<< 550 Sender verify failed Заранее спасибо. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Conditional rewrite
Oleksandr Trotsai wrote: > Victor> > Может в конкретный роутер напихать что-то типа > Victor> > headers_add + headers_remove > Victor> > Victor> Отдельный роутер что ли завести под эту задачу? > Victor> > Victor> -- > Victor> Victor Sudakov, VAS4-RIPE, VAS47-RIPN > Victor> sip:suda...@sibptus.tomsk.ru > > Ну да. Тем более, что это хорошо попрадает под условия > задачи, как вы их описали С manualroute на все домены Pupkin,inc ? А поизящнее как-то? Да и headers_add + headers_remove разве перепишет envelope? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Conditional rewrite
Oleksandr Trotsai wrote: > Может в конкретный роутер напихать что-то типа > headers_add + headers_remove Отдельный роутер что ли завести под эту задачу? -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Conditional rewrite
George L. Yermulnik wrote: > > > > Подскажите пожалуйста, как сделать rewrite только в том случае, если > > > письмо должно будет пройти через определенный релей. > > > > В spec.txt есть примеры использования условного оператора в правой > > > части rewrite rule, но как сделать именно по условию "письмо пройдет > > > через такой-то релей"? > > > > Заранее спасибо. > > > Можно попробовать такие варианты (не тестировал) > > > ${if match{$sender_helo_name}{Received: /relayXXX/} > > > ${if match{$h_received}{Received: /relayXXX/} > > Если я правильно понял топикстартера, то нужно узнать не через какой > рилей письмо прошлой, а на какой будет отправлено следующим хопом. > Может быть, что-то в этом роде (не проверял): > ${if match_domain {relay.host}{${lookup dnsdb{mxh=$domain}}} {yes}{no}} > Но нужно учитывать: 1) наличие manualroute'ов; 2) приоритеты MX'ов; 3) etc. > > Если знать итоговую цель, преследуемую топикстартером, может быть, быть > было бы легче помочь решить задачу. Сейчас попробую сформулировать цель. Почта некоторой организации Pupkin,inc обслуживается релеем mx.pupkin.example. Вот если мои пользователи пишут письмо в эту организацию, надо сделать rewrite. Как оно попадет на mx.pupkin.example (через manualroute, DNS lookup и т.п.) - неважно. Важно чтобы перед отдачей релею mx.pupkin.example переписывание произошло. Можно наверное условие переписывания привязать и к envelope-to, тот же результат будет, только придется вести список всех доменов организации Pupkin,inc. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] Conditional rewrite
Коллеги, Подскажите пожалуйста, как сделать rewrite только в том случае, если письмо должно будет пройти через определенный релей. В spec.txt есть примеры использования условного оператора в правой части rewrite rule, но как сделать именно по условию "письмо пройдет через такой-то релей"? Заранее спасибо. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] Сервер с "250-AUTH NTLM" и exim как клиент к нему
Victor Sudakov wrote: > > Не дадите ли пример, как использовать exim в качестве SMTP клиента, > при том что SMTP сервер требует "250-AUTH NTLM". Вот так работает, как показано ниже. kontora.example - это домен с хитрым Exchange сервером, на котором нужно авторизоваться для отправки. begin routers kontora: domains = kontora.example driver = manualroute transport = remote_smtp route_list = * relay.kontora.example begin transports remote_smtp: driver = smtp hosts_require_auth = relay.kontora.example begin authenticators NTLM: driver = spa public_name = NTLM client_username = mfu client_password = Y client_domain = kontora.example -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
[Exim-users] Сервер с "250-AUTH NTLM" и exim как клиент к нему
Коллеги, Не дадите ли пример, как использовать exim в качестве SMTP клиента, при том что SMTP сервер требует "250-AUTH NTLM". Про hosts_require_auth и hosts_try_auth я в курсе, мне бы именно как клиентскую сторону NTLM аутентификатора сконфигурировать. exim 4.87/FreeBSD, собран с AUTH_SPA и AUTH_SASL, а sasl собран с NTLM. Теперь как бы увязать это всё. Заранее спасибо. Как сделать серверную часть NTLM, на exim wiki есть, а клиентскую что-то нагуглить не могу. -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN sip:suda...@sibptus.tomsk.ru ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users