Перейти к содержимому
Калькуляторы

Вопрос по exim - добавить заголовки по умолчанию

На сервере настроил exim. Для отправки используется учетная запись auto@domain.ru. В файле /etc/email-addresses добавлена строчка:

root: auto@domain.ru

При отправке тестового сообщения (из под рута) письмо приходит от следующего адресата: "root <auto@domain.ru>".

Я бы хотел, чтобы почта приходила от такого адресата: "Робот <auto@prov.domain.ru>".

В принципе в файле email-addresses можно указать auto@prov.domain.ru, но это не заменит текстовую часть в адресе (то есть отправитель будет по прежнему называться "root", а не "Робот"). А кроме того у меня есть дополнительные хотелки — я хочу в такие письма автоматически добавлять заголовки, то есть изначально в письме должны быть прописаны следующие заголовки:

sender: auto@domain.ru
from: Робот <auto@prov.domain.ru>
reply-to: Робот <auto@prov.domain.ru>
cc: copy@prov.domain.ru

Можно ли это сделать с помощью exim?

И желательно не с помощью правил rewrite (уж очень у них синтаксис сложный, да и нельзя с их помощью добавить несуществующий заголовок), а как шаблон письма по умолчанию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то не выходит каменный цветок.

 

Пробовал добавить заголовки через headers_add — не подходит, в письме тогда получается два заголовка from и почтовик его блокирует.

Пробовал через rewrite, добавил такие правила:

^auto@domain\.ru "=?UTF-8?...?= <auto@prov.domain.ru>" SFfrw
^auto@prov\.domain\.ru "=?UTF-8?...?= <auto@prov.domain.ru>" SFfrw

При тестах (exim -brw auto@domain.ru) вроде бы все правильно, но тестовые письма приходят от "root <auto@domain.ru>".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Получилось так:

^.* "=?UTF-8?...?= <auto@prov.domain.ru>" SFfw

Подозреваю, что это криво, но работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что-то вообще не могу понять логику rewrite у exim.

Я хочу сделать так, чтобы все исходящие письма автоматически подписывались как "Робот <auto@prov.domain.ru>", за исключением писем, в которых вручную задается заголовок from (например "from: auto+site@prov.domain.ru" не должен изменяться).

Делаю так:

 

В файле /etc/email-addresses есть строчка:

root: auto@prov.domain.ru

В конфигурации есть такой фрагмент:

^<auto@prov.domain.ru>\$ "=?UTF-8?...?= <auto@prov.domain.ru>" SFfwq

Тестирую — заголовок вообще не обрабатывается, письмо подписано как "root <auto@prov.domain.ru>".

В режиме отладки так же ничего не понятно:

root@srv-svc03:/etc/exim4# exim -d -brw auto@prov.domain.ru
Exim version 4.80 uid=0 gid=0 pid=6361 D=fbb95cfd
Berkeley DB: Berkeley DB 5.1.29: (October 25, 2011)
Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages DKIM
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.7.2]
Library version: GnuTLS: Compile: 2.12.20
                         Runtime: 2.12.20
Library version: PCRE: Compile: 8.30
                       Runtime: 8.30 2012-02-04
Total 13 lookups
WHITELIST_D_MACROS: "OUTGOING"
TRUSTED_CONFIG_LIST: "/etc/exim4/trusted_configs"
changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=6361
  auxiliary group list: <none>
seeking password data for user "uucp": cache not available
getpwnam() succeeded uid=10 gid=10
changed uid/gid: calling tls_validate_require_cipher
  uid=101 gid=103 pid=6362
  auxiliary group list: <none>
tls_validate_require_cipher child 6362 ended: status=0x0
configuration file is /var/lib/exim4/config.autogenerated
log selectors = 00000ffc 00612001
cwd=/etc/exim4 4 args: exim -d -brw auto@prov.domain.ru
trusted user
admin user
changed uid/gid: privilege not needed
  uid=101 gid=103 pid=6361
  auxiliary group list: 103
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=8
user name "root" extracted from gecos field "root"
originator: uid=0 gid=0 login=root name=root
address match: subject=auto@prov.domain.ru pattern=*@+local_domains
prov.domain.ru in "@:localhost:server"? no (end of list)
prov.domain.ru in "+local_domains"? no (end of list)
auto@prov.domain.ru in "*@+local_domains"? no (end of list)
address match: subject=auto@prov.domain.ru pattern=*@prov.domain.ru
prov.domain.ru in "prov.domain.ru"? yes (matched "prov.domain.ru")
auto@prov.domain.ru in "*@prov.domain.ru"? yes (matched "*@prov.domain.ru")
search_open: lsearch "/etc/email-addresses"
search_find: file="/etc/email-addresses"
  key="auto" partial=-1 affix=NULL starflags=0
LRU list:
  7/etc/email-addresses
  End
internal_search_find: file="/etc/email-addresses"
  type=lsearch key="auto"
file lookup required for auto
  in /etc/email-addresses
lookup failed
  sender: auto@prov.domain.ru
address match: subject=auto@prov.domain.ru pattern=^<auto@prov.domain.ru>$
auto@prov.domain.ru in "^<auto@prov.domain.ru>$"? no (end of list)
address match: subject=auto@prov.domain.ru pattern=*@+local_domains
prov.domain.ru in "@:localhost:server"? no (end of list)
prov.domain.ru in "+local_domains"? no (end of list)
auto@prov.domain.ru in "*@+local_domains"? no (end of list)
address match: subject=auto@prov.domain.ru pattern=*@prov.domain.ru
prov.domain.ru in "prov.domain.ru"? yes (matched "prov.domain.ru")
auto@prov.domain.ru in "*@prov.domain.ru"? yes (matched "*@prov.domain.ru")
search_open: lsearch "/etc/email-addresses"
  cached open
search_find: file="/etc/email-addresses"
  key="auto" partial=-1 affix=NULL starflags=0
LRU list:
  7/etc/email-addresses
  End
internal_search_find: file="/etc/email-addresses"
  type=lsearch key="auto"
cached data used for lookup of auto
  in /etc/email-addresses
lookup failed
    from: auto@prov.domain.ru
      to: auto@prov.domain.ru
      cc: auto@prov.domain.ru
     bcc: auto@prov.domain.ru
address match: subject=auto@prov.domain.ru pattern=*@+local_domains
prov.domain.ru in "@:localhost:server"? no (end of list)
prov.domain.ru in "+local_domains"? no (end of list)
auto@prov.domain.ru in "*@+local_domains"? no (end of list)
address match: subject=auto@prov.domain.ru pattern=*@prov.domain.ru
prov.domain.ru in "prov.domain.ru"? yes (matched "prov.domain.ru")
auto@prov.domain.ru in "*@prov.domain.ru"? yes (matched "*@prov.domain.ru")
search_open: lsearch "/etc/email-addresses"
  cached open
search_find: file="/etc/email-addresses"
  key="auto" partial=-1 affix=NULL starflags=0
LRU list:
  7/etc/email-addresses
  End
internal_search_find: file="/etc/email-addresses"
  type=lsearch key="auto"
cached data used for lookup of auto
  in /etc/email-addresses
lookup failed
reply-to: auto@prov.domain.ru
address match: subject=auto@prov.domain.ru pattern=^<auto@prov.domain.ru>$
auto@prov.domain.ru in "^<auto@prov.domain.ru>$"? no (end of list)
address match: subject=auto@prov.domain.ru pattern=*@+local_domains
prov.domain.ru in "@:localhost:server"? no (end of list)
prov.domain.ru in "+local_domains"? no (end of list)
auto@prov.domain.ru in "*@+local_domains"? no (end of list)
address match: subject=auto@prov.domain.ru pattern=*@prov.domain.ru
prov.domain.ru in "prov.domain.ru"? yes (matched "prov.domain.ru")
auto@prov.domain.ru in "*@prov.domain.ru"? yes (matched "*@prov.domain.ru")
search_open: lsearch "/etc/email-addresses"
  cached open
search_find: file="/etc/email-addresses"
  key="auto" partial=-1 affix=NULL starflags=0
LRU list:
  7/etc/email-addresses
  End
internal_search_find: file="/etc/email-addresses"
  type=lsearch key="auto"
cached data used for lookup of auto
  in /etc/email-addresses
lookup failed
env-from: auto@prov.domain.ru
  env-to: auto@prov.domain.ru
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=6361 terminating with rc=0 >>>>>>>>>>>>>>>>

В каком виде строка вообще поступает в правило rewrite?

С дописанным доменом из /etc/mailname?

Замененное строкой из /etc/email-addresses?

С дописанным текстом по RFC-2822?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разобрался.

exim явно разрабатывали марсиане, какая-то у него нечеловеческая логика.

Похожие ощущения у меня были, когда я запускал службу на Erlang.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

28 минут назад, alibek сказал:

exim явно разрабатывали марсиане, какая-то у него нечеловеческая логика.

:-))))

 

Вот именно поэтому первое, что я делаю в дебьяне - меняю ЭТО на (sendmail|postfix).

 

P.S.: А я уж думал, что только у меня такие проблемы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если exim на марсе то тогда sendmail в аду чтоли?

просто exim очень гибкий:) настолько гибкий что на его встроенных аклах умудрялись писать реализацию spf когда нативной еще небыло в нем, а за такое приходица платить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

sendmail я использовал лет 15+ назад юным падаваном в режиме "скопировать строку, изменить несколько символов". Поэтому за него ничего сказать не могу, но чем-то непознаваемым его конфиг не выглядел.

Конфиг postfix достаточно логичен и за пару дней в нем вполне можно разобраться.

У exim конфиг слишком самобытен и неочевиден.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у меня sendmail жил гдето до начала 2000 годов, потом как его начали активно ломать по 3 раза на неделе пришлось его заменить, но тот ад и израиль с M4 я досих пор помню:)  и "У exim конфиг слишком самобытен и неочевиден." это фигня:) Круче сендмейла у меня только был какой то маршрутизатор NSG, у которого команды были вида буква:цифра 2буквы:цифра, и подробный мануал к нему с етими ка***ми на ~400 страниц:)  Так что не все так плохо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, GHhost сказал:

у меня sendmail жил гдето до начала 2000 годов, потом как его начали активно ломать по 3 раза на неделе пришлось его заменить, но тот ад и израиль с M4 я досих пор помню:) 

Ой, да ладно! Всего-то 4-е дыры за 2003-й и две в 2006-м. :-)

 

Кстати, в отличие от exim, уже тогда ставился изначально прилично настроенным. А любителей exim "искаропки" приходилось все время "мордом по гуглу" возить чтобы дыры заткнули.

 

Кстати, а чего не нравится в m4? Конфиг как конфиг.  Со своими заморочками, но достаточно гибкий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

на моей памяти этих дыр было значительно больше и их реально эксплуатировали вдобавок, просыпаешся утром а там ой - спам рассылаем или фсе сломали, ну рас сломали 2 сломали 3 сломали скока можно то, даунтаймы стали перевешивать все преимущества, потому и пришлось переехать на exim, в то время еще 3, который казался немного убогим конечно после мощи сендмейла, но зато его никто не ломали:) не уверен точно но это было чуток пораньше 2003 года.

 

В m4 не нравица собсно наличие m4, зачем он нужен? По поводу гибкости тут это бесспорно конечно, sendmail в то время не имел практически равноценных альтернатив в этом плане, поэтому мирились со всеми граблями и дырами, сколько могли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

17 минут назад, GHhost сказал:

на моей памяти этих дыр было значительно больше и их реально эксплуатировали вдобавок, просыпаешся утром а там ой - спам рассылаем или фсе сломали, ну рас сломали 2 сломали 3 сломали скока можно то, даунтаймы стали перевешивать все преимущества, потому и пришлось переехать на exim, в то время еще 3, который казался немного убогим конечно после мощи сендмейла, но зато его никто не ломали:) не уверен точно но это было чуток пораньше 2003 года.

Я тут смотрел:

https://www.freebsd.org/security/advisories.html

 

Ну и... Что-то как-то не ломали. :-) Вообще ни разу. Основной почтовый сервак как-раз на сендмыле и вертится. Ну а мелкие MTA - где чего придется.

 

Вот только не помню в каком году у меня сендмыло полезными мильтерами обросло. Может и раньше этих эпических дыр...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Повезло тебе может, не имел критической массы и мимо прошло. Мильтерами оно обрастает сразу же, если это нормальный публичный сервис а не какиенить рога с капытами.

 

https://www.freebsd.org/security/advisories.html это явно какаято хрень, https://www.cvedetails.com/vendor/31/Sendmail.html тут кстати тоже почемуто, и они не совпадают, 2000 года вообще нет, но почемуто есть вот к примеру вот это https://www.cvedetails.com/cve/CVE-2000-0319/ за 2000 год, а реально там было все очень плохо одно время. явно не все там учтено у них и у бсдэшников тоже. Сдается мне что на многие дыры они CVE просто не заводили.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

https://securityvulns.ru/search/news.asp?keyword=sendmail&start=01.03.2000&end=01.03.2018&x=0&y=0

 

Вот. Нашел альтернативный взгляд на реальность от 3apa3a. Как раз его в то время и использовал как оперативный источник.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, как правильно настроить на exim удостоверение подлинности отправителя?

Почтовая зона у меня обслуживается Gmail, в зоне добавлены записи SPF и DKIM (из гугловской инструкции).

Если отправить письмо через веб-интерфейс или по SMTP на почтовый ящик @yandex.ru, то такое письмо отмечается зеленым замком, Яндекс подтверждает его подлинность (отправитель подтвержден и проверен).

Если отправляю письмо через MTA, то письмо помечается серым значком (отправитель подтвержден, но не проверен).

При этом в обоих письмах есть DKIM-Signature.

Хотелось бы добиться зеленого значка в обоих вариантах.

Я пробовал добавить свой собственный закрытый ключ и отдельный селектор для DKIM, но что-то результата не дало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С такими вводными боюсь без телепатов никак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.