DKIM (DomainKeys Identified Mail) — это технология, позволяющая подписывать электронные письма с помощью пары открытого и закрытого ключей. Принимающий почтовый сервер применяет DKIM для проверки писем, отправленных легитимными почтовыми серверами. Это также помогает снизить вероятность попадания писем в СПАМ.
В этом руководстве вы найдете быстрые и простые инструкции по настройке DomainKeys с вашим POSTFIX на системах CentOS и RHEL.

После настройки DKIM на наших почтовых серверах мы вначале создали пару ключей (публичный и приватный) для подписи отправляемых сообщений. Публичный ключ добавляется в виде TXT-записи на сервере имен домена, а приватный ключ устанавливается на сервере, откуда отправляется электронная почта. Когда письмо отправляется авторизованным пользователем, сервер использует хранящийся приватный ключ для создания цифровой подписи, которая добавляется в заголовок сообщения, и затем письмо отправляется как обычно.
Перед началом настройки убедитесь, что у вас установлен Postfix и OpenDKIM. Вы можете установить их с помощью команды:
yum install postfix opendkim
Далее необходимо настроить конфигурационные файлы. Откройте файл конфигурации OpenDKIM:
vi /etc/opendkim.conf
Добавьте или измените следующие строки:
Domain yourdomain.com
KeyFile /etc/opendkim/keys/yourdomain.private
Selector default
Socket local:/var/run/opendkim/opendkim.sock
Создайте директорию для хранения ключей:
mkdir -p /etc/opendkim/keys/yourdomain.com
Сгенерируйте ключи с помощью команды:
opendkim-genkey -s default -d yourdomain.com
После этого добавьте созданный публичный ключ в DNS-записи вашего домена, а приватный ключ переместите в созданную ранее директорию.
Не забудьте настроить Postfix для работы с OpenDKIM, добавив следующую строку в файл конфигурации Postfix:
milter_protocol = 2
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
После внесения всех изменений перезапустите службы Postfix и OpenDKIM:
systemctl restart postfix
systemctl restart opendkim
Теперь ваш сервер готов к отправке писем с использованием DKIM. Проверьте корректность настройки с помощью специальных инструментов для проверки DKIM, таких как DKIMValidator или другие аналогичные сервисы.
Кроме того, рекомендуем настроить DMARC (Domain-based Message Authentication, Reporting & Conformance) и SPF (Sender Policy Framework) для повышения уровня защиты вашей почты. Это позволит более эффективно бороться с фишингом и спамом, а также улучшит доставляемость писем.
Чтобы добавить запись DMARC, создайте новую TXT-запись в DNS с форматом, подобным следующему:
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
Запись SPF можно добавить также в формате TXT:
v=spf1 a mx ip4:YOUR_IP_ADDRESS -all
Где `YOUR_IP_ADDRESS` — это IP-адрес вашего почтового сервера. Эти меры помогут вам получить более полную картину о состоянии вашей почтовой системы и обеспечат лучшую защиту от злоумышленников.
Содержание статьи
Установка DKIM-milter
Сначала убедитесь, что в вашей системе активирован репозиторий EPEL. Затем установите пакет dkim-milter с помощью следующей команды.
yum install postfix opendkim
После установки вам потребуется настроить OpenDKIM. Для этого откройте файл конфигурации OpenDKIM, который обычно находится по пути /etc/opendkim.conf. В нем необходимо указать параметры, такие как домены, которые будут подписываться, и пути к ключам DKIM.
Не забудьте создать директорию для хранения ключей DKIM и сгенерировать ключи с помощью команды:
opendkim-genkey -s default -d yourdomain.com
После этого переместите сгенерированные ключи в нужную директорию и укажите их путь в конфигурационном файле.
Также добавьте запись TXT в настройки DNS вашего домена с публичным ключом, чтобы почтовые серверы могли проверять подписи.
После завершения настройки перезапустите службы Postfix и OpenDKIM для применения изменений:
systemctl restart postfix opendkim
Теперь ваш сервер должен корректно подписывать исходящие письма с помощью DKIM.
Генерация пары ключей
Теперь создайте пару ключей DKIM с использованием утилиты dkim-genkey, входящей в состав пакета dkim-milter. Для примера используем доменное имя «example.com». Замените его на свои реальные данные.
MYDOMAIN=example.com mkdir -p /etc/opendkim/keys/$MYDOMAIN cd /etc/opendkim/keys/$MYDOMAIN opendkim-genkey -r -d $MYDOMAIN
Указанная команда создаст два файла: default.private и default.txt. Вы можете создать несколько ключей DKIM для различных доменов и настроить их на сервере Postfix.
Теперь установите правильные разрешения для директории Keys.
chown -R opendkim:opendkim /etc/opendkim chmod go-rw /etc/opendkim/keys
После этого вам необходимо добавить TXT-запись в настройки DNS вашего домена, используя содержимое файла default.txt. Эта запись будет содержать открытый ключ, который будет использоваться для проверки подписи сообщений. Убедитесь, что изменения DNS были успешно применены, прежде чем продолжать настройку.
Также рекомендуется проверить работоспособность DKIM, используя утилиты для тестирования, такие как Mail Tester или DKIM Validator, чтобы убедиться, что ваши письма правильно подписываются и проходят проверку.
Не забудьте перезапустить службу OpenDKIM для применения изменений, используя команду:
systemctl restart opendkim
Таким образом, вы сможете настроить DKIM для повышения безопасности и надежности ваших email-коммуникаций.
Настройка OpenDKIM
Откройте файл конфигурации Opendkim и добавьте или обновите следующие строки.
vim /etc/opendkim.conf
Mode sv Socket inet:8891@localhost Domain example.com #KeyFile /etc/opendkim/keys/default.private прокомментируйте эту строку KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts
Затем отредактируйте файл списка ключей домена /etc/opendkim/KeyTable и добавьте следующую запись.
default._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private
Далее измените файл /etc/opendkim/SigningTable и обновите запись.
*@example.com default._domainkey.example.com
Также измените файл /etc/opendkim/TrustedHosts и внесите следующую запись.
mail.example.com example.com
После внесения изменений перезапустите службу OpenDKIM для применения настроек:
systemctl restart opendkim
Не забудьте проверить правильность настройки, используя команды для тестирования DKIM. Например:
opendkim-testkey -d example.com -s default -vvv
Это позволит убедиться, что ключи настроены корректно и сервер готов к обработке подписей.
Также рекомендуется настроить SPF и DMARC для повышения уровня защиты вашего домена от подделки.
Настройка Postfix
Теперь откройте файл конфигурации Postfix /etc/postfix/main.cf и добавьте в конец файла следующие строки.
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
Эти настройки позволяют использовать Milter-программы, такие как OpenDKIM, для обработки входящей почты. Убедитесь, что OpenDKIM настроен правильно и работает на указанном порту. В заключение, запустите службу DKIM с помощью следующей команды.
service opendkim start
Также рекомендуется проверить статус службы и убедиться, что она запущена без ошибок, выполнив команду service opendkim status.
Не забудьте также добавить соответствующие DNS-записи для DKIM в настройки вашего домена. Это включает в себя публикацию открытого ключа в формате TXT, который генерируется OpenDKIM. Пример записи может выглядеть так:
default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=Ваш_публичный_ключ"
Где Ваш_публичный_ключ — это ключ, который был сгенерирован OpenDKIM. После добавления записи подождите некоторое время, чтобы изменения вступили в силу, и проверьте корректность настройки с помощью онлайн-сервисов для проверки DKIM.
Если вы хотите улучшить безопасность вашей почтовой системы, рассмотрите возможность использования SPF и DMARC в дополнение к DKIM. Эти технологии помогут защитить ваш домен от подделки и повысить доставляемость писем.
Настройка DNS-записи
После настройки приватного ключа на сервере Postfix будет создан другой файл /etc/opendkim/keys/example.com/default.txt, сгенерированный с помощью opendkim-genkey. Откройте файл зоны DNS и добавьте это как TXT-запись, найденную в default.txt. В моем случае это выглядит так.
default._domainkey IN TXT ( "v=DKIM1; k=rsa; s=email; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdTtEqM8FqndiFYOderzljMMMqBdEp+wJKP+VUbhc9GigmK34ZjrSqqdKjIEWr2q9DvSVp1H1bZs4t050m0HZxJqknDz2yoDJ6W4mCaSCHesRde5V44V/L65Gqm/rvBz1d6CCp8A2515eveWrIAocOD6pKJ4tnXHz3uwV2ZtgQiQIDAQAB" ) ; ----- DKIM key default for example.com
Важно помнить, что изменения в DNS могут занять некоторое время для распространения, обычно от нескольких минут до 48 часов. Чтобы проверить, правильно ли добавлена запись, можно использовать инструменты для проверки DKIM, такие как MXToolbox DKIM Lookup. Кроме того, убедитесь, что у вас правильно настроены SPF и DMARC записи, так как они работают в связке с DKIM для повышения безопасности вашей почты.
Также стоит отметить, что использование DKIM повышает вероятность успешной доставки ваших писем, так как многие почтовые провайдеры проверяют эти записи на наличие подделки. Рекомендуется периодически проверять ваши DKIM, SPF и DMARC записи, чтобы убедиться в их актуальности и правильной работе.
Если у вас возникают проблемы с настройкой, рассмотрите возможность обращения к документации вашего почтового сервиса или консультирования с профессионалом в области администрирования почтовых систем. Кроме того, некоторые DNS-провайдеры предоставляют инструменты для упрощения добавления и проверки записей, что может значительно облегчить этот процесс.
Проверка DKIM
Чтобы убедиться, что DKIM работает корректно, отправим тестовое письмо через командную строку.
mail -vs "Test DKIM" [email protected] < /dev/null
В полученном сообщении откройте исходный код и найдите "DKIM-Signature". Вы увидите что-то подобное ниже.
Если вы не видите заголовка "DKIM-Signature", это может означать, что DKIM не настроен правильно. Убедитесь, что:
- Запись DKIM добавлена в DNS для вашего домена.
- Ваш почтовый сервер настроен для использования DKIM.
- Письмо действительно прошло через сервер, который подписывает его с помощью DKIM.
Также вы можете использовать онлайн-сервисы для проверки DKIM-подписей. Эти инструменты помогут вам определить, корректно ли настроены DKIM и SPF для вашего домена.
Советы по улучшению безопасности почтового сервера
Регулярное обновление программного обеспечения помогает устранить уязвимости и обеспечить стабильную работу системы. Настройка фаервола позволит ограничить доступ только к необходимым портам и службам. Использование шифрования для передачи данных защитит информацию от перехвата.
Рекомендуется активировать многофакторную аутентификацию для администраторов и пользователей. Это добавляет дополнительный уровень защиты, делая доступ к учетным записям более безопасным. Также следует периодически проводить аудит безопасности, чтобы выявить и устранить возможные слабые места.
Не забывайте про регулярное создание резервных копий данных. Это поможет восстановить систему в случае атак или сбоев. Установите систему мониторинга, чтобы отслеживать активность на сервере и быстро реагировать на подозрительные действия.
Внедрение этих рекомендаций значительно повысит уровень безопасности вашего почтового сервера и защитит его от множества угроз. Важно помнить, что безопасность – это непрерывный процесс, требующий постоянного внимания и обновления методов защиты.

