Настройка связки DKIM + sendmail на сервере Ubuntu
Если вдруг перед вами встала задача использования Sendmail для отправки почты вместо использования альтернативных способов, стоит подумать о том, чтобы верно настроить DKIM-запись, чем обезопасить свою корреспонденцию от придирчивых спам-фильтров. Однако, не всегда этот процесс проходит просто и быстро. В сети множество инструкций о том, как это сделать, но итогом нескольких часов настройки стал собственный опыт и этот мануал.
Сегодняшняя инструкция протестирована на сервере с Linux Ubuntu 16.04.
Сначала установка sendmail
Тут всё просто. Достаточно выполнить команду:
sudo apt-get update
sudo apt-get install sendmail
Если не сработает, иногда приходится добавить также:
sudo apt-get install sensible-mda
sudo apt-get install sendmail-bin
После этого стоит обновить файл hosts, открыв его на редактирование командой:
sudo nano /etc/hosts
Добавляем туда строку:
127.0.0.1 localhost localhost.localdomain имя_вашего_хоста
Здесь обратите внимание на «имя вашего хоста», которое необходимо заменить на справедливое для вас значение.
Затем пересобираем конфиг и перезапускаем сервис:
sendmailconfig
service sendmail restart
Приступаем к DKIM
Нам потребуются пакеты. Доустанваливаем тех, что скорее всего, пока не хватает:
apt-get install opendkim opendkim-tools
Затем создаём директорию для хранения ключей:
mkdir -p /etc/opendkim/keys/ваш_домен_ру
Здесь и далее мы будем использовать в коде подстановку «ваш_домен_ру», которую необходимо заменить на соответствующее название домена. Будьте внимательны, это нам потребуется ещё ни один раз.
Далее потребуется сгенерировать ключи. Приватные будут храниться на вашем сервере, а публичные нужно будет прописать в виде DNS-записей у хостера. Здесь же придумываем название селектора, которое сейчас и в дальнейшем будем использовать. В нашем случае это будет слово «mail».
opendkim-genkey -D /etc/opendkim/keys/your-domain.com -d your-domain.com -s default
После выполнения команды в директории хранения ключей будет создано два файла с именами «mail.private» и «mail.txt».
Теперь назначаем верные права доступа и владельца:
chown -R opendkim:opendkim /etc/opendkim/keys/ващ_домен_ру
chmod 640 /etc/opendkim/keys/your-domain.com/mail.private
chmod 644 /etc/opendkim/keys/your-domain.com/mail.txt
Залезаем в конфиг командой:
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:8891@127.0.0.1
Domain ваш_домен_ру
Selector mail
Теперь создаём те самые три файла, что описали в конфиге. Сначала первый:
sudo nano /etc/opendkim/KeyTable
Вставляем содержимое:
mail._domainkey.ваш_домен_ру ваш_домен_ру:mail:/etc/opendkim/keys/ващ_домен_ру/mail.private
Создаём второй:
sudo nano /etc/opendkim/SigningTable
Содержимое:
*@ваш_домен_ру mail._domainkey.ваш_домен_ру
Переходим к третьему:
sudo nano /etc/opendkim/TrustedHosts
Вставляем туда строки:
127.0.0.1
localhost
ваш_домен_ру
Снова конфигурируем sendmail, сообщая о том, что теперь есть подпись DKIM. Открываем на редактирование файл:
sudo nano /etc/mail/sendmail.mc
И добавляем в конец файла строку:
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')
Редактируем ещё один конфиг:
sudo nano /etc/default/opendkim
Здесь нужно раскомментировать строку «SOCKET="inet:8891@localhost"».
Затем снова пересобираем конфиг sendmail, перезапускаем службу и запускаем openDKIM:
sendmailconfig
service sendmail restart
service opendkim start
Пора добавить DNS-записи
Для начала нам потребуется просмотреть содержимое файла ключа:
cat /etc/opendkim/keys/ваш_домен_ру/mail.txt
В итоге увидим что-то в духе:
default._domainkey IN TXT ( «v=DKIM1; k=rsa; "
«p=MIGfMA0000qGSIb3DQEBAQUAA4GNADCxxxxBgQCgmHiX7BojGFoggggXa25Xs444WRhLmNpnv7777TY7FU4mG/WxtgrpV////Tzt3EZQ1/BpyICjlJZXIhgggguePnyd/iNFh4xKF3pi8yoqWB0eyq6KI/fXUbUWdd+NiU4ffffv89St92g24UFaElEl54XXCa6GlllldHFMetkBXwID/QAB» ) ; ---— DKIM key default for droidnews.ru
Теперь в панели хостера необходимо добавить TXT-Запись «mail._domainkey» (здесь «mail» снова выбранный нами ранее селектор). В качестве значения указываем всё, что прописано в кавычках, включая кавычки.
Проверяем результат
Чтобы понять, верно ли у нас всё получилось, можно, например, воспользоваться сервисом https://www.mail-tester.com или http://www.isnotspam.com, http://www.appmaildev.com/en/dkim, https://mxtoolbox.com/SuperTool.aspx, которые расскажут о том, удалось отправить подписанное письмо с вашего сервера, а также проверить вашу DKIM-запись на валидность. Кроме того, даст ещё некоторые полезные советы, как повысить рейтинг вашего отправления, чтобы оно было успешно доставлено до адресата, минуя спам-фильтры.
Ещё пара полезных записей в DNS
Почтовые сервисы также одобрят у вас появление записи DMARC.
Для этого в панели хостера добавляем TXT-запись «_ваш_домен_ру» (первый знак нижнего подчёркивания надо оставить) со следующим значением «v=DMARC1; p=none».
Кроме того, добавим SPF-запись. TXT-запись с названием «ваш_домен_ру» и значением «v=spf1 a mx -all».
Теперь ваши письма должны всегда успешно доходить до адресатов.
Тогда можно поддержать её лайком в соцсетях. На новости сайта вы ведь уже подписались? ;)
Или хотя бы оставить довольный комментарий, чтобы мы знали, какие темы наиболее интересны читателям. Кроме того, нас это вдохновляет. Форма комментариев ниже.
Что с ней так? Своё негодование вы можете высказать на zelebb@gmail.com или в комментариях. Мы постараемся учесть ваше пожелание в будущем, чтобы улучшить качество материалов сайта. А сейчас проведём воспитательную работу с автором.
Если вам интересны новости мира ИТ так же сильно, как нам, подписывайтесь на Telegram-канал. Там все материалы появляются максимально оперативно. Или, может быть, удобнее "Вконтакте"?
Поговорить?
Уже наговорили:
Читайте нас где удобно
Ещё на эту тему было
- Защищенная портативная колонка WAVEFUN Cuboid
- Xiaomi готовит мега-топовый игровой смартфон
- Компания Schneider Electric представила умные системы для повышения эффективности нефтедобычи
- Google экспериментирует с нижним тулбаром в звонилке
- «Мегафон» сообщает, что продажи смартфонов Xiaomi выросли в 5 раз
- Как включить отображение заряда аккумулятора в процентах в Android?
- Популярная клавиатура Swype для Android больше не будет развиваться
- Nokia 10 понизили до Nokia 8 Pro, но прокачали камеры
- Sony дразнит изогнутыми линиями и новым дизайном
- Рассекречено целиком: полные спецификации Samsung galaxy S9
Для тех, кто долистал
Ай-ти шуточка бонусом. Android - скоро все исправят; WP7 - скоро все появится; iOS - нам ничего не надо; Symbian - у нас все было.