Введение
DomainKeys Identified Mail (DKIM) — это метод аутентификации электронной почты, предназначенный для обнаружения поддельных адресов отправителя в сообщениях, что часто используется в фишинге и почтовом спаме. DKIM позволяет организации заявить о своей ответственности за сообщение таким образом, чтобы получатель мог его проверить. OpenDKIM это реализация спецификации DKIM с открытым исходным кодом, которая широко используется для добавления этого уровня безопасности в почтовые системы.
В этом руководстве мы рассмотрим шаги по установке и настройке OpenDKIM на сервере Ubuntu. Мы рассмотрим процесс установки, детали конфигурации, интеграцию с почтовым сервером Postfix и тестирование, чтобы убедиться, что все настроено правильно.
Предварительные условия
Прежде чем приступить к работе, убедитесь, что у вас есть следующее:
- Сервер Ubuntu (20.04 LTS или более поздней версии).
- Root или sudo доступ к серверу.
- Доменное имя и контроль над настройками DNS.
- Postfix, установленный и настроенный на вашем сервере.
Шаг 1: Обновление системных пакетов
Начните с обновления списков пакетов на вашем сервере Ubuntu, чтобы убедиться, что у вас доступны последние версии.
$ sudo apt update
$ sudo apt upgrade -y
Шаг 2: Установка OpenDKIM и сопутствующих пакетов
Далее установите OpenDKIM и его зависимости с помощью следующей команды:
$ sudo apt install opendkim opendkim-tools -y
Шаг 3: Настройте OpenDKIM
Создание каталога конфигурации OpenDKIM
Создайте каталог для конфигурации OpenDKIM и файлов ключей.
$ sudo mkdir /etc/opendkim
$ sudo mkdir /etc/opendkim/keys
Настройка OpenDKIM
Откройте основной файл конфигурации OpenDKIM.
$ sudo nano /etc/opendkim.conf
Добавьте в файл следующие параметры конфигурации:
Syslog yes
UMask 002
Mode sv
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Socket inet:12345@localhost
PidFile /var/run/opendkim/opendkim.pid
UserID opendkim:opendkim
TemporaryDirectory /var/tmp
Настройка доверенных узлов
Отредактируйте файл TrustedHosts, включив в него вашу локальную сеть и почтовый сервер.
$ sudo nano /etc/opendkim/TrustedHosts
Добавьте следующие строки:
127.0.0.1
localhost
192.168.0.1/24 # Replace with your local network
*.yourdomain.com # Replace with your domain
Настройка таблицы ключей
Отредактируйте файл KeyTable, чтобы указать местоположение ключей DKIM.
$ sudo nano /etc/opendkim/KeyTable
Добавьте следующую строку (замените yourdomain.com
на ваше фактическое доменное имя):
mail._domainkey.yourdomain.com yourdomain.com:mail:/etc/opendkim/keys/yourdomain.com/mail.private
Настройка таблицы подписи
Отредактируйте файл SigningTable, чтобы определить, какие домены должны быть подписаны.
$ sudo nano /etc/opendkim/SigningTable
Добавьте следующую строку:
*@yourdomain.com mail._domainkey.yourdomain.com
Шаг 4: Генерация ключей DKIM
Перейдите в каталог keys и создайте каталог для вашего домена.
$ cd /etc/opendkim/keys
$ sudo mkdir yourdomain.com
$ cd yourdomain.com
Сгенерируйте новую пару DKIM-ключей с помощью следующей команды:
$ sudo opendkim-genkey -s mail -d yourdomain.com
$ sudo chown opendkim:opendkim mail.private
В результате будут сгенерированы два файла:
mail.private
: Закрытый ключ, используемый OpenDKIM для подписи исходящих сообщений.mail.txt
: Открытый ключ, который будет добавлен к вашим DNS-записям.
Шаг 5: Добавьте открытый ключ DKIM в DNS
Откройте mail.txt
файл и скопируйте его содержимое.
$ cat mail.txt
Вы увидите что-то вроде этого:
mail._domainkey.yourdomain.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDmt+8iyK2xwLth..."
Войдите в систему DNS-провайдера и создайте новую TXT-запись со следующими данными:
- Имя:
mail._domainkey
- Тип:
TXT
- Значение: (Вставьте содержимое из
mail.txt
файла)
Шаг 6: Настройте Postfix на использование OpenDKIM
Отредактируйте основной конфигурационный файл Postfix для интеграции OpenDKIM.
$ sudo nano /etc/postfix/main.cf
Добавьте следующие строки в конец файла:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12345
non_smtpd_milters = inet:localhost:12345
Сохраните и закройте файл.
Шаг 7: Запуск и включение OpenDKIM
Запустите службу OpenDKIM и включите ее запуск при загрузке.
$ sudo systemctl start opendkim
$ sudo systemctl enable opendkim
Перезапустите Postfix, чтобы применить изменения.
$ sudo systemctl restart postfix
Шаг 8: Проверьте конфигурацию
Отправьте тестовое электронное письмо
Отправьте тестовое письмо на внешний адрес электронной почты (например, Gmail или Yahoo), чтобы проверить, работает ли подпись DKIM.
Проверка заголовков электронной почты
Получив тестовое письмо, проверьте заголовки электронной почты на наличие DKIM-Signature
заголовок. Этот заголовок указывает на то, что письмо было подписано OpenDKIM.
Проверка подписи DKIM
Используйте онлайн-инструмент проверки DKIM (например, DKIMCore, MXToolbox) для проверки DKIM-подписи. Введите селектор (mail
) и ваш домен (yourdomain.com
), чтобы проверить, правильно ли настроен открытый ключ в DNS.
Устранение неполадок
Проверка журналов OpenDKIM
Если у вас возникли проблемы, проверьте журналы OpenDKIM на наличие сообщений об ошибках.
$ sudo journalctl -u opendkim
Убедитесь в правильности разрешений
Убедитесь, что opendkim
пользователь имеет правильные права доступа к ключевым файлам.
$ sudo chown -R opendkim:opendkim /etc/opendkim/keys
Проверка конфигурации DNS
Дважды проверьте записи DNS, чтобы убедиться, что открытый ключ DKIM добавлен правильно.
Перезапуск служб
Если в конфигурационные файлы были внесены изменения, перезапустите службы OpenDKIM и Postfix.
$ sudo systemctl restart opendkim
$ sudo systemctl restart postfix
Заключение
Настройка DKIM с помощью OpenDKIM на сервере Ubuntu повышает безопасность электронной почты, проверяя подлинность ваших писем. Следуя шагам, описанным в этом руководстве, вы сможете успешно установить, настроить и интегрировать OpenDKIM с вашим почтовым сервером Postfix. Регулярно отслеживайте и обновляйте ключи DKIM и записи DNS, чтобы поддерживать безопасную почтовую среду.