10 грудня, Вівторок, 2019
A- A A+

Пошук

dkim dmarc sfp pc-service

Отже пишу я цю статтю в зв'язку із проблемами які виникли при відправці повідомлень із серва який працює на Zimbra

Пошта почала потрапляти до спаму в гуглі та інших поштових сервісах :(, якось не весело

Коротко про DKIM, SPF, DMARC

* DomainKeys Identified Mail (DKIM) - використовується для захисту від спуфинга за допомогою додавання цифрового підпису в заголовки вихідних повідомлень.
* Sender Policy Framework (SPF) - це розширення для протоколу відправки електронної пошти через SMTP, завдяки якому можна перевірити, чи не підроблений чи домен відправника.
* Domain-based Message Authentication, Reporting and Conformance (DMARC) - це технічна специфікація, що передбачає механізми для обміну інформацією між відправником і отримувачем про якість фільтрації спаму і фішингових атаках.

Налаштування DKIM в Zimbra

Метод передбачає шифрування заголовків вихідних повідомлень за допомогою закритого ключа домену, і додавання відкритої версії ключа в запису DNS домену, доступного всім. MTA сервера-одержувача запитує відкритий ключ у DNS-сервера відправника, для розшифровки заголовків вхідних повідомлень і перевіряє, чи дійсно повідомлення надіслано від заявленого джерела.

DKIM став доступний починаючи з версії Zimbra 8.0. Налаштування підпису складається з двох етапів (за матеріалами wiki.zimbra.com):
Перший етап: генерація ключів та селектора

Додавання даних DKIM до домену, у якого ще немає існуючої конфігурації DKIM

Налаштуємо кожну з цих систем.

# su - zimbra
$ /opt/zimbra/libexec/zmdkimkeyutil -a -d pc-service.com

Отримаємо запис типу:

DKIM Data added to LDAP for domain pc-service.cv.ua with selector 2416545A-9151-11E7-90EF-A92301118211
Public signature to enter into DNS:
2416545A-9151-11E7-90EF-A92301118211._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=qGSIb3DQEBAQUAA4GNADCMIGfMA0GCSBiQKBgQDHmLsFfqWxwbw/VB11kGkFo9GYFvHz9n3BNtSRcmJvNMIGfMA0GCSTpVM9l+bBXhb3hR7M+ihyTEi8bGbZ6X+7hntZFwUO57tVHAOgT4y/CjIq5+bEa8yAHgSNikcfk56+X9GjtyRFHn8uUe2gRsxy7gnGO6SlJcPmjZq0ndyiEwIDAQAB" ) ; ----- DKIM key 2416545A-9151-11E7-90EF-A92301118211 for pc-service.cv.ua

Отже після створення даного ключа необхідно його перевірити на сервісі dkimcore.org

dkim test1 pc-service

Вписуєм все без лапок " " та перевіряємо на валідність

якщо отримуєте зеленим надпис This is a valid DKIM key record - То все налаштовано вірно,

якщо ж ні то This is not a good DKIM key record. You should fix the errors shown in red.

В мене з першого разу не пройшло все гладко, тому були проведені деякі маніпуляції з довжиною ключа, а саме змінені дефолтні налаштування створення ключів з 2048 на 1024

# nano /opt/zimbra/libexec/zmdkimkeyutil
my $bits=1024;
if ($bits < 1024) {
print "Bit size less than 1024 is not allowed, as it is insecure.\n";
print " Only works with -a and -u. Default when not specified is 1024 bits.\n";

Після чого обновлюєм ключі від користувача zimbra

/opt/zimbra/libexec/zmdkimkeyutil -u -b 2048 -d pc-service.cv.ua

Якщо необхідно буде здійснити ще якісь маніпуляції із ключами то перелік команд нведено нище:

Видалення DKIM даних для домену:

/opt/zimbra/libexec/zmdkimkeyutil -r -d pc-service.cv.ua

Показати збережені даних DKIM для домену:

/opt/zimbra/libexec/zmdkimkeyutil -q -d pc-service.cv.ua

Ця команда буде виводити всю збережену інформацію DKIM, зокрема:

 DKIM Domain
 DKIM Selector
 DKIM Private Key
 DKIM Public Signature
 DKIM Identity

Отже обновили ключі та заново пробуємо перевірити їх на на сервісі dkimcore.org Якщо валідність не проходить можете спробувати видалити всі спец символи \ ' / "  з вашого ключа

Наступний крок є буде важливим в подальшому, але він потребує деякого часу для того щоб він почав діяти!

ОБНОВЛЕННЯ DNS ЗАПИСІВ

Заходимо в панель керування вашими доменами та вписуємо запис TXT

dkim test2-pc-service

Селектор:

2416545A-9151-11E7-90EF-A92301118211._domainkey
Та значення
v=DKIM1; k=rsa; p=qGSIb3DQEBAQUAA4GNADCMIGfMA0GCSBiQKBgQDHmLsFfqWxwbw/VB11kGkFo9GYFvHz9n3BNtSRcmJvNMIGfMA0GCSTpVM9l+bBXhb3hR7M+ihyTEi8bGbZ6X+7hntZFwUO57tVHAOgT4y/CjIq5+bEa8yAHgSNikcfk56+X9GjtyRFHn8uUe2gRsxy7gnGO6SlJcPmjZq0ndyiEwIDAQAB

Перевірте результат виконання командою:
dig -t txt 2416545A-9151-11E7-90EF-A92301118211._domainkey._domainkey.pc-service.cv.ua ns.example.com
Якщо ключ витягується використовуйте команду: /opt/zimbra/common/sbin/opendkim-testkey для перегляду відображення відкритого ключа закритому
opendkim-testkey -d pc-service.cv.ua -s 2416545A-9151-11E7-90EF-A92308998211 -x /opt/zimbra/conf/opendkim.conf

Якщо отримаєте помилку

ERROR: account.NO_SUCH_SERVER (no such server: pc-service.com)

або

ERROR: account.INVALID_ATTR_NAME (invalid attr name: invalid attr name - unable to modify attributes: ldap host=pc-service.cv.ua:389: ./libexec/configrewrite: AttributeDescription contains inappropriate characters)

То запустіть команду

zmprov ms `zmhostname` +zimbraServiceEnabled opendkim
./libexec/configrewrite opendkim

Яка обновить сервіс opendkim, та сконфігурує файл

Якщо стає необхідним відкликати ключ підписування DKIM, це може бути легко здійснено в DNS, використовуючи порожній тег "p =" у запису TXT.

Отже саму складну частину ми завершили, тепер до настпної:

Sender Policy Framework (SPF)

Zimbra-spf1

Рамкова політика Sender (SPF) - це система перевірки електронної пошти, розроблена для запобігання небажаним електронним листам за допомогою системи зловмисників. Щоб перевірити цю спільну проблему безпеки, SPF збирається перевірити джерело IP-адреси електронної пошти та порівняти його з записом DNS TXT з вмістом SPF.

Як налаштувати його?
Перш за все, генеруйте запис TXT SPF DNS (використовуючи інструмент "Mailradar SPF" або щось подібне), наприклад, з доменом pc-service.cv.ua та 3 різних записів для додавання:

  • The A entry - pc-service.cv.ua
  • The MX entry - mail.pc-service.cv.ua
  • The IPv4 entry - 5.5.5.18

В даній статті я використаю ось такий SPF: v=spf1 ip4:5.5.5.18/32 ~all - де ІР це адреса звідки буде слатись пошта, тобто ваша реальна адреса доменного імені

DMARC

 

Zimbra-DMARCDMARC, що означає "автентифікація повідомлень на основі домену, звітність і відповідність на основі домену", є технічною специфікацією, створена групою організацій, які хочуть зменшити потенціал зловживань електронною поштою, вирішивши пару застарілих операційних операцій, розгортання , а також звітні питання, пов'язані з протоколами аутентифікації електронної пошти.

DMARC стандартизує, як електронна пошта отримує автентифікацію електронної пошти за допомогою відомих механізмів SPF та DKIM. Це означає, що відправники будуть мати постійні результати автентифікації для своїх повідомлень в AOL, Gmail, Hotmail, Yahoo! та будь-який інший електронний приймач, що реалізує DMARC. Ми сподіваємося, що це спонукає відправників ширше автентифікувати вихідні повідомлення електронної пошти, які можуть зробити електронну пошту надійнішим способом спілкування.

Як налаштувати його?

Звіт DMARC може бути створений на декількох веб-сайтах, наприклад, http://www.kitterman.com

Використовуючи домен example.com, можливий варіант може бути наступним, будь ласка, майте на увазі, що всі параметри за умовчанням будуть неявними, навіть якщо ви не виберете їх у генераторі:

 

Zimbra-DMARC-002    DMARC record for: example.com
    Record should be published at _dmarc.example.com
    v=DMARC1; p=quarantine; rua=Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб побачити її.; ruf=Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб побачити її.; sp=quarantine
Обновіть ваші DNS записи

_dmarc IN TXT "v=DMARC1; p=none; rua=mailto:Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб побачити її."

dmarc3-pc-service.cv.ua

Не потрапляйте в спас бази та регулярно проводьте діагностику ваших поштових серверів mxtoolbox.com вам допоможе визначити проблеми в роботі

Офіційні джерела:

wiki.zimbra.com/wiki/Configuring_for_DKIM

wiki.zimbra.com/SPF,_DKIM_and_DMARC