exim dkim перестал подписывать письма.

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модератор: SLEDopit

Ответить
Аватара пользователя
bars
Сообщения: 935
ОС: BSD/LINUX
Контактная информация:

exim dkim перестал подписывать письма.

Сообщение bars »

Добрый день.
Что то изменилось в версии exim4.
Письма перестали подписываться dkim.
Exim version 4.94
В начале конфига exim.
# dkim
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /usr/local/etc/exim/${lc:${domain:$h_from:}}.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
Секция remote
remote_smtp:
driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = test
dkim_private_key = DKIM_PRIVATE_KEY
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 935
ОС: BSD/LINUX
Контактная информация:

Re: exim dkim перестал подписывать письма.

Сообщение bars »

Код: Выделить всё

2020-06-26 10:25:38 1joijy-000AMY-2L Tainted filename '/usr/local/etc/exim/domen.ru.key'
2020-06-26 10:25:38 1joijy-000AMY-2L unable to open file for reading: /usr/local/etc/exim/domen.ru.key

Код: Выделить всё

-rwxrwxrwx  1 root  wheel  1675 13 июля   2017 /usr/local/etc/exim/domen.ru.key
Изначально права на файл

Код: Выделить всё

-rw-r--r--
Добавлено (10:51):
Попробовал выставить права 640, эффект тот же, попробуй вообще переделывать на новый сертификат.
Прожит сертификат протух, делал я его еще в 2017 году.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 935
ОС: BSD/LINUX
Контактная информация:

Re: exim dkim перестал подписывать письма.

Сообщение bars »

Если указать напрямую, то тогда работает.
Но у меня несколько доменов, как быть тогда в таком случае?

Код: Выделить всё

DKIM_DOMAIN                     = domen.ru            
DKIM_FILE                       = /usr/local/etc/exim/domen.ru.key
DKIM_PRIVATE_KEY                = /usr/local/etc/exim/domen.ru.key
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 935
ОС: BSD/LINUX
Контактная информация:

Re: exim dkim перестал подписывать письма.

Сообщение bars »

Вообщем посмотрел предыдущие письма с сервера, такая ситуация образовалась только на новой версии exim 4.94.
На версии Exim 4.93.0.4 все в порядке, подпись присобачивается к письмам.
Написать что ле разработчикам?
Добавлено (16:59):
Вот что изменилось в 4.94

Код: Выделить всё

Some Transports now refuse to use tainted data in constructing their delivery
location; this WILL BREAK configurations which are not updated accordingly.
In particular: any Transport use of $local_part which has been relying upon
check_local_user far away in the Router to make it safe, should be updated to
replace $local_part with $local_part_data.
 
Attempting to remove, in router or transport, a header name that ends with
an asterisk (which is a standards-legal name) will now result in all headers
named starting with the string before the asterisk being removed.  We recommend
staying away from such names, if they are private ones (and in case of future
enhancements, alao header names that look like REs).
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 935
ОС: BSD/LINUX
Контактная информация:

Re: exim dkim перестал подписывать письма.

Сообщение bars »

Вот что ответили в багрепорте exim
This is a configuration issue. You may not use $sender_address_domain directly
as part of the filename because it is supplied by a potential attacker.
You need to validate and de-taint this value first. Generally this means using
it as a key for lookup in some trusted information (database, file, filesystem).

Search in the docs Concept Index for de-tainting.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 935
ОС: BSD/LINUX
Контактная информация:

Re: exim dkim перестал подписывать письма.

Сообщение bars »

Проблему решил.
cat /usr/local/etc/exim/dkim_domains

Код: Выделить всё

dom.ru: key=/usr/local/etc/exim/dom.ru.key
dom1.ru: key=/usr/local/etc/exim/dom1.ru.key
dom2.ru: key=/usr/local/etc/exim/dom2.key
В exim config /usr/local/etc/exim/configure

Код: Выделить всё

DKIM_DOMAIN = ${lookup{$sender_address_domain}lsearch*@{/usr/local/etc/exim/dkim_domains}{$sender_address_domain}{}}
DKIM_PRIVATE_KEY = ${extract{key}{${lookup{$sender_address_domain}lsearch*@{/usr/local/etc/exim/dkim_domains}}}{$value}{}}
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Ответить