01 Декабрь 2020, 01:54

Установка DKIM под Sendmail на Centos 6.5

Гость - Установка DKIM под Sendmail на Centos 6.5


Использование технологии DKIM повышает шансы письма не попасть в спам.

Здесь приводится последовательность шагов для настройки механизма отправки писем с сервера, где сидят сразу два домена example.org и example.com, которые на реальном сервере надо заменить реальными именами.

1. Запускаем DKIM и делаем ключи.
В репозиториях Centos 6.5 уже есть готовый пакет OpenDKIM.

Ставим:
yum install opendkim

Для каждого домена нужно создать свою поддиректорию:
mkdir -p /etc/opendkim/keys/example.org
chown -R opendkim:opendkim /etc/opendkim/keys
chown -R opendkim:opendkim /etc/opendkim/keys/example.org


Создаём пару ключей (private и public):
/usr/sbin/opendkim-genkey -D /etc/opendkim/keys/example.org/ -d example.org -s hobot

Не забываем установить строгие права:
chmod 640 /etc/opendkim/keys/example.org/hobot.private
chmod 644 /etc/opendkim/keys/example.org/hobot.txt



ПРОДОЛЖЕНИЕ: ПОКАЗАТЬСКРЫТЬ
2. Прописываем в конфиги параметры OpenDKIM.
В файлах конфигурации есть множество комментариев, которые помогут разобраться в других настройках, а также прояснить, что мы делаем сейчас :)

/etc/opendkim/KeyTable
Про ключи обоих доменов.
/etc/opendkim/SigningTable
Какие письма будут снабжаться DKIM сигнатурой (все другие строки должны быть закомментированы).
*@example.org hobot._domainkey.example.org
*@example.com hobot._domainkey.example.com
/etc/opendkim/TrustedHosts
Имена хостов, которые будут попадать в обработку OpenDKIM.
/etc/opendkim.conf
Эти параметры должны быть, по необходимости, раскомментированы и установлены как указано.
Mode sv
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
3. Настраиваем Sendmail.
Добавляем в файл /etc/mail/sendmail.mc такое:
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')dnl
4. Запускаем сервисы.
service opendkim start
chkconfig opendkim on
service sendmail restart



5. Промежуточная проверка.
Если всё правильно настроено, то письма, приходящие с сервера, должны получить в заголовке (RFC 822) два поля DKIM-Filter: и DKIM-Signature:, в которых будет информация про наш весёлый мильтер-фильтр.

И кроме них, сервер-получатель ещё добавит своё Authentication-Results:, в нём может быть много всего, но главное - будет такая подстрока: dkim=neutral.


6. Настройка DNS.
Содержимое файла /etc/opendkim/keys/example.org/hobot.txt примерно такое:
hobot._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=<длинная строка с ключом>" ) ; ----- DKIM default for example.org

Если придется править непосредственно файл зоны, то можно взять эту запись как есть. Однако, сегодня, чаще всего, у провайдера есть специальный веб-интерфейс для редактирования записей DNS.

Заходим в редактор зоны домена example.org и добавляем туда запись типа TXT, которая в итоге должна выглядеть вот так:
hobot._domainkey.example.org. TXT v=DKIM1; k=rsa; p=<та длинная строка с ключом>
Не надо мучать редактор длинами и кавычками, он сам их поставит при запоминании.

Сохраняем запись и можно выгружать зону. Для домена example.com надо проделать такую же процедуру.

Через некоторое время наши изменения в DNS распространяться по серверам.


7. Окончательная проверка.
В поле Authentication-Results: приходящих писем пара dkim=neutral должна измениться на dkim=pass.