Введение
В этом руководстве мы увидим, как установить и настроить OpenDKIM — реализацию с открытым исходным кодом системы аутентификации отправителей DomainKeys Identified Mail (DKIM).
DKIM — это интернет-стандарт, который позволяет человеку или организации связать доменное имя с сообщением электронной почты.
Предпосылки
Прежде чем приступить к руководству, Postfix и Dovecot должны быть правильно установлены и настроены.
Учебное пособие по Postfix и Dovecot (включая настройку полного доменного имени) Руководство по полному доменному имени
Установить OpenDKIM
OpenDKIM доступен в стандартных репозиториях Ubuntu, поэтому его можно легко установить через apt:
sudo apt update
sudo apt install opendkim opendkim-tools
Настроить OpenDKIM
Откройте основной файл конфигурации OpenDKIM:
sudo nano /etc/opendkim.conf
Измените или добавьте следующие строки:
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:12301@localhost
Milter позволяет администраторам добавлять почтовые фильтры для фильтрации спама или вирусов в цепочке обработки почты.
Подключаем milter с Postfix, открываем следующий файл:
sudo nano /etc/default/opendkim
Добавьте эту строку, измените номер порта, только если вы используете пользовательский порт:
SOCKET="inet:12301@localhost"
Чтобы настроить Postfix для использования milter, откройте следующий файл:
sudo nano /etc/postfix/main.cf
Добавьте или раскомментируйте эти строки:
milter_protocol = 2
milter_default_action = accept
Если вы используете такой фильтр, как SpamAssassin, вполне вероятно, что следующие параметры уже присутствуют, в этом доме просто добавьте милтер OpenDKIM:
smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
non_smtpd_milters = unix:/spamass/spamass.sock, inet:localhost:12301
Если параметры отсутствуют, добавьте следующее:
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
Создайте папки для TrustedHosts:
sudo mkdir /etc/opendkim
sudo mkdir /etc/opendkim/keys
Укажите TrustedHosts:
sudo nano /etc/opendkim/TrustedHosts
Мы будем использовать этот файл для определения как ExternalIgnoreList, так и InternalHost, сообщения от этих хостов, доменов и IP-адресов будут доверенными и подписанными.
Настройте и добавьте следующие строки во вновь созданный файл. Вы можете указать несколько доменов, не изменяя первые три строки:
127.0.0.1
localhost
192.168.0.1/24
*.esempio.it
#*.esempio.tech
Сохраните и закройте файл.
Создайте новый файл:
sudo nano /etc/opendkim/KeyTable
Мы используем электронную почту, изменять ее не нужно. Добавьте эти строки:
mail._domainkey.esempio.it esempio.it:mail:/etc/opendkim/keys/esempio.it/mail.private
#mail._domainkey.esempio.tech esempio.tech:mail:/etc/opendkim/keys/esempio.tech/mail.private
Сохраните и закройте файл.
Создайте следующий файл, используемый для объявления доменов и адресов электронной почты:
sudo nano /etc/opendkim/SigningTable
Добавьте эти строки:
*@esempio.it mail._domainkey.esempio.it
#*@esempio.tech mail._domainkey.esempio.tech
Сгенерируйте закрытый ключ и открытый ключ
Смена папки:
cd /etc/opendkim/keys
Создайте и откройте новую папку для домена:
sudo mkdir esempio.it
cd esempio.it
Сгенерируйте ключи:
sudo opendkim-genkey -s mail -d esempio.it
Сделайте opendkim владельцем закрытого ключа:
sudo chown opendkim:opendkim mail.private
Открытый ключ для DNS-записей домена
Откройте файл mail.txt:
sudo nano -$ mail.txt
Открытый ключ определяется в параметре p:
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme"
"0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB" ; ----- DKIM key mail for esempio.it
Та часть, которая вас интересует, заключена в двойные кавычки ":
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme"
"0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB"
Соедините две строки кода, удалив двойные кавычки ", затем:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA38K27694dPpB72IgyYh/d6bOaSTe4vXlaPOFjAn4Mef8VGA8Cnvb2VWx0wV2HvqAR62iHjBVZc6otsYI35MIwOh6cunL5ypwIQ0+ALUd5+qUz6ww2vAPkt0iPudIwg41Zmv+tR74zZGNHtV+691i6jCYKEJ6iJlfJqwM+HigDy5T62Qp5FaVSDom/y4eLinme0Vdg1AZQ4Vg5/fK1PtVNTrqwFqzGy6IdmVjImfcNtAZ/CXSzKLUmsPHxo/ST88XFK9jUUW8vYcT9Yw+Ma0mce9mCcxITpCG5jrX07K+Y+kNJPesZ9v/prwQ+4JVtoT2FrJE6nFqHGLGpTzUVGKkTQIDAQAB
Это значение нужно добавить в поле TXT в записях DNS вашего домена.
ВНИМАНИЕ не копируйте этот публичный ключ, он носит иллюстративный характер, он не будет работать на вашем сервере.
Перезапустите Postfix и OpenDKIM:
sudo service postfix restart
sudo service opendkim restart
Настройка и установка DKIM на Ubuntu 18.