Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Почтовый сервер
  • Search

DKIM для exim4 и Яндекс.Почты одновременно

Вопросы по работе Почтовый сервера
Dovecot, Exim, RoundCube
Post Reply
  • Print view
Advanced search
14 posts
  • 1
  • 2
  • Next
kinolaev
Posts: 15
Joined: Wed Aug 28, 2013 1:55 am

DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by kinolaev » Thu Dec 26, 2013 10:24 pm

Здравствуйте.
На сервере с панелью Vesta есть сайт с e-mail рассылкой, при этом корпоративная почта на pdd.yandex.ru. Нужно, чтобы DKIM-подпись была как на письмах, отправляемых сервером, так и на письмах из яндекс почты, но dkim_selector у vesta-exim и яндекса одинаковые, то есть, наколько я понимаю, единственный способ решить задачу - изменить селектор в vesta-exim, внести изменения в скрипты, связанные с DKIM, и пересоздать DNS для текущих пользователей. Несколько вопросов:
1) верно ли написанное выше?
2) как насчет изменения селектора по умолчанию на что-нибудь менее стандартное, например, vmail, для упрощения настройки сторонних почтовых сервисов?
3) верно ли я нашел в интеренете, что запись _domainkey TXT "t=y; o=~;" означает, что dkim в тестовом режиме (t=y) и письма с домена не обязательно имеют подпись (o=~)?
4) в mail._domainkey записи яндекса t=s - будет ли это конфликтовать с t=y?
Собственно, предлагаю решение для последней версии vesta на ubuntu 12.04:
- в /etc/exim4/exim4.conf.template

Code: Select all

dkim_selector = mail
заменить на

Code: Select all

dkim_selector = vmail
и перезапустить exim

Code: Select all

service exim4 restart
- в bin/v-add-mail-domain, bin/v-add-mail-domain-dkim, bin/v-list-mail-domain-dkim-dns и func/rebuild.sh

Code: Select all

mail._domainkey
заменить на

Code: Select all

vmail._domainkey
- создать шаблон для яндекс почты /usr/local/vesta/data/templates/dns/yandex.tpl

Code: Select all

ID='1' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns1%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='2' RECORD='@' TYPE='NS' PRIORITY='' VALUE='%ns2%.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='3' RECORD='@' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='4' RECORD='mail' TYPE='CNAME' PRIORITY='' VALUE='domain.mail.yandex.net.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='5' RECORD='www' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='6' RECORD='pop' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='7' RECORD='ftp' TYPE='A' PRIORITY='' VALUE='%ip%' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='8' RECORD='@' TYPE='MX' PRIORITY='10' VALUE='mx.yandex.ru.' SUSPENDED='no' TIME='%time%' DATE='%date%'
ID='9' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%'
- применить его для нужных почтовых доменов через веб-интерфейс
- для каждого домена пересоздать dkim (вдруг у какого-нибудь остался 512-битный)

Code: Select all

v-delete-mail-domain-dkim %user% %domain%
v-add-mail-domain-dkim %user% %domain%
- пересоздать mail-домены для всех пользователей через веб-интерфейс
- добавить доменам с yandex-шаблонам TXT запись вида:

Code: Select all

mail._domainkey TXT "k=rsa; p=[здесь открытый ключ яндекс-почты]"
(то есть без v=DKIM1 и t=s, которые предлагает яндекс; или они тоже нужны?)

Хотелось бы перед внедрением получить комментарий разработчиков. Спасибо!

PS: Попутно найденные баги:
1) в ubuntu в папке /usr/local/vesta половина файлов принадлежит пользователю с идентификатором 501, но admin в ubuntu имеет идентификатор 1000, а пользователя 501 нет.
2) в v-add-mail-domain-dkim

Code: Select all

chown exim:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem
нужно заменить на

Code: Select all

if [ "$MAIL_SYSTEM" = 'exim' ]; then
  mail_user=exim
fi
if [ "$MAIL_SYSTEM" = 'exim4' ]; then
  mail_user=Debian-exim
fi
chown -R $mail_user:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem
(взято из rebuid.sh)
3) в v-add-mail-domain

Code: Select all

dkim_size=${6-512}
нужно заменить на

Code: Select all

dkim_size=${6-1024}
4) в func/rebuild.sh

Code: Select all

openssl genrsa -out $pem 512 &>/dev/null
на

Code: Select all

openssl genrsa -out $pem 1024 &>/dev/null
Top

demian
Posts: 543
Joined: Thu May 16, 2013 5:19 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by demian » Fri Dec 27, 2013 5:12 am

1. шаблон для яндекс почты не совсем корректный.

в вашем случае письма с яндекса не будут проходить проверку и попвдут в спам или отвергнутся удаленным сервером

ID='9' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%'
нет записи о том, что яндексовские сервера могут отправлять почту для ваших доменов, отсоветует строчка redirect=_spf.yandex.ru

2. в dns прописывается один ключ для домена, письма же подписываются закрытым колючем. соответственно на вашем сервере и сервере яндекса должны быть одинаковые закрытые ключи, насколько я помню в интерфейсах яндекса нет доступа к закрытым ключам, или управления ими.
Top

kinolaev
Posts: 15
Joined: Wed Aug 28, 2013 1:55 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by kinolaev » Fri Dec 27, 2013 5:36 am

Спасибо, думал, в spf достаточно mx, имеющийся по умолчанию в vesta. подскажите, нужно добавить redirect=_spf.yandex.ru в имеющуюся TXT запись или сделать отдельную запись "@ TXT v=spf1 redirect=_spf.yandex.ru"? (кстати, в документации яндекса советуют писать _spf.yandex.ru, а в их же редакторе ДНС стоит _spf.yandex.net) не будет ли "a mx ip4:%ip% ?all redirect=_spf.yandex.ru" противоречивой записью или две записи "a mx ip4:%ip% ?all" и "redirect=_spf.yandex.ru" взаимно исключать друг друга?

а по поводу одного dkim на домен - разве не для этого придуманы селекторы?
Top

kinolaev
Posts: 15
Joined: Wed Aug 28, 2013 1:55 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by kinolaev » Fri Dec 27, 2013 5:56 am

в _spf.yandex.net указано "v=spf1 redirect=_spf.yandex.ru", значит нужно указывать ru

а вместо redirect, кажется в данном случае надо использовать include, то есть так:

Code: Select all

ID='9' RECORD='@' TYPE='TXT' PRIORITY='' VALUE='"v=spf1 a mx ip4:%ip% include:_spf.yandex.ru ?all"' SUSPENDED='no' TIME='%time%' DATE='%date%'
пойду тестить
Top

demian
Posts: 543
Joined: Thu May 16, 2013 5:19 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by demian » Fri Dec 27, 2013 8:19 am

по поводу redirect=_spf.yandex.ru моя ошибка взял из своего стандартного шаблона

конечно правильная запись будет include:_spf.yandex.ru

есть еще варианты написания spf записей с использованием названия узлов, обратных записей...
также правило all может имееть варианты:

"+" Pass
"-" Fail
"~" SoftFail
"?" Neutral

для теста пойдет ?all... после тестирования лучше поставить -all

по поводу нескольких ключей:
автоматически панель создаст одну запись

mail._domainkey TXT "k=rsa; p=" в котой ключ будет записан клоючь текущего сервера...
который в вашем примере можно поменять на открытый ключь яндекса предварительно продублировав созданный ключь в другую запись

<second host mane>._domainkey TXT "k=rsa; p="

функционала который может этот процесс не предусмотрено. шаблонами не разведешь.
Top

kinolaev
Posts: 15
Joined: Wed Aug 28, 2013 1:55 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by kinolaev » Fri Dec 27, 2013 11:13 am

В общем, изменил селектор в exim4 и скриптах vest'ы на vmail, в приведенном мной шаблоне исправил spf на "v=spf1 a ip4:%ip% include:_spf.yandex.ru ?all", пересоздал DNS и MAIL, добавил DKIM яндекса. Почта с сервера ходит, spf и dkim pass'уют. с яндекса пока проверить не могу, он еще не начал подписывать письма (но подсказку про dkim уже убрал, то есть нашел нужную запись).

То есть вечером финальный тест с яндекса и с сервера, и, если он пройдет, еще раз предложу изменить стандартный селектор vest'ы. Еще подумал, что было бы удобно в скрипты добавляющие DKIM дописать что-то вроде (острожно! непроверенный код!):

Code: Select all

if [ "$($BIN/v-list-dns-domain $user $domain plain|grep -c 'TPL: yandex')" = "1" ]; then
  yarecord='mail._domainkey'
  yalookup=$(nslookup -type=TXT mail._domainkey.$domain dns1.yandex.net|grep v\=DKIM1|cut -d\" -f2)
  if [ -n "$yalookup" ]; then
    $BIN/v-add-dns-record $user $domain $record TXT "\"$yalookup\""
  fi
fi
то есть если используется yandex-шаблон для dns, то получить dkim c dns1.yandex.net и добавить запись в bind. хотя лучше, наверное, проверять не шаблон, а mx-запись.

Есть возражения?)

И еще вопрос: запись _domainkey "t=y; o=~" обязательна, если все проверено и все письма подписываются? если нет, то что даст ее удаление?
Top

kinolaev
Posts: 15
Joined: Wed Aug 28, 2013 1:55 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by kinolaev » Sat Dec 28, 2013 1:17 am

яндекс начал подписывать письма, теперь при отправке с сервера и с яндекс.почтыдлядомена на гмэйл получаю spf=pass и dkim=pass. Но есть одна странность: при отправке с сервера на яндекс.почту, которая не для домена, а просто [email protected], получаю через раз то spf=pass, то spf=softmail, а dkim=pass было всего один раз. отписался в саппорт яндекса, сказали, что с моей стороны все верно, проблемой занялись, насколько я понял.

В общем, предлагаю все-таки поменять dkim-селектор по умолчанию для vesta. Что думаешь, skid?
Top

kinolaev
Posts: 15
Joined: Wed Aug 28, 2013 1:55 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by kinolaev » Wed Jan 08, 2014 4:16 pm

яндекс все поправил, теперь все письма с vest'ы и яндекс.пдд приходят на яндексовы и гугловы адреса с spf=pass и dkim=pass.

skid, отзовись!)
Top

kinolaev
Posts: 15
Joined: Wed Aug 28, 2013 1:55 am

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by kinolaev » Thu Jan 09, 2014 4:33 pm

отправил pull request на github (https://github.com/serghey-rodin/vesta/pull/92)

Это мой первый опыт использования github'а, проверьте, пожалуйста, все ли верно сделал.
Top

alexeyL
Posts: 2
Joined: Mon Jan 13, 2014 8:53 pm

Re: DKIM для exim4 и Яндекс.Почты одновременно
  • Quote

Post by alexeyL » Mon Jan 13, 2014 9:36 pm

Спасибо большое kinolaev за ваши поправки.
У меня такая же задача встала ,т.е сайт с email рассылкой и почтой на pdd.yandex.ru.
Я воспользовался ими и полный pass с почтой.
При моих поверхностных познаниях в почтовой кухне очень пригодилось ваше решение.
Присоединяюсь к тем кто за то чтоб поменять dkim-селектор по умолчанию для vesta и добавить яндекс-шаблон .
Top


Post Reply
  • Print view

14 posts
  • 1
  • 2
  • Next

Return to “Почтовый сервер”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

cron

Login  •  Register

I forgot my password