Добрый день!Кто-нибудь использовал TLS при настройке почты на SMTP сервере EXIM ?
Нужно чтобы проходящая через EXIM почта шифровалась уходя во вне.
Например на внешний домен mail.ru почта зашифровывалась.
Можно ли так сделать или есть какие-то другие варианты конфигурации ?Заранее благодарен, Борис.
Добрый день, Борис!> Кто-нибудь использовал TLS при настройке почты на SMTP сервере EXIM ?
Это штатный режим почты в наше время.
Исходящая наружу почта в exim контролируется в транспорте.
(мой рабочий конфиг):
begin transports
remote_smtp:
driver = smtp
command_timeout = 2m
connect_timeout = 2m
connection_max_messages = 10
max_parallel = 10
port = 25
message_size_limit = 200M
dkim_domain = my_domain.com #(1)
dkim_selector = mail #(1)
dkim_private_key = /etc/exim/dkim.key #(1)
dkim_strict = true #(1)
dkim_sign_headers = Date:Message-ID:Subject:From:To:In-Reply-To:References:MIME-Version:Content-Type #(1)
tls_certificate = /etc/ssl/my_domain.pem #(2)
tls_privatekey = /etc/ssl/my_domain.key #(2)
tls_verify_certificates = /etc/ssl/cacert.pem #(3)
tls_try_verify_hosts = *
tls_verify_cert_hostnames = *
tls_tempfail_tryclear = true #(4)
tls_sni = *
tls_require_ciphers = HIGH:-SSLv3:-TLSv1:-ADH:-PSK:-ARIA:-CAMELLIA #(5)(1) DKIM требует еще настроек в DNS. Можно не включать.
(2) Сертификат тот-же, что и на приеме почты
(3) Глобальные доверенные СА
(4) Если принимающий хост не работает по TLS, то передать в нешифрованном режиме
(5) Настройка openssl для работы только по TLS1.2 и TLS1.3
>[оверквотинг удален]
>
> = *
> tls_require_ciphers
> = HIGH:-SSLv3:-TLSv1:-ADH:-PSK:-ARIA:-CAMELLIA #(5)
> (1) DKIM требует еще настроек в DNS. Можно не включать.
> (2) Сертификат тот-же, что и на приеме почты
> (3) Глобальные доверенные СА
> (4) Если принимающий хост не работает по TLS, то передать в нешифрованном
> режиме
> (5) Настройка openssl для работы только по TLS1.2 и TLS1.3Добрый день!
спасибо большое за предоставленную информацию.
У куда этот транспорт ставить в exim.conf ?
Я думаю, что желательно в самом начале секции транспорта?Заранее благодарен. Борис.
День добрый!Транспорт можно вставлять в любое место секции "begin transports". Порядок их описания не имеет значения, т.к. транспорты срабатывают только при вызове по их имени (в моем случае - "remote_smtp") из роутеров. А вот порядок следования роутеров значение имеет.
Для примера, самый первый роутер:
begin routers
dns_lookup:
driver = dnslookup
domains = !+local_domains # для локальной доставки используется другой роутер
rewrite_headers = false
transport = remote_smtp # вызов транспорта с именем "remote_smtp"
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
День добрый!Можно ли сделать так:
Допустим у нас есть какой-то список доменов tls_domainlist
Для этого списка доменов нужно обязательно шифровать, если будет ошибка при шифровании, то
не посылать сообщение, даже не зашифрованное. А для всех остальных доменов шифровать сообщение, потом отсылать, а при ошибки шифрования
отсылать не зашифрованное сообщение.Заранее благодарен. Борис.
Добрый день!Не проблема.
Два разных транспорта и два соответсвующих роутераbegin transports
tls_always:
driver = smtp
.....
hosts_require_tls = mail.ru : gmail.com : и т.д.
tls_tempfail_tryclear = false
......tls_optional:
driver = smtp
.....
tls_tempfail_tryclear = true
.....############
begin routersdns_lookup:
driver = dnslookup
domains = mail.ru : gmail.com : и т.д. # только для этих доменов
.....
transport = tls_always # вызов транспорта с именем "tls_always"
no_moredns_lookup:
driver = dnslookup
domains = !+local_domains # все остальные, кроме локальных
......
transport = tls_optional # вызов транспорта с именем "tls_optional"
no_more
Естественно, вместо явного перечня доменов в роутере можно использовать лист (как удобно)domains = +tls_domainlist
Сорри, не обратил внимания, что в hosts_require_tls перечисляются хосты, а не домены. Т.е. надоhosts_require_tls = mxs.mail.ru : .....
А совсем правильно будет в транспрорте tls_always поставить:hosts_require_tls = *