Внедряем email-аутентификацию DKIM в Postfix за 5 минут

Работал у нас почтовый сервер для рассылки корреспонденции клиентам. И все бы ничего, но стал люд жаловаться, что не доходят письма или  в спам попадают. И хотя spf был настроен, все говорило о том, что пора нам к нашему Postfix прикрутить DKIM. Как гласит цитата откуда-то с хабра:

Для начала установим необходимый софт командой

После установки необходимо отредактировать файл /etc/opendkim.conf, добавив в него строки

Теперь создадим рабочий каталог,а в нем новый приватный и открытый ключ. Открытый ключ мы потом пропишем на нашем DNS-сервере.

В каталоге /etc/opendkim у вас должно появиться 2 новых файла. mail.private — это наш приватный ключ, которым мы будем подписывать письма. А mail.txt содержит публичный ключ. Список имеющихся ключей укажем в файле /etc/opendkim/keytable в формате «название домен:селектор:/путь/до/ключа». В нашем случае содержимое файла будет таким:

Теперь объясним OpenDKIM почту каких доменов какими ключами подписывать в файле /etc/opendkim/signingtable в формате «домен название-ключа».

В файле /etc/opendkim/trusted необходимо прописать ваши доверенные узлы:

Зададим необходимые права, добавим пользователя postfix в группу opendkim. Это нужно чтобы postfix смог отправлять письма на подпись через сокет OpenDKIM. После чего перезапустим службу. Я рекомендую заглянуть в системный лог и убедиться, что нет ошибок при запуске службы.

Вторым этапом настроим postfix, чтобы он мог подписывать нашу почту. В main.cf необходимо добавить:

Ну и опять рестарт/релоад

Третьим и последним этапом мы настроим наш DNS сервер добавив в него TXT запись. Выведите содержимое файла mail.txt и используйте следующую пару ключ-значение для добавления новой записи в DNS.

Для применения изменений в DNS может пройти несколько часов. Проверить DKIM-подпись вы можете отправив пиьсмо через свой сервер на ящик [email protected]5.com. Ответное письмо вы получите в виде отчета. Например:

Полезные ссылки:

Блокирование отправки email в Postfix

myszaИногда, вы можете столкнуться с задачей блокировки отправителей и получателей почты. В моем случаем данную процедуру мне было необходимо проделать для того, чтобы сервера разработчиков не слали тестовые письма на адреса клиентов.

Собственно в данном примере необходимо создать 2 файла sender_access и recipient_access, в которых и определим тех, кому / от кого запрещено отправлять почту.

В файле sender_access определяем «черный список» отправителей

В файле recipient_access определяем «черный список» получателей

После этого необходимо выполнить команду postmap, для того, чтобы сгенерировать *.db файлы, которые читает postfix.

После этого в файл конфигурации необходимо определить в файле конфигурации main.cf параметры smtpd_sender_restrictions и smtpd_recipient_restrictions.

Ну и в конце перезапустим postfix