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

12 3
baas
На сайте с 17.09.2012
Offline
162
2327
Добрый день.
Что то изменилось в версии 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

В логе exim

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

Права на файл /usr/local/etc/exim/domen.ru.key

-rw-r--r--   1 root  wheel    887 Mar 11  2019 domen.ru.key

Как быть?

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
LEOnidUKG
На сайте с 25.11.2006
Offline
1725
#1

не ваша проблема?

https://serverfault.com/questions/980539/exim-unable-to-open-file-for-reading

Exim unable to open file for reading
Exim unable to open file for reading
  • 2019.08.24
  • Andy Parveen
  • serverfault.com
Exim version 4.92 If i change this line in my exim.conf file it will change the error so I know the error is coming from there I have changed the ownership to exim:exim
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
baas
На сайте с 17.09.2012
Offline
162
#2
LEOnidUKG #:

не ваша проблема?

https://serverfault.com/questions/980539/exim-unable-to-open-file-for-reading

Нет.

Попробовал указать статично ссылку на файл и домен, так работает, но у меня больше одного домена на сервере, как быть тогда в таком случае?

DKIM_DOMAIN                     = domen.ru            
DKIM_FILE                       = /usr/local/etc/exim/domen.ru.key
DKIM_PRIVATE_KEY                = /usr/local/etc/exim/domen.ru.key

Так работает, но как быть у кого больше одного домена?

LEOnidUKG
На сайте с 25.11.2006
Offline
1725
#3

Не понимаю, в конфиге у вас и так прописан домен и судя по логам написан адрес.

Вы уверены, что не работает со старым конфиг и уточните, что значит изменилось в exim4 вы его обновляли или что делали?

suffix
На сайте с 26.08.2010
Offline
329
#4
baas #:

Нет.

Попробовал указать статично ссылку на файл и домен, так работает, но у меня больше одного домена на сервере, как быть тогда в таком случае?

Так работает, но как быть у кого больше одного домена?

dkim_domain = $sender_address_domain
dkim_selector = ${if exists{/etc/exim/ssl/$sender_address_domain.txt}{${extract{1}{.}{${readfile{/etc/exim/ssl/$sender_address_domain.txt}}}}}{dkim}}
dkim_private_key = ${if exists{/etc/exim/ssl/$sender_address_domain.private}{/etc/exim/ssl/$sender_address_domain.private}{0}}
У меня так устроено и работает.
Клуб любителей хрюш (https://www.babai.ru)
baas
На сайте с 17.09.2012
Offline
162
#5
suffix #:

```

dkim_domain = $sender_address_domain
 dkim_selector = ${if exists{/etc/exim/ssl/$sender_address_domain.txt}{${extract{1}{.}{${readfile{/etc/exim/ssl/$sender_address_domain.txt}}}}}{dkim}}
 dkim_private_key = ${if exists{/etc/exim/ssl/$sender_address_domain.private}{/etc/exim/ssl/$sender_address_domain.private}{0}}

```

У меня так устроено и работает.

Указал у себя подобный конфиг, не работает.

DKIM_DOMAIN = $sender_address_domain
DKIM_PRIVATE_KEY = ${if exists{/usr/local/etc/exim/$sender_address_domain.key}{/usr/local/etc/exim/$sender_address_domain.key}{0}}

Лог exim.

2020-06-26 16:37:38 1jooXy-000FSE-6R Tainted filename '/usr/local/etc/exim/dom.ru.key'
2020-06-26 16:37:38 1jooXy-000FSE-6R unable to open file for reading: /usr/local/etc/exim/dom.ru.key

А у вас какая версия экзима?

baas
На сайте с 17.09.2012
Offline
162
#6
LEOnidUKG #:

Не понимаю, в конфиге у вас и так прописан домен и судя по логам написан адрес.

Вы уверены, что не работает со старым конфиг и уточните, что значит изменилось в exim4 вы его обновляли или что делали?

Делаю тестовую отправку на яндекс, смотри в заголовках dkim записи нет и Подпись: нет у письма.

Раньше работало.

Возможно что то в новых версиях exim поменялось.

Я давно использую экзим, последний раз генерил дким для доменов в 2019 года, тогда версия была по моему 4.86 что ле.

Случайно заметил, что нет подписи дким и начал копать, смотрю на всех доменах и разных серверах нет подписей, везде в логе одинаковая ошибка с файлом дким.

2020-06-26 16:37:38 1jooXy-000FSE-6R Tainted filename '/usr/local/etc/exim/dom.ru.key'
2020-06-26 16:37:38 1jooXy-000FSE-6R unable to open file for reading: /usr/local/etc/exim/dom.ru.key


baas
На сайте с 17.09.2012
Offline
162
#7
exim -bP transports | grep dkim
dkim_domain = $sender_address_domain
dkim_hash = sha256
dkim_private_key = ${if exists{/usr/local/etc/exim/$sender_address_domain.key}{/usr/local/etc/exim/$sender_address_domain.key}{0}}
dkim_selector = mail



baas
На сайте с 17.09.2012
Offline
162
#8

Вообщем посмотрел предыдущие письма, такая ситуация образовалась только на новой версии exim 4.94.

На версии Exim 4.93.0.4 все в порядке, подпись присобачивается к письмам.

Написать что ле разработчикам?

baas
На сайте с 17.09.2012
Offline
162
#9
Вот что изменилось в 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).



baas
На сайте с 17.09.2012
Offline
162
#10

Вот что ответили в багрепорте.

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.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий