Logo agencji ROAN24 Gorzów Wielkopolski Pozycjonowanie Tworzenie Projektowanie Hosting Stron Sklepów internetowych
problem dkim ROAN24 blog poczta

Problem DKIM Co Robić i Jak To Naprawić

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ą, czyli opowiem wam co robić, żeby naprawić ten problem.

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łoby tym, że nie mielibyś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, wystarczy wysłać wiadomość na podany adres i kliknąć przycisk a dostanie się pełny raport. Maile wysłane z naszych domen 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.

Należy pamiętać, że korzystając z witryny bez zmiany ustawień przeglądarki, użytkownik wyraża zgodę na politykę prywatności i przechowywanie plików cookie, które umożliwiają sprawne działanie naszej witryny.