DKIM + EXIM4 (Debian 7)
#1 Demonik
Начиная с версии Exim 4.7+ DKIM встроен в него. Достаточно просто создать подпись:
1.Создаем папочку /etc/exim4/dkim и генерим секретный ключ через openssl
где example.com — доменное имя нашего почтовика
На выходе получаем ключ вида:
2. Генерим публичный ключ на основе секретного
На выходе получаем в файле publick.key:
3. Правим конфиг Exim4 «/etc/exim4/exim4.conf»
Пишем в в начало файла exim4.conf
Далее задаем переменные и пишем их до строчки remote_smtp:
DKIM_DOMAIN = example.mydomain.ru (только так у меня заработало dkim=pass(в отличии от верхней строки), возможно потому что у меня на данный момент серверс рассылками и там отправляется почта от другого домена)
(где dkim_selector это любое слово dkim, dkimcompany, другой селектор)
Эта конструкция позволит использовать разные Private key для разных доменов.
(некоторые электронные письма, подписанные)
Значений dkim= может быть три:
- all — Все письма должны быть подписаны
- discardable — Не подписанные письма не должны приниматься
- unknown — Аналогично отсутствию записи
Источник
Настройка DKIM в Exim
Чтобы письма, которые посылает наш почтовый сервер, не так часто попадали в Спам, необходимо настроить DKIM (DomainKeys Identified Mail). Делать мы это будем на примере Exim, ОС — Ubuntu.
Описание
Первым делом, нам необходимо создать каталог, в котором мы будем хранить наш приватный ключ.
Далее нам необходимо сгенерировать приватный ключ, который будет только у нас на сервере и публичный ключ, который мы потом внесем в DNS запись.
Переходим в папку /etc/exim4/dkim
Генерируем приватный ключ example.com.key
Генерируем публичный ключ example.com.public из нашего приватного ключа example.com.key
Меняем владельца каталога /etc/exim4/dkim и всех файлов внутри на Debian-exim, именно под этим пользователем запускается Exim. Эту нужно, чтобы он имел доступ к файлу приватного ключа.
Далее, нам необходимо внести изменения в файл конфигурации Exim /etc/exim4/exim4.conf.template , чтобы он использовал наш приватный ключ. Для этого, открываем файл конфигурации и вносим следующие строчки перед секцией remote_smtp:
Сохраняем изменения и перезапускаем Exim следующей командой:
Чтобы проверить конфигурацию, можно воспользоваться следующей командой:
Теперь нам необходимо создать в DNS зоне нашего домена запись типа TXT, в которой указать наш публичный ключ в соответствующем формате. В поле имя указываем:
Где email — это селектор из предыдущего пункта настройки.
А в поле самой записи, указываем следующую строку:
v=DKIM1 — версия DKIM
h=sha256 — предпочитаемый hash-алгоритм, может быть sha1 и sha256
k=rsa — тип публичного ключа p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcbu6mvGWmF65Suqazr3Krb2Ky/EXs8qaT1yMDfc00YJD77dq6jCnAwxQUHHuKanlELGd1uqoVpKzmmVoquUChbmTzs5MBuzw0TCEhzIyyiD+ZZBbJQa85a7OhdLoDs7MkwlF2Asqj4k44CpJo0c7gAySdbIQNaY9YpTW0L1TatwIDAQAB — сам публичный ключ, который лежит у нас в файлике /etc/exim4/dkim/example.com.public
Протестировать работу DKIM можно с помощью следующих сервисов:
Проверяем, что на DNS сервере существует DKIM запись и она корректна этим сервисом.
Если все хорошо, то можно приступать к проверке корректной работы Exim и послать тестовое письмо, для этого, можно воспользоваться этим сервисом.
Источник
Настройка DKIM для Exim в Debian
Лично мне всегда Exim в качестве MTA всегда нравился больше, нежели Postfix. А тут ещё и оказалось, что начиная с версии 4.2 поддержка DKIM встроена в exim и нет необходимости устанавливать какие либо дополнительные пакеты. Сравните при этом как настраивается DKIM в postfix.
Проверяем версию Exim на нашем сервере
Отлично. Поддержка уже имеется. Осталось только сгенерировать сертификат и внести настройки в Exim и DNS
Займёмся генерацией сертификатов
Из приватного ключика нам нужно получить публичный. Он нам понадобится для создания доменной записи
Ну и спрячем его от посторонних глаз
Далее настройка Exim. Всё очень просто
Меняем
Обратите внимание на селектор, подсеченный в коде. Его имя должно совпадать с теми данными, которые будем добавлять в DNS. Имя выбирайте абсолютно любое, главное что бы в настройках Exim и в доменной записи был один и тот же
Настройка DNS
Правильная настройка DNS записи заключается в том, что бы добавить корректную TXT-запись в доменную зону
Шаблон зоны выглядит так:
selector._domainkey.domain.name
О селекторе уже вспоминали. В нашем случае это main
Для того что бы сформировать тело записи, нам нужно получить ключик от нашего селектора. Для этого мы выше выполняли команду для генерации публичного ключа. Посмотрим на его содержимое
Нам нужно всё, что находится между ——BEGIN PUBLIC KEY—— и ——END PUBLIC KEY——
Обратите внимание, что ключ должен располагаться в одну строку и не иметь пробелов. В итоге мы должны добавить TXT-запись main._domainkey.example.com.ua со значением:
О том как проверить правильность я писал в предыдущей статье.
Кроме того можно воспользоваться онлайн утилитами как эта или эта
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Источник
Настройка Exim DKIM в Debian
Настроим на нашем почтовым сервере Exim DKIM подписи, для того чтобы письма с нашего почтового сервера не попадали в спам и быстрее проходили проверку в различных спам-фильтрах, а также повысить доверие к нашему почтовому серверу со стороны популярных почтовых систем mail, yandex, gmail.
И добавим в DNS нашего домена необходимых записей о наличии поддержки DKIM.
Рассмотрим настройку DKIM при помощи opendkim-tool
создаем папку dkim в которой будет лежать наш приватный ключ
Меняем права на папку с root на Debian-exim
Генерируем открытый и закрытый ключи для домена adminunix.ru:
D
- Каталог в который будут сгенерированы ключи
d
- Называет домена, который будет использовать этот ключ для подписания
После выполнения будут созданы файлы etc/exim4/dkim/mail.private и /etc/exim4/dkim/email.txt, с секретным и публичными ключами соответственно.
переходим в папку /etc/exim4/dkim/ и переименовываем mail.private в adminunix.ru.key
Меняем права adminunix.ru.private (файл закрытого ключа) с root на Debian-exim
Настройки DNS
посмотрим содержимое файла mail.txt
email._domainkey В TXT «v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxweK5
+F42YFdkRQqZI922yCQc68pdgWUhYr7CSeCxcQ5P10oKi2mXtYxOOKmeA7NExY6U5jrGEJ6gyr
BfsJPUp25PwApbpGZ+cIRB2/N3KcevEfiOVyyO7f7WduM+jmz69nyLozWO7QM2QjCCxWx6aKZm» ; —— DKIM ключ почты для adminunix.ru
И добавляем эту информацию в нашу DNS зону в TXT запись.
Добавляем в поле имя
email._domainkey
а в поле Контент
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxweK5
+F42YFdkRQqZI922yCQc68pdgWUhYr7CSeCxcQ5P10oKi2mXtYxOOKmeA7NExY6U5jrGEJ6gyr
BfsJPUp25PwApbpGZ+cIRB2/N3KcevEfiOVyyO7f7WduM+jmz69nyLozWO7QM2QjCCxWx6aKZm
После того как мы добавили запись в DNS домена то mail.txt можно удалять файл.
Проверяем добавление записи в DNS
в ответ должны получить
email._domainkey.adminunix.ru. 2214 IN TXT «v=DKIM1\; k=rsa\; t=s\; p=MIIBIj.
Последним этапом настройки DKIM подписи является определение DKIM Author Domain Signing Practices (DKIM ADSP)
Добавляем еще одну запись TXT в DNS домена.
all
- — отправка неподписанных сообщений запрещена,
discardable
- — все неподписанные сообщения должны быть заблокированы на стороне получателя.
unknown
- — домен может подписывать некоторые или все письма
Настройка Exim
Добавляем в конфиг /etc/exim4/exim4.conf.template перед секцией remote_smtp:
# DKIM:
DKIM_DOMAIN = $
DKIM_KEY_FILE = /etc/exim4/dkim/DKIM_DOMAIN.key
DKIM_PRIVATE_KEY = $
DKIM_SELECTOR = email
или если конфиг разделен (при установке exim4 был вопрос «разделить конфиги на мелкие файлы?»), то писать в /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
Если вы в ручную создали конфигурационный файл /etc/exim4/exim4.conf, то добавлять надо в него.
И так для каждого домена. И потом рестарт екзима:
/etc/init.d/exim4 restart
Посмотрим наши записи в конфигурационным файлом Exim
где dkim_selector это первое слово перед ._domainkey в открытом ключе
И проверяем через сервис [urlspan]сервис[/urlspan] всели у нас получилось.
Читайте другие интересные статьи
Понравилась статья, расскажи о ней друзьям, нажми кнопку!
Источник
Настройка dkim exim4 debian
DKIM (расшифровывается как DomainKeys Identified Mail) — метод идентификации письма по доменным ключам. DKIM настраивается на почтовом сервере для того, чтобы подписывать исходящие письма цифровой подписью.
Наличие такой подписи в заголовке отправленного письма сообщает серверу-получателю, что оно действительно было отправлено с указанного домена.
Рассмотрим настройку DKIM при помощи opendkim-tool
Cоздаем папку dkim в которой будет лежать наш приватный ключ:
Меняем права на папку с root на Debian-exim
Генерируем открытый и закрытый ключи для домена vacadem.ru:
После выполнения будут созданы файлы etc/exim4/dkim/email.private и /etc/exim4/dkim/email.txt, с секретным и публичными ключами соответственно.
переходим в папку /etc/exim4/dkim/ и переименовываем mail.private в vacadem.ru.key
Меняем права vacadem.ru.private (файл закрытого ключа) с root на Debian-exim
Настройки DNS
посмотрим содержимое файла email.txt
И добавляем эту информацию в нашу DNS зону в TXT запись либо у регистратора, либо на нашем DNS сервере.
После того как мы добавили запись в DNS домена то email.txt можно удалять.
Настройка Exim
В конфиг /etc/exim4/exim4.conf.template пишем:
это писать перед секцией:
remote_smtp:
или если конфиг разделен (при инсталле exim4 был вопрос «разделить конфиги на мелкие файлы?»),
то писать в /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
При этом значение DKIM_SELECTOR и начальная часть DNS-записи должны совпадать (в этом примере: email).
Источник
Как не попасть в спам? Настройка PTR, SPF, DKIM на Exim
Если вы выполнили все шаги, описанные в предыдущей статье, ваш сайт на Drupal готов отправлять письма пользователям. Теперь необходимо сделать так, чтобы отправляемые сайтом уведомления и прочая корреспонденция попадали во “Входящие”, а не “Спам”. В этом материале мы рассмотрим варианты решения этой задачи. 100% результат, к сожалению, гарантировать невозможно, но уменьшить вероятность фильтрации ваших писем в нежелательную почту вполне реально.
Повысить доверие к вашим письмам и, соответственно, уменьшить шансы их попадания в “Спам”, можно с помощью:
- настройки PTR записи;
- настройки SPF записи;
- настройки DKIM.
Настройка PTR записи
PTR запись связывает IP адрес с доменом вашего сайта. DNS-серверы хранят так называемые А записи, по которым сопоставляется домен и IP адрес сервера, на котором расположен сайт. PTR запись обратна A записи: она показывает связку IP адреса и домена. Иногда PTR называют Reverse DNS.
В целях борьбы со спамом, почтовые сервисы в большинстве своём проверяют PTR у IP адреса сервера, с которого пришло письмо, а затем либо отправляют это письмо во «Входящее», либо фильтруют его в “Спам”. Соответственно, наличие этой записи и её совпадение с именем домена, который фигурирует в адресе отправителя, повышает доверие к приходящим с этого адреса письмам.
Зачем и как указывать PTR запись?
PTR запись указывается владельцем IP адреса сервера, с которого работает ваш сайт. Нужна та запись только в том случае, если вы используете VPS или выделенный сервер. На виртуальных хостингах PTR обычно есть и так, и указывает эта запись на имя сервера хостинг-провайдера.
Как посмотреть PTR запись?
Узнать PTR запись можно с помощью следующих команд:
Команды запускаются в терминале (командной строке); вместо “ip адрес” следует подставлять реальный IP.
Настройка SPF записи
SPF расшифровывается как Sender Policy Framework, что можно перевести как “инфраструктура политики отправителя”. Это расширение для протокола отправки электронной почты через SMTP, которое позволяет добавить DNS записи типа TXT к доменному имени и указать в этих записях IP адреса серверов, с которых разрешена отправка электронной почты.
SPF используется как фактор повышения доверия к исходящей от домена почте и в целях снижения вероятности попадания писем в “Спам”. Репутация домена, которую SPF позволяет защитить, также имеет не последнее значение: при рассылке спама или фишинговых писем, злоумышленники могут подставить в поле “От” любой адрес в любом домене, что может стать причиной проблем для владельца такого домена. IP адрес почтового сервера, с другой стороны, подделать невозможно, поэтому когда SPF запись для домена есть, принимающая сторона (почтовая служба) проверяет её и действует соответственно.
Как создать SPF запись?
SPF запись — текст с определённым синтаксисом. Пример SPF записи:
В записи указано, что следует принимать почту с IP адресов, которые указаны в DNS записях типа A и MX для домена, сопровождаемого этой записью. Если же адреса иные, почту лучше отклонить. Запись может быть немного короче: «v=spf1 a mx -all», её суть и функциональность от этого не меняются.
Синтаксис SPF записи
«v=spf1» — используемая версия SPF.
«+» — принимать почту. Этот знак не является обязательным.
« — принимать почту, но фильтровать её в “Спам”.
«?» — воспринимать письмо нейтрально, то есть применять к нему обычные правила.
«mx» — IP адреса всех серверов, указанных в DNS записях типа MX для домена.
«ip4» — здесь можно указать конкретные IPv4 адреса.
«ip6» — здесь можно указать конкретные IPv6 адреса.
«a» — IP адреса, которые указаны в DNS записях типа A для домена.
«include» — разрешает применение SPF другого домена.
«all» — устанавливает правила для всех других доменов, которых нет в SPF записи.
Пример SPF записи
Рассмотрим такую SPF запись:
mx — принимать почту со своих почтовых серверов.
a — принимать почту с серверов, которые указаны в записях типа A для своего домена.
ip4:123.45.125.94— принимать почту, отправленную с IP 123.45.125.94. Здесь можно указывать подсети в формате 123.45.125.0/24.
a:example.com — принимать почту с серверов, которые указаны в записях типа A для домена example.com. Здесь подсети можно указать в формате example.com/24.
mx:example.com — принимать почту с почтовых серверов, указанных в записях типа MX для домена example.com. Подсети можно указывать, как и в a:example.com.
include:example.com — разрешение на получение почты по правилам, указанным в SPF домена example.com.
all — вся почта с доменов, не указанных в SPF, будет направляться в “Спам”. Если тильду заменить на минус (-all), такая корреспонденция вообще не будет приниматься.
Настройка DKIM
DKIM расшифровывается как DomainKeys Identified Mail, что можно перевести как “Идентифицированная ключом домена почта”. Это метод аутентификации, дающий возможность проверить, действительно ли письмо отправлено с домена, фигурирующего в поле “От”. DKIM — эффективный метод борьбы с фишинговыми письмами и спамом.
Создание ключей DKIM при помощи opendkim-tool
1. Для начала, необходимо установить opendkim-tools. Сделать это можно с помощью следующей команды:
2. Затем надо создать папку dkim, в которой будут хранится ключи:
3. Права на папку необходимо поменять с root на Debian-exim:
4. Следующей командой генерируются открытый и закрытый ключи для домена example.com:
D — каталог, в который будут сгенерированы ключи;
d — домен, который будет использовать этот ключ для подписания;
s — mymail — имя селектора, строкового идентификатора, который, в принципе, может быть любым.
В результате, вы получите файлы etc/exim4/dkim/mymail.private и /etc/exim4/dkim/mymail.txt с секретным и публичными ключами соответственно.
5. Теперь надо перейти в папку /etc/exim4/dkim/ и переименовать mail.private в example.com.key:
6. Права на example.com.private (файл закрытого ключа) следует поменять с root на Debian-exim:
Настройки DNS
В файле mail.txt (cat /etc/exim4/dkim/mymail.txt) должно быть следущее содержимое:
Эту информацию необходимо добавить в TXT запись DNS зоны. В поле имя надо добавить
Теперь mymail.txt можно просто удалить.
Чтобы проверить, всё ли в порядке с добавленными записями, надо выполнить следующую команду:
Ответ должен быть такого вида:
Определение DKIM Author Domain Signing Practices (DKIM ADSP)
Чтобы указать практики DKIM Author Domain Signing Practices (DKIM ADSP), следует добавить в TXT DNS домена ещё одну запись:
all — отправка неподписанных сообщений запрещена;
discardable — все неподписанные сообщения должны быть заблокированы на стороне получателя;
unknown — домен может подписывать некоторые или все письма.
Настройка Exim
Настройка Exim начинается с добавления следующих строк в конфигурационный файл /etc/exim4/exim4.conf.template (перед секцией remote_smtp):
Конфигурационный файл может быть разделён на несколько более мелких файлов в процессе установки exim4. В таком случае, указанные строки необходимо добавить в файл /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
Ещё один вариант — ручное создание конфигурационного файла /etc/exim4/exim4.conf. В таком случае, добавлять строки следует в этот файл.
Операцию следует повторить для каждого домена, а затем перезапустить exim командой:
Проверка записей в конфигурационным файле Exim
Чтобы проверить записи в конфигурационном файле Exim, следует выполнить следующую команду:
Ответ должен иметь следующий вид:
где dkim_selector это первое слово перед ._domainkey в открытом ключе
Итого, SPF запись и PTR запись настроены, сервер готов для работы с DKIM. Результат — больше писем во “Входящих”, а не в “Спаме”.
Источник