Новости

  • Инструкция по установке и настройке DKIM для Postfix

    Установим все необходимые компоненты с помощью вашего пакетного менеджера:

    aptitude install opendkim opendkim-tools

    Теперь нам нужно получить ключи, которые мы будем использовать для подписи писем. Ключи будем хранить рядом с конфигурационными файлами Postfix, но вы можете выбрать и другое место — это непринципиально.

    mkdir /etc/postfix/dkim/

    Получим ключ для домена example.com и селектора mail:

    opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail

    Эта команда создаст файлы /etc/postfix/dkim/mail.private и /etc/postfix/dkim/mail.txt, с секретным и публичными ключами соответственно. Публичный ключ нужно добавить в соответствующую TXT запись вашего домена.

    Файлам ключей обязательно нужно дать доступ для группы, в которой работает OpenDKIM:

    chgrp opendkim /etc/postfix/dkim/*
    chmod g+r /etc/postfix/dkim/*

    В файл конфигурации /etc/opendkim.conf записываем:

    Syslog yes
    SyslogSuccess yes
    LogWhy yes
    X-Header yes

    Canonicalization relaxed/relaxed
    Mode sv
    #Mode s

    KeyTable file:/etc/postfix/dkim/keytable
    SigningTable file:/etc/postfix/dkim/signingtable
    #ExternalIgnoreList file:/etc/postfix/dkim/trusted
    # список внутренних хостов, почта которых требует подписи -
    #InternalHosts file:/etc/postfix/dkim/internal

    Список имеющихся ключей укажем в файле /etc/postfix/dkim/keytable:

    mail._domainkey.example.com example.com:mail:/etc/postfix/dkim/mail.private
    mx._domainkey.example.net example.net:mx:/etc/postfix/dkim/mx.private

    Объясним OpenDKIM почту каких доменов какими ключами подписывать в файле /etc/postfix/dkim/signingtable:

    example.com mail._domainkey.example.com
    example.net mx._domainkey.example.net
    * mail._domainkey.example.com

    В других файлах, указаных в директивах ExternalIgnoreList и InternalHosts, содержится просто список хостов и/или IP-адресов каждый на новой строке.

    В файле /etc/default/opendkim объясним DKIM-демону где ему ждать подключений:

    SOCKET="inet:8891@localhost"

    Добавим в конец /etc/postfix/main.cf следующие строки:

    milter_default_action = accept
    milter_protocol = 2
    smtpd_milters = inet:localhost:8891
    non_smtpd_milters = inet:localhost:8891

    Не забываем добавить TXT запись и проверить, что она на месте:

    dig txt mail._domainkey.example.com

    Перезапускаем postfix и opendkim, отправляем тестовое письмо куда-нибудь на Яндекс и наслаждаемся успешным результатом проверки подписи.

    Если проверка прошла успешно, то стоит формально запретить другим серверам принимать письма с вашим доменом, но без подписи, добавив ADSP запись:

    _adsp._domainkey IN TXT "dkim=all"

    Наша служба технической поддержки пользуется этой инструкцией. Если у вас не получилось настроить postfix и dkim самостоятельно, то обратитесь в нашу службу технической поддержки. Наши специалисты помогут вам.

    Оригинальная статья http://habrahabr.ru/post/151904/

Оставить комментарий