- Exim не работает dkim
- Не работает DKIM
- Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- Re: Не работает DKIM
- unixforum.org
- exim dkim перестал подписывать письма.
- exim dkim перестал подписывать письма.
- Re: exim dkim перестал подписывать письма.
- Re: exim dkim перестал подписывать письма.
- Re: exim dkim перестал подписывать письма.
- Re: exim dkim перестал подписывать письма.
- Re: exim dkim перестал подписывать письма.
- Exim + DKIM на примере FreeBSD 8.2
- Что такое DKIM и как оно работает
- Настройка DKIM в Exim
- Проверка DKIM
Exim не работает dkim
- Список форумов‹Технические вопросы‹Вопросы о работе сервера
- Изменить размер шрифта
- Для печати
- FAQ
- Вход
Не работает DKIM
Модераторы: Art.i, garry
Не работает DKIM
Flector » Ср ноя 23, 2016 1:41 pm
В настройках панели включен:
в почтовом домене включен:
в записях домена прописался:
проверку проходит:
а вот письма приходят без строчек DKIM-Filter и DKIM-Signature, в результате гугл помечает их как ненадежные.
гуглил, гуглил и не нашел причину.
вроде как в ISPManager5 был раньше баг, но его вроде бы исправили.
поэтому мне непонятно в какую сторону копать.
Re: Не работает DKIM
Mikanoshi » Ср ноя 23, 2016 2:54 pm
Re: Не работает DKIM
Flector » Ср ноя 23, 2016 3:01 pm
так что проверять то?
для меня конфиг это книга на китайском.
поэтому, собственно, панелью и пользуюсь.
вот конфиг:
Код: выделить все DKIM_ENABLE = yes
SA_SPAMD_USER = __ISP_SPAMD_USER__
SA_SCORE_REJECT = 50
SA_ABUSE_ADDR = The System Administrator
log_selector = \
+all_parents \
+lost_incoming_connection \
+received_sender \
+received_recipients \
+tls_cipher +tls_peerdn +tls_sni \
+smtp_confirmation \
+smtp_syntax_error \
+smtp_protocol_error
.ifdef SA_ENABLE
spamd_address = 127.0.0.1 783
.endif
trusted_groups = mgrsecure
trusted_users = apache
domainlist local_domains = lsearch;/etc/exim/domains
domainlist dummy_domains =
hostlist relay_from_hosts = 127.0.0.1 : 213.159.208.94
domainlist relay_to_domains = lsearch;/etc/exim/domains
exim_user = exim
exim_group = exim
.ifdef VIRUS_SCAN
av_scanner = clamd:__CLAMAV_SOCKET__
.endif
never_users = root
host_lookup = *
rfc1413_hosts = *
rfc1413_query_timeout = 0s
ignore_bounce_errors_after = 2d
timeout_frozen_after = 7d
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_data = acl_check_data
acl_not_smtp = acl_check_not_smtp
.ifdef DKIM_ENABLE
acl_smtp_dkim = acl_check_dkim
.endif
acl_check_not_smtp:
# check ratelimits by local user
warn condition = $
set acl_c9 = $sender_ident
warn condition = $
set acl_c9 = $sender_address
deny condition = $
set acl_c8 = $
ratelimit = $acl_c8 / 1h / strict / $acl_c9
message = Sender rate overlimit — $sender_rate / $sender_rate_period / $acl_c9
.ifdef DEFAULT_RATELIMIT
# check ratelimits by default
warn set acl_c7 = $sender_ident
warn condition = $
set acl_c7 = $sender_address
deny condition = $
ratelimit = DEFAULT_RATELIMIT / 1h / strict / $acl_c7
message = Sender rate overlimit — $sender_rate / $sender_rate_period / $acl_c7
.endif
.ifdef VIRUS_SCAN
warn
set acl_m3 = no
warn
condition = $
set acl_m3 = ok
.endif
accept hosts = +relay_from_hosts
!authenticated = *
set acl_m6 = whitelisted
accept domains = +local_domains : +relay_to_domains
condition = $
set acl_m6 = whitelisted
logwrite = Accepted from $sender_address to $local_part@$domain by whitelist.
accept domains = +local_domains : +relay_to_domains
hosts = net-lsearch;/etc/exim/whitelist
set acl_m6 = whitelisted
logwrite = Accepted from $sender_address to $local_part@$domain by whitelist.
deny condition = $
set acl_m6 = blacklisted
logwrite = Rejected from $sender_address to $local_part@$domain by blacklist.
deny hosts = net-lsearch;/etc/exim/blacklist
set acl_m6 = blacklisted
logwrite = Rejected from $sender_address to $local_part@$domain by blacklist.
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
accept local_parts = postmaster
verify = recipient
domains = +local_domains
require verify = sender
# check ratelimits by emails
warn authenticated = *
set acl_c0 = group$
set acl_c1 = $
ratelimit = $
ratelimit = $acl_c1 / 1h / strict / $authenticated_id
log_message = Sender rate overlimit — $sender_rate / $sender_rate_period / $authenticated_id
condition = $
deny authenticated = *
set acl_c1 = $
ratelimit = $acl_c1 / 1h / leaky / $authenticated_id
message = Sender rate overlimit — $sender_rate / $sender_rate_period / $authenticated_id
condition = $
# check ratelimits by group
warn authenticated = *
set acl_c0 = group$
ratelimit = $
log_message = Sender rate overlimit — $sender_rate / $sender_rate_period / $acl_c0
condition = $
deny authenticated = *
set acl_c0 = group$
ratelimit = $
message = Sender rate overlimit — $sender_rate / $sender_rate_period / $acl_c0
condition = $
.ifdef DEFAULT_RATELIMIT
# check ratelimits by default
deny authenticated = *
ratelimit = DEFAULT_RATELIMIT / 1h / strict / $authenticated_id
message = Sender rate overlimit — $sender_rate / $sender_rate_period / $authenticated_id
condition = $
.endif
accept hosts = +relay_from_hosts
!authenticated = *
control = submission/sender_retain
deny message = rejected because $sender_host_address is in a black list at $dnslist_domain\\n$dnslist_text
dnslists = $
require message = relay not permitted
domains = +local_domains : +relay_to_domains
require verify = recipient
.ifdef POSTGREY_SOCKET
defer log_message = greylisted host $sender_host_address
set acl_m0 = request=smtpd_access_policy\nprotocol_state=RCPT\nprotocol_name=$
set acl_m0 = $
message = $
condition = $
.endif
accept
condition = $
logwrite = Accept message without spamd and antivirus check because LA > 3.
.ifdef VIRUS_SCAN
accept
condition = $
logwrite = Accept message without antivirus check because body size $message_body_size not critical
deny
message = This message contains virus ($malware_name)
hosts = *
demime = *
malware = *
log_message = Rejected: this message contains virus ($malware_name)
condition = $
.endif
.ifdef SA_ENABLE
warn
!authenticated = *
hosts = !127.0.0.1/24
condition = $
message = Content analisis tool detect spam (from $sender_address to $recipients). Contact SA_ABUSE_ADDR.
.endif
.ifdef DKIM_ENABLE
acl_check_dkim:
warn
dkim_status = fail
logwrite = DKIM test failed: $dkim_verify_reason
add_header = X-DKIM-FAIL: DKIM test failed: (address=$sender_address domain=$dkim_cur_signer), signature is bad.
warn
dkim_status = invalid
add_header = :at_start:Authentication-Results: $dkim_cur_signer ($dkim_verify_status); $dkim_verify_reason
logwrite = DKIM test passed (address=$sender_address domain=$dkim_cur_signer), but signature is invalid.
accept
dkim_status = pass
add_header = :at_start:Authentication-Results: dkim=$dkim_verify_status, header.i=@$dkim_cur_signer
logwrite = DKIM test passed (address=$sender_address domain=$dkim_cur_signer), good signature.
begin routers
dnslookup:
driver = dnslookup
domains = !+dummy_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
self = pass
no_more
disabled_domains:
driver = redirect
condition = $
allow_fail = yes
data = :fail: Domain disabled
no_more
disabled_users:
driver = redirect
condition = $
allow_fail = yes
data = :fail: User disabled
no_more
catchall_for_domains:
driver = redirect
headers_add = X-redirected: yes
data = $
file_transport = local_delivery
redirect_router = dnslookup
unknown_users:
driver = redirect
allow_fail = yes
data = :fail: Unknown user
no_more
remote_smtp:
driver = smtp
begin retry
* * F,2h,15m; G,16h,1h,1.5; F,4d,6h
auth_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
auth_cram_md5:
driver = dovecot
public_name = CRAM-MD5
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
что в нем не так?
Re: Не работает DKIM
Mikanoshi » Ср ноя 23, 2016 4:03 pm
Re: Не работает DKIM
Flector » Ср ноя 23, 2016 4:11 pm
Re: Не работает DKIM
Flector » Чт ноя 24, 2016 10:52 am
удалил все почтовые домены, удалил в возможностях почтовый сервер — установил его заново, заново добавил почтовый домен — опять подписей DKIM в письмах нет.
Re: Не работает DKIM
Mikanoshi » Чт ноя 24, 2016 3:11 pm
Re: Не работает DKIM
Flector » Чт ноя 24, 2016 3:34 pm
существует.
в процессах не висит, но для exim это вроде как нормально.
плин, шаблон сервера то по умолчанию, а не работает.
Re: Не работает DKIM
Flector » Чт ноя 24, 2016 7:06 pm
Re: Не работает DKIM
Flector » Чт ноя 24, 2016 11:10 pm
Источник
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
exim dkim перестал подписывать письма.
Модератор: SLEDopit
exim dkim перестал подписывать письма.
Сообщение bars » 26.06.2020 09:47
Re: exim dkim перестал подписывать письма.
Сообщение bars » 26.06.2020 10:31
Добавлено (10:51):
Re: exim dkim перестал подписывать письма.
Сообщение bars » 26.06.2020 15:34
Re: exim dkim перестал подписывать письма.
Сообщение bars » 26.06.2020 16:57
Добавлено (16:59):
Re: exim dkim перестал подписывать письма.
Сообщение bars » 26.06.2020 18:16
Вот что ответили в багрепорте 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.
Re: exim dkim перестал подписывать письма.
Сообщение bars » 26.06.2020 21:21
Источник
Exim + DKIM на примере FreeBSD 8.2
Что такое DKIM и как оно работает
DKIM (расшифровывается как DomainKeys Identified Mail) — метод идентификации письма по доменным ключам.
DKIM настраивается на почтовом сервере для того, чтобы подписывать исходящие письма цифровой подписью. Наличие такой подписи в заголовке отправленного письма сообщает серверу-получателю, что оно действительно было отправлено с указанного домена.
Известно, что в СПАМ-письмах часто в поле From: ставят е-mail, не имеющий совершенно никакого отношения к отправителю. В этом случае DKIM поможет распознать реальное письмо от спама. В отличие от других методов цифровой подписи письма, DKIM совместим с существующими форматами и протоколами и может быть плавно интегрирован в имеющиеся системы доставки и получения почты.
Подпись письма происходит на SMTP-сервере с помощью секретного ключа (Private key), а расшифровка подписи происходит на сервере-получателе или клиентской программе с помощью публичного ключа (Public key). Что интересно, публичный ключ хранится в DNS, что позволяет убить сразу двух зайцев. Во-первых, нет необходимости прикладывать Public key с каждым письмом для его расшифровки. А во-вторых, в таком случае DKIM позволяет сообщать серверам-получателям что делать с письмом, которое не имеет цифровой подписи, но якобы отправлено от вас. Эта технология называется ADSP (Author Domain Signing Practices). ADSP также хранится в DNS SMTP-сервера и доступен всем и отовсюду.
Настройка DKIM в Exim
В DKIM используются уже устоявшиеся криптографические инструменты. На данный момент для цифровой подписи авторы DKIM предлагают два алгоритма: RSA-SHA256 и RSA-SHA1, но в будущем возможно расширение технологии для поддержки других алгоритмов. Длина ключа ограничина значением в 4096 бит, так как больший по длине ключ не поместится в максимальный размер DNS UDP-пакета — 512 байт. Рекомендованная длина ключа составляет от 1024 до 2048 бит. Слишком большая длина создает вычислительную нагрузку на сервер для обработки каждого сообщения, а слишком малая(384 или 512 бит) — взламывается перебором за актуальное время с помощью ПК или с использованием сервиса облачных вычислений.
По результатам исследований в наше время уже возможно расшифровать данные, зашифрованные RSA с длиной ключа 1024 бита. Поэтому оптимальным на сегодня будет ключ RSA длиной 2048 бит.
Для генерации пары ключей можно воспользоваться online-сервисом www.port25.com/support/domainkeysdkim-wizard или же воспользоваться openssl в консоли.
Генерим секретный ключ через openssl
На выходе имеем ключ вида:
Генерим публичный ключ на основе секретного
На выходе получим что-то вроде:
Правим DNS
Добавляем DKIM селектор
Создаем в DNS запись mail1._domainkey.example.com типа TXT со значением:
(В данном случае это синтаксис для DNS сервера на BIND, и другие DNS сервера могут не требовать знак “\” для экранирования “;”.)
Вместо mail1 можете использовать другой селектор, например, dkim, server, public итд. Подобных записей Public key для DKIM может быть несколько.
Необходимо дождаться, когда обновится ваша DNS запись на других серверах. Это может занять несколько часов.
Проверять свою DKIM запись можно, например, с помощью сервиса DNSWatch.
Добавляем ADSP запись
Правим конфиг Exim
В файл /usr/local/etc/exim/configure добавляем в начало:
Эта конструкция позволит использовать разные Private key для разных доменов.
Подправляем транспорт remote_smtp:
Здесь mail1 — наш селектор.
Сохраняем конфиг и перечитываем его:
Проверка DKIM
Проверить DKIM можно разными способами. Я опишу два из них.
1) Известно, что Gmail проверяет DKIM запись в письмах. Отправляем письмо на свой gmail ящик и смотрим заголовки.
Находим запись вида
Источник