Przejdź do głównej zawartości

GRANICZNY PORADNIK: Konfiguracja serwera do niezawodnego dostarczania poczty. CZĘŚĆ 2: Jak zapobiegać trafianiu wychodzących wiadomości e-mail do spamu

· 7 min aby przeczytać
Customer Care Engineer

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

informacja

Rekordy DNS to zestaw parametrów technicznych domeny, które określają, gdzie kierować różne typy ruchu: web, pocztę, FTP itp.

Łączą nazwę domeny z adresami IP i innymi serwerami, dzięki czemu przeglądarki i systemy pocztowe wiedzą, z czym się połączyć podczas pracy z Twoją stroną internetową lub pocztą.

W Części 1 tego poradnika skonfigurowaliśmy firewall i otworzyliśmy niezbędne porty do dostarczania poczty. Teraz, gdy upewniliśmy się, że wiadomości są wysyłane z Twojego serwera, musimy sprawdzić, czy rekordy DNS są poprawnie skonfigurowane. Gmail, Outlook i inne główne usługi pocztowe rygorystycznie weryfikują MX, SPF, DKIM, DMARC i PTR przed dostarczeniem wiadomości do skrzynki głównej. Poprawne rekordy znacznie zwiększają szansę, że wiadomości trafią do folderu Odebrane zamiast do Spamu (lub zostaną całkowicie odrzucone).

W poniższych krokach opiszemy, jak sprawdzić aktualne rekordy DNS każdego typu i podamy rekomendacje, jak prawidłowo je skonfigurować.

warning

W tej części artykułu dla wszystkich sprawdzeń używamy domeny example.com, adresu IPv4 1.2.3.4 i adresu IPv6 2001:db8:1:11::1 jako przykładów. Proszę zamienić je na rzeczywistą nazwę Twojej strony internetowej i Twoje rzeczywiste adresy IP.

Wymagania wstępne

Krok 1. Sprawdzanie dostawcy DNS

W kontekście tego artykułu, wielokrotnie będziemy edytować rekordy DNS. Należy to zrobić w panelu sterowania obecnego dostawcy DNS Twojej domeny. Aby zrobić to poprawnie, musisz dokładnie wiedzieć, kto obecnie świadczy te usługi. W przeciwnym razie wprowadzone zmiany nie będą miały żadnego efektu.

Najczęściej rolę dostawcy DNS pełnią:

  • dostawcy hostingu,

  • rejestratora domen, lub

  • dostawcy ochrony DDoS.

Ale tak nie jest zawsze.

Możesz się dowiedzieć, kto dokładnie jest obecnym dostawcą DNS dla Twojej domeny, używając polecenia whois. Na przykład, sprawdźmy domenę kodu.cloud:

whois kodu.cloud | grep -i "Name Server" | awk '{print $3}'

Wynik wymieni serwery NS:

art.ns.cloudflare.com
isla.ns.cloudflare.com

Oznacza to, że w tym przypadku rekordy DNS muszą być edytowane w panelu sterowania Cloudflare.

W wielu przypadkach możesz wywnioskować, kto jest dostawcą DNS z nazwy domeny. Jednak nie zawsze tak jest. Na przykład, dla naszej darmowej usługi DNS, która jest dostępna dla wszystkich naszych klientów, nazwy wyglądają tak:

birman.nameserver.red.
rex.nameserver.red.
korat.nameserver.blue.
toybob.nameserver.blue.

 W tym przypadku skontaktuj się z pomocą techniczną dostawcy hostingu, aby uzyskać dalsze wyjaśnienia.

Po definitywnym zidentyfikowaniu dostawcy DNS, zaloguj się do jego panelu sterowania i przejdź do sekcji edycji rekordów DNS dla Twojej domeny. Większość opisanych poniżej zmian zostanie wprowadzona tam. Ponieważ wszystkie interfejsy się różnią, podanie uniwersalnego przewodnika krok po kroku jest niemożliwe.

Jeśli napotkasz trudności na tym etapie, skonsultuj się z pomocą techniczną.

warning

Po zmianie rekordów DNS, propagacja pamięci podręcznej może potrwać od 20 minut do 24 godzin. Biorąc pod uwagę czas potrzebny głównym usługom pocztowym na aktualizację Twojej reputacji, dla stabilnego dostarczania poczty zaleca się odczekać około 48 godzin, chociaż częściej sytuacja normalizuje się po 2-3 godzinach.

Krok 2. Sprawdzanie IPv6

Do poprawnej konfiguracji musimy dokładnie wiedzieć, czy serwer posiada adres IPv6. Aby się dowiedzieć, uruchom polecenie:

ip a | grep inet6

Jeśli wynik jest zbliżony do następującego:

inet6 ::1/128 scope host noprefixroute
inet6 2001:db8:1:11::1/120 scope global
inet6 fe80::1/64 scope link

to Twój serwer ma adres IPv6. Będzie on pokazany w linii kończącej się scope global aż do znaku /.

Zapisz adres IPv6 swojego serwera, aby móc go później użyć.

Jeśli wynik jest pusty, lub zawiera tylko jedną linię w formie:

inet6 fe80::1c2:3dff:fe4a:5b6c/64 scope link

to Twój serwer nie posiada IPv6. We wszystkich kolejnych krokach prosi się o nieużywanie IPv6.

Konfiguracja rekordów DNS

Krok 3. Sprawdzanie rekordu MX

Rekord MX określa, gdzie powinny być dostarczane przychodzące wiadomości dla domeny. Możesz go sprawdzić poleceniem:

dig MX example.com +short

Przykkład poprawnego wyniku:

10 mail.example.com.

Jeśli wynik pokazuje nieprawidłową wartość, edytuj rekord DNS w panelu sterowania swojego dostawcy DNS:

  • Typ: MX
  • Nazwa: @
  • Adres: mail.example.com
  • Priorytet: 10

Jeśli rekord jest brakujący, otrzymasz pusty wynik:

~ dig MX badexample.com +short
~

W tym przypadku utwórz rekord DNS zgodnie z powyższym przykładem.

Należy również pamiętać, że może być kilka rekordów MX. W takim przypadku poczta zostanie najpierw wysłana do serwera o mniejszej wartości liczbowej priorytetu (na przykład 10 ma wyższy priorytet niż 20).

Jeśli pierwotny serwer jest niedostępny, dostarczenie zostanie wykonane do następnego serwera zgodnie z kolejnością priorytetów.

Krok 4. Sprawdzanie rekordów A i AAAA

Następnie upewnij się, że mail.example.com i example.com faktycznie wskazują na serwer, z którego wysyłane są wiadomości:

dig A example.com +short
dig A mail.example.com +short
dig AAAA example.com +short
dig AAAA mail.example.com +short

Adresy IP w wynikach tych poleceń muszą odpowiadać rzeczywistym adresom IPv4 i IPv6 Twojego serwera. Jeśli się różnią, lub jeśli takie rekordy są brakujące, edytuj je lub utwórz w panelu sterowania dostawcy DNS:

  1. example.com (A):
  • Typ: A
  • Nazwa: @
  • Adres: 1.2.3.4
  1. example.com (AAAA):
  • Typ: AAAA
  • Nazwa: @
  • Adres: 2001:db8:1:11::1
  1. mail.example.com (A):
  • Typ: A
  • Nazwa: mail
  • Adres: 1.2.3.4
  1. mail.example.com (AAAA):
  • Typ: AAAA
  • Nazwa: mail
  • Adres: 2001:db8:1:11::1

Krok 5. Sprawdzanie rekordu SPF

SPF określa, które serwery mogą wysyłać pocztę w imieniu domeny.

Sprawdzanie rekordu:

dig TXT example.com +short

Przykkład poprawnego rekordu SPF:

example.com. TXT "v=spf1 ip4:1.2.3.4 ip6:2001:db8:1:11::1 a mx ~all"

Niezwykle ważne jest, aby domena miała tylko jeden rekord SPF. Wiele rekordów może spowodować błąd walidacji.

Jeśli adres IP różni się od adresu Twojego obecnego serwera, lub jeśli taki rekord jest brakujący, edytuj go lub utwórz w panelu sterowania dostawcy DNS:

Jeśli IPv6 jest obecne:

  • Typ: TXT
  • Nazwa: @
  • Wartość: v=spf1 ip4:1.2.3.4 ip6:2001:db8:1:11::1 a mx ~all

Jeśli nie ma IPv6:

  • Typ: TXT
  • Nazwa: @
  • Wartość: v=spf1 ip4:1.2.3.4 a mx ~all

Rekord SPF ma wiele dodatkowych opcji, ale ten zestaw jest wystarczający do poprawnego wysyłania wiadomości.

Krok 6. Sprawdzanie rekordu DKIM

DKIM to podpis cyfrowy wiadomości, który potwierdza, że została wysłana z podanej domeny i nie został sfałszowana. Do weryfikacji podpisu wykorzystywany jest rekord DNS typu TXT z kluczem publicznym: najpierw podpis jest tworzony na serwerze, a następnie klucz jest publikowany w DNS.

Istnieją różne sposoby uzyskania podpisu DKIM dla Twojej domeny pocztowej, ale w ramach tego artykułu rozważimy najprostszy opcję - użycie FASTPANEL. W FASTPANEL podpis DKIM jest tworzony dla domen pocztowych domyślnie.

wskazówka

FASTPANEL jest niezwykle wygodny do pracy z serwerem pocztowym: nie musisz konfigurować ani instalować niczego ręcznie. Od razu po instalacji otrzymujesz skonfigurowany serwer pocztowy do pełnowartościowej pracy z pocztą przychodzącą i wychodzącą, a także wygodny klient poczty internetowej.

Dlatego wszystko, co musisz zrobić, to skopiować wartość klucza publicznego i dodać ją do odpowiedniego rekordu DNS. Aby to zrobić, w panelu przejdż do "Zarządzanie" → "Poczta" i kliknij przycisk "DKIM" na końcu wiersza z nazwą Twojej domeny pocztowej:

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

Następnie skopiuj klucz publiczny:

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

Po stronie dostawcy DNS utwórz następujący rekord DNS:

  • Typ: TXT
  • Nazwa: dkim._domainkey
  • Wartość: klucz, który wcześniej skopiowałeś

Jeśli taki rekord już istnieje, lepiej jest i tak zastąpić wartość klucza, aby upewnić się, że jest aktualny.

Może istnieć kilka rekordów DKIM, ale w takim przypadku muszą mieć różne nazwy. Na przykład, jednoczesne posiadanie rekordów o nazwach dkim._domainkey i mail._domainkey nie spowoduje żadnych problemów.

Po konfiguracji i aktualizacji pamięci podręcznej DNS, możesz sprawdzić obecność rekordu DKIM poleceniem:

dig TXT dkim._domainkey.example.com +short

Krok 7. Sprawdzanie rekordu DMARC

DMARC określa zasady obsługi wiadomości, które nie przeszły weryfikacji SPF lub DKIM.

Sprawdzanie rekordu:

dig TXT _dmarc.example.com +short

Przykładowy wynik:

"v=DMARC1;p=reject;sp=reject;adkim=s;aspf=s"

Rekord DMARC ma wiele dodatkowych opcji, ale w typowych scenariuszach wystarcza dodanie rekordu o następującej formie:

  • Typ: TXT
  • Nazwa: _dmarc
  • Wartość: v=DMARC1; p=reject

Krok 8. Sprawdzanie zmiennej sendmail_path (opcjonalne)

Ten krok będzie bardzo pomocny, jeśli wysyłasz wiadomości bezpośrednio ze swojej strony internetowej (na przykład za pomocą formularzy kontaktowych lub podczas składania zamówień). Aby upewnić się, że wszystkie niezbędne rekordy DNS są brane pod uwagę dla takich wiadomości, ustaw następującą wartość dla zmiennej sendmail_path w ustawieniach PHP Twojej strony:

/usr/sbin/sendmail -t -i -f "[email protected]"

Na przykład, w FASTPANEL możesz to zrobić w karcie strony w sekcji „Ustawienia PHP”.

Konfiguracja nazwy hosta i PTR

PTR (lub rDNS) to odwrotny rekord DNS, który łączy adres IP z nazwą domeny.

Nazwa hosta serwera to po prostu nazwa, po której serwer może być identyfikowany w sieci.

Jeśli PTR nie pasuje do nazwy hosta serwera, wiadomości prawie na pewno trafią do spamu.

Najlepszą praktyką jest ustawienie mail.example.com jako obu wartości (pamiętaj, że tą wartość musi zawsze zastąpić rzeczywista nazwa Twojej domeny).

Krok 9. Nazwa hosta

Aby dowiedzieć się aktualnej nazwy hosta serwera, uruchom polecenie:

hostname

Aby ją zmienić, uruchom:

sudo hostnamectl set-hostname mail.example.com

Następnie uruchom ponownie polecenie hostname, aby upewnić się, że wszystko jest poprawne.

Krok 10. PTR

Sytuacja z rekordem PTR jest nieco inna: może być zmieniony tylko przez właściciela adresu IP, czyli Twojego dostawcę hostingu. Więcej o przyczynach tej sytuacji dowiesz się z tego artykułu.

Niektórzy dostawcy hostingu pozwalają na edycję rekordu PTR w Twoim panelu klienta. Możesz spróbować zrobić to tam sam. Jeśli to się nie uda, skontaktuj się z pomocą techniczną i poproś ich o ustawienie następującej wartości jako rekordu PTR:

mail.example.com

Pamiętaj, że ta wartość musi zawsze zastąpić rzeczywistą nazwę Twojej domeny.

Zmiany zazwyczaj są stosowane natychmiast; w tym przypadku nie ma potrzeby czekać na aktualizacje pamięci podręcznej DNS. Możesz sprawdzić aktualny rekord PTR poleceniem:

dig -x 1.2.3.4 +short

Końcowa weryfikacja

Jeśli dotarłeś do tej sekcji, gratulacje - jesteś na ostatniej prostej. Teraz pozostało tylko zweryfikować, czy wszystko jest poprawnie skonfigurowane i czy wiadomości z Twojego serwera prawie na pewno trafią do Skrzynki odbiorczej każdego odbiorcy. Zanim to zrobisz, koniecznie odczekaj na aktualizację pamięci podręcznej DNS. Najlepiej odczekać co najmniej 1-2 godziny po ostatnich zmianach w rekordach DNS.

Istnieje wiele usług stron trzecich do takich kontroli. Możesz skorzystać z każdej z nich. W tym artykule użyjemy usługi mail-tester.com.

Aby przeprowadzić kontrolę, wejdź na tą stronę i skopiuj nazwę skrzynki testowej:

dns-records-configuration-spf-dkim-dmarc-ptr-mx-prevent-email-spam-guide

Wyślij wiadomość na ten adres z dowolnej skrzynki pocztowej w Twojej domenie i kliknij przycisk "Następnie sprawdź mój wynik". Nie zapomnij o podaniu tematu i napisaniu czegoś w treści wiadomości.

Następnie usługa pokaże wyniki kontroli DKIM, SPF, DMARC, obecności rekordu PTR i ogólny wynik "reputacji" wiadomości, a także czy Twój serwer nie znajduje się na czarnych listach SPAM.

Jeśli systematycznie i starannie przestrzegałeś wszystkich kroków w tym artykule, wynik wyniesie 10/10. Jeśli jest niższy, zapoznaj się z rekomendacjami mail-tester. Wyjaśnią one szczegółowo, na czym polega problem i jak go naprawić.

Dodatkowo, możesz sprawdzić, czy Twój serwer nie znajduje się na czarnych listach SPAM, korzystając z innej doskonałej usługi:

 https://mxtoolbox.com/blacklists.aspx

Jeśli którykolwiek z testów wykaże, że adres IP Twojego serwera znalazł się na jednej z list, skontaktuj się ze swoim dostawcą hostingu, aby pomógł Ci rozwiązać problem.

Tym samym konfiguacja została zakończona. Jeśli nie chcesz poświęcać czasu na własne badania lub napotkałeś jakieś problemy, zawsze możesz skontaktować się z pomocą techniczną kodu.cloud. Wykonamy wszystkie opisane tutaj kroki tak szybko, jak to możliwe dla naszych klientów, w każdej chwili, bezpłatnie.