Навигация
Системное Администрирование Решения на открытых кодах Структура сети Компьютерные сети малых предприятий Сеть с централизованным управлением Управление с помощью групповых политик Организация почтового обслуживания Взаимодействие с глобальной сетью Безопасность Виртуализация Парядок настройки и определения неисправностей Средства управления системами Автоматизация установки программного обестичения Решение проблем с компьютером Разное
 
 
Избранное
Pathping. Traceroute на стероидах.
FreeNAS: создаём сетевое хранилище (NAS)
Iperf - утилита для тестирования пропускной способности сети.
Средство против «сетевой слепоты»
Преимущества и недостатки RAID 6
Дисковые массивы RAID
Надежнее, чем RAID 5
Унификация корпоративных коммуникаций
Exchange и SAN: не все так просто
Cisco против Meru
 
 
Организация почтового обслуживания - Подписываем и проверяем почту при помощи DomainKeys и DKIM в Postfix

В данной статье я расскажу о том, как настроить 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

При необходимости генерацию ключей нужно произвести для других доменов.

Теперь, когда у нас есть открытый и закрытый ключи, можно с чистой совестью приступать к конфигурированию 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




 
 
 
 
Поиск по сайту
Google Поиск


Яндекс поиск
 
 
Полезное
 
 
 
 
 
systemzone.ru 2014