DKIM в Exim 4: различия между версиями
Sol (обсуждение | вклад) (Новая страница: «== Устанавливаем пакеты: == apt-get install opendkim-tools openssl exim4 dkim-filter Теперь нужно создать ключи, кот…») |
Sol (обсуждение | вклад) |
||
Строка 62: | Строка 62: | ||
/etc/init.d/exim4 restart | /etc/init.d/exim4 restart | ||
− | [[Категория:Mail]] | + | [[Категория:Mail]][[Категория:Linux]] |
Текущая версия на 10:03, 20 апреля 2015
Устанавливаем пакеты:
apt-get install opendkim-tools openssl exim4 dkim-filter Теперь нужно создать ключи, которые будут использоваться для подписи писем. Для начала создаем папку для хранения ключей:
mkdir /etc/exim4/dkim
Генерируем открытый и закрытый ключи для домена example.com.
opendkim-genkey -D /etc/exim4/dkim/ -d example.com -s mail
Ключи можно так же сгенерировать и dkim-genkey:
dkim-genkey -d example.com -t -r -s mail
или
openssl genrsa -out example.com.key 1024 openssl rsa -in example.com.key -pubout > example.com.pub
Эта команда создаст файлы etc/exim4/dkim/mail.private и /etc/exim4/dkim/mail.txt, с секретным и публичными ключами соответственно.
Настройка DNS
Открываем и копируем публичный ключ.
nano /etc/exim4/dkim/example.com.pub
-----BEGIN PUBLIC KEY----- MIGfMA0111111111111111111111ADCBiQKBgQCy4cRpKEmBmlm6Enrc0Qk/WEG6 uQKrzAe+aS82222222222222222222222222222222222222222222222222222W J88888888888888888888888888888888888888888888888888888888888888v 1111111111111111111B -----END PUBLIC KEY-----
Копируем сам ключ, который содержится между ——BEGIN PUBLIC KEY—— и ——END PUBLIC KEY—— Добавляем в DNS запись вида TXT, имеющую название default._domainkey.example.com, (_domainkey — спец домен зарезервированный для хранения ключей) содержащую
v=DKIM1; k=rsa; p=MIGfMA0111111111111111111111ADCBiQKB gQCy4cRpKEmBmlm6Enrc0Qk/WEG6uQKrzAe+a S82222222222222222222222222222222222222222222222222222WJ888888888888888888 88888888888888888888888888888888888888888888v1111111111111111111B
Обратите внимание, что ключь не должен содержать пробелов, при копировании из терминала они могут добавиться. Проверямем DKIM DNS запись при помощи серевиса DNSWatch. Ответ должен содержать указанный ключ.
«v=DKIM1\; k=rsa\; p=MIGfMA0111111111111111111111ADCBiQKB gQCy4cRpKEmBmlm6Enrc0Qk/WEG6uQKrzAe+aS8222 2222222222222222222222222222222222222222222222222WJ88888 888888888888888888888 888888888888888888888888888888888888v1111111111111111111B»
Важно! default — название селектора — произвольной строки идентифицирующей подпись DKIM. Необходимо, чтобы в конфигурации Exim и в DNS записи использовался один и тот же селектор. Для проверки отправляем письмо на домен gmail и смотрим исходное тело письма. Публичный ключ нужно добавить в соответствующую TXT запись вашего домена. У некоторых хостингов есть ограничения на 256 символов в TXT записях, в таких случаях не генерируйте большие ключи (Стоит использовать до 1024). После того как обновится DNS, проверите, что TXT запись добавлена:
dig txt mail._domainkey.example.com
Так же можно указать ключ t=y (режим тестирования) или t=s (боевой режим) в TXT записи домена.
Настраиваем Exim
Переименовываем закрытый ключ чтобы Exim мог его найти:
cd /etc/exim4/dkim/ mv mail.private example.com.key
Проставляем права на чтение файлов ключей:
chown -R Debian-exim:Debian-exim /etc/exim4/dkim/ chmod 640 /etc/exim4/dkim/*
В конфиг Exim /etc/exim4/exim4.conf.template или если он разделен, то /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp пишем:
DKIM_DOMAIN = ${lc:${domain:$h_from:}} DKIM_KEY_FILE = /etc/exim4/dkim/DKIM_DOMAIN.key DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}} DKIM_SELECTOR = mail
Все готово, осталось перезапустить.
/etc/init.d/exim4 restart