Fornex
Европейский
хостинг

    «DKIM (DomainKeys Identified Mail)» — метод E-mail аутентификации, разработанный для обнаружения подделывания сообщений, пересылаемых по email. Dkim дает возможность получателю проверить, что письмо действительно было отправлено с заявленного домена.

    Создадим каталог, в котором мы будем хранить наш приватный ключ.

    mkdir /etc/exim4/dkim  
    

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

    Перейдем в папку /etc/exim4/dkim

    cd /etc/exim4/dkim  
    

    Генерируем приватный ключ example.com.key

    # openssl genrsa -out example.com.key 1024
    Generating RSA private key, 1024 bit long modulus  
    ..........................++++++
    ..................++++++
    e is 65537 (0x10001)  
    

    Далее, генерируем публичный ключ example.com.public из нашего приватного ключа example.com.key

    # openssl rsa -pubout -in example.com.key -out example.com.public
    writing RSA key  
    

    Изменим владельца каталога /etc/exim4/dkim и всех файлов внутри на Debian-exim, именно под этим пользователем запускается Exim.

    chown -R Debian-exim:Debian-exim /etc/exim4/dkim  
    

    Внесем изменения в конфигурационный файл Exim /etc/exim4/exim4.conf.template, чтобы он использовал наш приватный ключ. Для этого откроем его и вносем следующие строчки перед секцией remote_smtp:

    # DKIM:
    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 = email  
    

    !В том случае, если при установке Exim, вы выбрали вариант с разделением конфигов на маленькие, то тогда строчки выше необходимо вносить в конфигурационный файл /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp

    Сохраним изменения и перезапустим Exim:

    service exim4 restart  
    

    Чтобы проверить конфигурацию, можно воспользоваться следующей командой:

    exim -bP transports | grep dkim  
    

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

    email._domainkey  
    

    Где email - это селектор из предыдущего пункта настройки.
    А в поле самой записи, указываем следующую строку:

    v=DKIM1; h=sha256; k=rsa; p=0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcbu6mvGWmF65Suqazr3Krb2Ky/EXs8qaT1yMDfc00YJD77dq6jCnAwxQUHHuKanlELGd1uqomTzs5MBuzw0TCEhzIyyiD+ZZBbJQa85a7OhdLoDs7MkwlF2Asqj4k44CpJo0c7gAySdbIQNaY9YpTW0L1TatwIDAQAB  
    

    v=DKIM1 - версия DKIM
    h=sha256 - предпочитаемый hash-алгоритм, может быть sha1 и sha256
    k=rsa - тип публичного ключа p=0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD..................7OhdLoDs7MkwlF2Asqj4k44CpJo0c7gAySdbIQNaY9YpTW0L1TatwIDAQAB - публичный ключ, который лежит в файле /etc/exim4/dkim/example.com.public