Dovecot аналог виртуальных хостов

В этой заметке вы сможете узнать о том что dovecot поддерживает ip-based, domain-based конфигурации для SSL. 1 2 3 4 5 6 7 8 9 local 10.10.10.11 { ssl_cert = </home/domain0/ssl.cert ssl_key = </home/domain0/ssl.key } local 10.10.10.12 { ssl_cert = </home/domain1/ssl.cert ssl_key = </home/domain2/ssl.key } При этом необходимо убрать из конфигурации SSL сертификаты, которые вне этих секций. Так же можно указывать SSL сертификаты для доменов: 1 2 3 4 5 6 7 8 9 local_name mail.domain0.com { ssl_cert = </home/domain0/ssl.cert ssl_key = </home/domain0/ssl.key } local_name mail.domain1.com { ssl_cert = </home/domain1/ssl.cert ssl_key = </home/domain1/ssl.key }

16 липня 2019 · 1 хвилина · 94 слів · dimetrius

Exim и несколько доменов, IP адресов

В этой статье добавлю варианты как можно разделить по IP адресам почтовые домены. Очень мало воды и много конфигов. Выбор SSL сертификата на основании домена 1 2 tls_certificate = ${if exists{/etc/ssl/${tls_sni}.crt}{/etc/ssl/${tls_sni}.crt}{/etc/ssl/default_domain.crt}} tls_privatekey = ${if exists{/etc/ssl/${tls_sni}.key}{/etc/ssl/${tls_sni}.key}{/etc/ssl/default_domain.key}}​ где сертификаты должны лежать по пути /etc/ssl/domain.com.crt, а ключи — /etc/ssl/domain.com.key. В случае, если для какого-то домена не будет сертификата, то будет использоваться сертификат по умолчанию — /etc/ssl/default_domain.crt (и соответствующий ключ /etc/ssl/default_domain.key) Обращаю внимание что этот вариант может корректно не работать со STARTTLS. Выбор SSL сертификата на основании сравнения IP адреса и домена 1 2 tls_certificate = ${lookup{$received_ip_address}lsearch{/etc/exim/ips_in.conf}{/opt/mail/ssl/$value.pem}{/opt/mail/ssl/domain.com.cer}} tls_privatekey = ${lookup{$received_ip_address}lsearch{/etc/exim/ips_in.conf}{/opt/mail/ssl/$value.key}{/opt/mail/ssl/domain.com.key}} Используется файл вида: 1 2 3 # cat /etc/exim/ips_in.conf 8.140.110.229: mail2.domain.com 8.140.110.228: mail2.domain2.com Что бы сервер представлялся нужным доменом, правим transports remote_smtp (указывем helo_data): 1 2 3 4 5 remote_smtp: driver = smtp ... helo_data = $sender_address_domain ... Ещё варианты будут описаны ниже. Для выбора IP во время отправки почты и для представления сервера можно использовать конфигурацию 1 2 3 4 remote_smtp: driver = smtp + interface = ${if exists {/etc/exim/ips_out.conf}{${lookup{$sender_address_domain}lsearch{/etc/exim/ips_out.conf}{$value}{}}}{}} + helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}} Здесь мы выбираем какой интерфейс использовать при отправке почты на основании данных в файле, который описан ниже. А так же представляемся именем домена из PTR этого IP адреса. ...

16 липня 2019 · 2 хвилин · 276 слів · dimetrius