Поддержка DKIM в cPanel

 

С недавнего Времени увеличилось количество запросов типа:

- поддерживает ли cPanel  DKIM?

- заинстальте DKIM для моего домена.

Самое важное  — DKIM это не то же самое что Domainkeys,

Стандарт Domainkeys был разработан компанией Yahoo, для борьбы со спамом, потому если возникают проблемы с попаданием почты в Junk (SPAM) на Yahoo, то установка DomainKeys обязательна. Yahoo не поддерживает DKIM

DKIM – DomainKeys Identified Mail — это новый стандарт который существует параллельно c DomainKeys, к примеру GMAIL поддерживает проверку DKIM

Если упустить нюансы, то можно считать что DKIM это новое поколение DomainKeys

Дефолтовая сборка Exim ‘a проводится cPanel ‘ом с поддержкой DMIK

это можно легко проверить:

/usr/sbin/exim -dd 2>&1 | grep DKIM
Support for: crypteq iconv() IPv6 PAM Perl OpenSSL Content_Scanning
Old_Demime Experimental_SPF Experimental_SRS Experimental_DomainKeys Experimental_DKIM

Как видим поддержка DKIM и DomainKeys осуществляется отдельно

Experimental_DomainKeys Experimental_DKIM

К сожаления стандартной утилиты или скрипта для сетапа DKIM текущая версия cPanel не имеет.

Включаем работу с DKIM для EXIM ‘a

переходим в папку EMIM ‘a

cd /usr/local/cpanel/etc/exim

Генерируем SSL keys

openssl genrsa -out dkim.key 1024  openssl rsa -in dkim.key \
 -out dkim.public -pubout -outform PEM

Получится два Ключа

ls -la | grep dkim
-rw-r--r--  1 root root  891 Sep  6 23:23 dkim.key
-rw-r--r--  1 root root  272 Sep  6 23:23 dkim.public

Дальше открываем конфиг EXIM ‘a и ищем » remote_smtp: »

vim /etc/exim.conf

Там должно быть что-то вроде:

remote_smtp:
driver = smtp  interface = ${if exists {/etc/mailips}
{${lookup{$sender_address_domain}lsearch*{/etc/mailips}{$value}{}}}{}}
helo_data = ${if exists {/etc/mailhelo}{${lookup{$sender_address_domain}lsearch*
{/etc/mailhelo}{$value}{$primary_hostname}}}{$primary_hostname}}

Добавляем следующие строки (не забываем заменить host.hostname.com  на соответствующий хостнайм)

dkim_domain=host.hostname.com
dkim_selector=mail
dkim_private_key=/usr/local/cpanel/etc/exim/dkim.key

Где "/usr/local/cpanel/etc/exim/dkim.key" путь к dkim.key, если он лежит в другом месте то ставим соответствующий путь

В итоге получится что-то вроде

remote_smtp:
driver = smtp
dkim_domain=host.hostname.com
dkim_selector=mail
dkim_private_key=/usr/local/cpanel/etc/exim/dkim.key
interface = ${if exists {/etc/mailips}{${lookup{$sender_address_domain}lsearch*{/etc/mailips}
{$value}{}}}{}}  helo_data = ${if exists {/etc/mailhelo}{${lookup{$sender_address_domain}lsearch*
{/etc/mailhelo}{$value}{$primary_hostname}}}{$primary_hostname}}

Рестартуем EXIM

Теперь нужно заинсталить это дело для какого-то домена. Открываем файлик dkim.public (он у нас создался вот здесь /usr/local/cpanel/etc/exim/dkim.public ) и копируем то что находится между -----BEGIN PUBLIC KEY----- и -----END PUBLIC KEY-----

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSxBjop/h33+yq8OXBsZ1FoLtI
+GH6iOkIpqZ7dAdJmLCfvIhFjJ7ELwqIYj3BVi7RVweOf9wF/kK0syJt/HrUN/M/
wUboUAsNnbUjhXo+Z7HC+EfwqJn/xufQTYFK7Z2eevzfiHyplbM++uiSQuM8nOqn
VwQzRTfomOGD7odtgQIDAQAB
-----END PUBLIC KEY-----

Заходим в DNS editor и добавляем новую TXT запись

mail._domainkey (или mail._domainkey.DOMAIN_NAME.COM.) IN TXT  "v=DKIM1; g=*;
k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDv4PSEM9PcxlI2tRojAUQ9hpRQ0Zj/X
M4SK08/Drhm/CaspJAKZF9rZDAw18TrfuXeRgsMWAdS2vJ4Oa/kXqX0NM2eBJcmasu4GeNXANmXvC
1umz+8mC6rEPlE/Ucau4tmAHOZL0HJ9IDd/PIxoTkeTm3mjGeqvKBLbdvVIDXbcQIDAQAB"

Где

"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDv4PSEM9PcxlI2tRoj
AUQ9hpRQ0Zj/XM4SK08/Drhm/CaspJAKZF9rZDAw18TrfuXeRg sMWAdS
2vJ4Oa/kXqX0NM2eBJcmasu4GeNXANmXvC1umz+8mC6rEPlE/Ucau4tmA
HOZL0HJ9IDd/PIxoTkeTm3mjGeqvKBLbdvVIDXbcQIDAQAB"

- это публичный ключ взятый с dkim.public

Вроде все, ждем обновления ДНС зоны.

Если есть желание проверить или DKIM работает, то можно воспользоваться вот этим сервисом, он кстати валидирует в добавку к DKIM еще и DomainKeys, SPF и тестит не будет ли письмо заблочено Spamassassin ‘ом

6 Comments

Добавить комментарий

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>