В данной статье я расскажу о том, как настроить DK/DKIM для совместной работы с Postfix в Debian/Ubuntu Linux.
Предполагается, что Postfix уже неастроен и работает; если это не так, то очень рекомендую к прочтению этот замечательный мануал.
Прежде всего нужно установить dk-filter и dkim-filter:
sudo apt-get install dk-filter dkim-filter
Обращаю внимание, что с большой вероятностью при установке пакета dkim-filter dpkg выдаст ошибку о невозможности запуска демона dkim-filter. Это нормально, ибо демон нужно сначала настроить.
Начнём с генерации ключей. Для этого воспользуемся утилитой dkim-genkey:
dkim-genkey -d example.com -s mail
Результатом работы утилиты будут два файла: mail.txt (открытый ключ) и mail.private (закрытый ключ).
В файле mail.txt будет что-то вроде этого:
mail._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p=MIG...AQAB"
Эту запись нужно поместить в файл зоны почтового сервера и перезапустить сервер DNS. Также рекомендую добавить в файл зоны информацию об Author Signing Practises (ASP) — практики подписывания сообщений.
Переходим к mail.private. Лично я храню “почтовые ключи” в каталоге /etc/mail:
sudo mkdir -p /etc/mail/example.com sudo mv -f mail.private /etc/mail/example.com/mail
При необходимости генерацию ключей нужно произвести для других доменов.
Спонсор поста:
Тем кто хочет купить бионикл в Москве, советую интернет магазин игрушек Lego.
Теперь, когда у нас есть открытый и закрытый ключи, можно с чистой совестью приступать к конфигурированию dkim-filter. Его файл конфигурации находится в /etc/dkim-filter.conf
sudo nano /etc/dkim-filter.conf
Я использую следующую конфигурацию:
# Запись сообщений в syslog Syslog yes# Всегда добавлять заголовок Authentication-Results AlwaysAddARHeader yes # Файл с перечнем доменов, для которых осуществляется # подписывание исходящих сообщений Domain /etc/dkim.domains # Файл с перечнем закрытых ключей KeyList /etc/dkim.keylist # Не перезапускаться при ошибках AutoRestart no # Режим работы: подпись и проверка Mode sv # Подписывать сообщения из поддоменов # доменов, указанных в Domains SubDomains yes # Отклонять письма с неверной подписью On-BadSignature reject
Файл /etc/dkim.domains имеет следующий вид:
example.com example.net # По домену на строку
Файл /etc/dkim.keylist имеет следующий вид:
# Отправитель:Подписывающий домен:Путь к закрытому ключу *example.com:example.com:/etc/mail/example.com/mail *example.net:example.net:/etc/mail/example.net/mail
Обращаю внимание, что имя файла ключа (mail) должно совпадать с селектором ключа в TXT-записи DKIM домена (mail._domainkey).
После этого запускаем dkim-filter:
/etc/init.d/dkim-filter start
По умолчанию он будет прослушивать порт 8891 на localhost.
Теперь переходим к dk-filter. Будем использовать те же самые ключи (а смысл генерировать новые?).
Начнём с редактирования файла зоны: в него нужно добавить строку (политику подписи сообщений):
_domainkey IN TXT "o=~"
или
_domainkey IN TXT "o=-"
В первом варианте мы сообщаем, что почтовые сообщения могут быть подписаны (а могут и не быть подписаны); во втором — что все сообщения, исходящие из данного домена, должны быть подписаны.
После изменения файла зоны (не забываем обновить serial зоны) DNS-сервер необходимо перезапустить.
Переходим к файлу /etc/default/dk-filter:
sudo nano /etc/default/dk-filter
У меня этот файл имеет следующий вид:
DAEMON_OPTS="-l" DAEMON_OPTS="$DAEMON_OPTS -k -d /etc/dkim.domains -s /etc/dk.keylist -D -h -S mail" SOCKET="inet:8892@localhost"
А файл /etc/dk.keylist выглядит так:
# Подписывающий домен:Путь к закрытому ключу example.com:/etc/mail/example.com/mail example.net:/etc/mail/example.net/mail
Перезапускаем dk-filter:
/etc/init.d/dk-filter restart
Наконец, переходим к конфигурации Postfix. Дописываем в /etc/postfix/main.cf следующие строки:
milter_default_action = accept milter_protocol = 2 smtpd_milters = inet:localhost:8891, inet:localhost:8892 non_smtpd_milters = inet:localhost:8891, inet:localhost:8892
После чего перезагружаем Postfix:
/etc/init.d/postfix reload
Перед тестированием DK/DKIM, возможно, придётся подождать окончания распространения изменений в DNS-записях.
Самый простой способ тестирования — отправка произвольного сообщения на адрес autorespond+dk@dk.elandsys.com (для тестирования DomainKeys) или autorespond+dkim@dk.elandsys.com (для тестирования DKIM).
Пример успешного прохождения проверок DK/DKIM:
Authentication-Results: ns1.qubic.net; sender-id=pass header.from=vladimir@internetnetworkmarketer.org.ua; <strong>spf=pass</strong> smtp.mfrom=vladimir@internetnetworkmarketer.org.ua Authentication-Results: ns1.qubic.net; <strong>domainkeys=pass</strong> header.from=vladimir@internetnetworkmarketer.org.ua Authentication-Results: ns1.qubic.net; <strong>dkim=pass</strong> (1024-bit key) header.i=@internetnetworkmarketer.org.ua; dkim-adsp=none
В примере выше я поменял адреса (на горе спамерам); те, кто рискнёт отправить письмо на vladimir@internetnetworkmarketer.org.ua, рискуют попасть в чёрный список UCEPROTECT Level 1
Разное
Клубы являются местом, где приятно провести время. Первые клубы Москвы, возникшие в начале 90-х годов – “Арлекино”, “Метелица” и “Манхэттен-Экспресс”. Они, как правило, имели стандартную программу – платный вход, выпивка, закуска, показ мод, выступление отечественных и иногда зарубежных исполнителей.
One Comment