DKIM + Exim для Ubuntu

Инструкция по настройке DKIM на сервере без панели управления

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

Настраивать будем в примере для домена example.com.

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

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.pub на основе приватного ключа example.com.key:

# openssl rsa -pubout -in example.com.key -out example.com.pub
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_CANON = relaxed
DKIM_DOMAIN = example.com
DKIM_PRIVATE_KEY = /etc/exim4/dkim/example.com.key
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 — предпочитаемый хеш-алгоритм (может быть sha1 или sha256)
  • k=rsa — тип публичного ключа
  • p=... — публичный ключ, соответствующий файлу /etc/exim4/dkim/example.com.pub
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам