Problem DKIM

No Comments

Dzisiaj zdarzyła się ciekawa sytuacja kiedy jeden z naszych pracowników nie mógł się skontaktować z zewnętrzną firmą. Poinformował mnie że poczta do niego nie dochodzi z jednej domeny, przyjmijmy że jest to domena.com, mimo iż jego wiadomości dochodziły, druga strona nie dostawała żadnych wiadomości zwrotnych podających przyczynę odrzucenia maila. Poprosił mnie o sprawdzenie tego problemu, przedstawię pokrótce jak się za to zabrałem i co było przyczyną.

Diagnostyka wiadomości – Exim

Jako iż używamy exima jak nasze MTA będą podane tutaj komendy dotyczące tego właśnie systemu, jednak sam proces można łatwo zastosować także np w postfix-ie.
Pierwsza informacja że jeśli wiadomości nie są zwracane do nadawcy to znaczy że gdzieś utknęły, napotkały chwilowy błąd i któryś z serwerów będzie próbował dostarczyć je ponownie. Jest to standardowe działanie i nie ma tutaj nic dziwnego osoby które czytały nasz artykuł jak działa poczta będą o tym wiedzieć. No i ważna informacja to jest że wiadomości były wysyłane z domena.com.

Jako że wiadomości utknęły gdzieś sprawdzimy naszą kolejkę wiadomości do dostarczenia żeby zobaczyć czy utknęły u nas czy nawet do nas nie trafiły:

Czyli wiadomość jest u nas w kolejce już od 66 minut i nie może zostać dostarczona, co może trochę dziwić że wiadomość jest u nas na serwerze a jednak nie trafiła do adresata ale o tym z czasem. Kolejny test to już sprawdzenie logów przy pomocy użytecznej komendy exigrep która wyszukuje wiadomości na podstawie podanych danych np. domeny i wyświetla wszystkie informacje co się z nią działo. użycie zwykłego grepa w tej sytuacji zaowocowało by tym że nie mieli byśmy wszystkich informacji.

Czyli mamy przyczynę, wiadomość nie jest dostarczona ponieważ nie może znaleźć wpisu DKIM w strefie DNS, a sama wiadomość jest podpisana i należy ją sprawdzić czy pochodzi z realnego źródła, więc dla pewności sprawdzamy czy taki wpis istnieje gdyż może być to problem z naszym lokalnym serwerem DNS. Do sprawdzenia posłużymy się publicznym serwerem DNS od Google:

A więc mamy przyczynę, wpis txt dla domeny zendesk1._domainkey.domena.com nie istnieje a tam nasz serwer będzie poszukiwał klucza DKIM którym może sprawdzić podpis. Najpierw wyjaśnienie czemu akurat zendesk1._domainkey.domena.com? Otóż wcześniej w logu mieliśmy podane dane DKIM: „d=domena.com s=zendesk1 c=relaxed/relaxed a=rsa-sha256 t=1431354869″ jak widać wpis s= to właśnie zendesk1 a s oznacza selektor. Mówi on pod którą domeną mamy szukać wpisu DKIM czyli w tym wypadku zendesk1._domainkey.domena.com, według wzorca: wartość s._domainkey.wartość d, d czyli domena. Jeśli nie ma tam wpisu txt to znaczy że chwilowo mamy problem z serwerem DNS lub ktoś go tam nie wpisał jak to było w wypadku tej domeny.
Samo zapytanie dig zwróciło nam jeszcze jedną informację, otóż że serwery DNS są utrzymywane w Cloudflare. Jest to firma z którą zdarzało nam się współpracować i na pewno coś więcej o tym napiszemy. Cloudflare działa jak proxy dla serwera www ale wymaga to zrezygnowania także z własnego serwera DNS, co to oznacza? Ano że ktoś po prostu nie wpisał do strefy DNS klucza DKIM przez co nasz serwer nie mógł sprawdzić czy wiadomość jest prawidłowo podpisana, i oczekiwał z dostarczeniem jej aż do momentu kiedy ktoś doda wpis DNS lub serwer DNS zacznie odpowiadać, jednak to się nie stało przed upłynięciem 6 godzin od czasu przyjścia wiadomości na nasz serwer i została ona automatycznie zwrócona do nadawcy jako niedostarczona z powodu błędu DKIM. Oczywiście poinformowałem drugą stronę o tym problemie i czkamy aż go rozwiążą.
Dobrym narzędziem do sprawdzenie poprawności konfiguracji e-maila jest strona internetowa https://www.mail-tester.com/, wystarczy wysłać wiadomość na podany adres i kliknąć przycisk a dostanie się pełny raport. Maile wysłane z naszych domena dostają 10/10 punktów.

Bonus – Czym jest selektor DKIM?

Selektor to nic innego jak informacja którym kluczem DKIM wiadomość została podpisana, oraz gdzie go szukać. Został on wprowadzony aby dać możliwość administratorom wprowadzenia wielu kluczy dla jednej domeny co sprawia że stare lub skompromitowane klucze można łatwo wycofać, lub nie trzeba pilnować klucza jak oka w głowie ponieważ gdzieś zaginie, można szybko zmienić selektor i zacząć podpisywać nowym kluczem lub nawet go nie zmienić tylko od razu zacząć podpisywać nowym kluczem, wiąże się to jednak z tym że wiadomości które zostaną wysłane podczas zmiany mogą zostać odesłane ze względu na niewłaściwy klucz.

ROAN Agencja InterAktywna to przede wszystkim kreatywny zespół, który także uwielbia prowadzić ten Blog.

Zostaw komentarz

    Dopisz się do Newslettera!

    • To pole jest do zatwierdzania i powinno pozostać na niezmienionym poziomie.

    Sprawdź także

    Zobacz więcej
    No Comments