Przejdź do głównej zawartości

ULTIMATE GUIDE: Konfiguracja serwera dla prawidłowej dostawy poczty. CZĘŚĆ 2: Jak zapobiec trafianiu wysyłanych wiadomości do SPAM-u

· 7 min aby przeczytać
Customer Care Engineer

konfiguracja-rekordow-dns-spf-dkim-dmarc-ptr-mx-przewodnik-zapobiegania-spamowi-email

informacja

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

Łączą nazwę domeny z adresami IP i innymi serwerami, dzięki czemu przeglądarki oraz systemy pocztowe wiedzą, dokąd się odwoływać podczas obsługi twojej strony lub poczty.

W pierwszej części tego poradnika skonfigurowaliśmy zaporę sieciową i otworzyliśmy niezbędne porty do obsługi 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 duże serwisy pocztowe skrupulatnie sprawdzają rekordy MX, SPF, DKIM, DMARC oraz PTR, zanim dostarczą wiadomości do głównej skrzynki odbiorczej. Prawidłowe wpisy znacząco zwiększają szansę, że twoje maile trafią do „Odebranych”, a nie do SPAM-u (lub nie zostaną całkowicie odrzucone).

W kolejnych krokach pokażemy, jak sprawdzić aktualne rekordy DNS każdego typu i jak poprawnie je skonfigurować.

warning

W tej części artykułu przykładowo używamy domeny example.com, adresu IPv4 1.2.3.4 i adresu IPv6 2001:db8:1:11::1. Pamiętaj, aby zawsze zastąpić je prawdziwym adresem twojej domeny i realnymi IP serwera.

Etap wstępny

Krok 1. Sprawdzenie dostawcy DNS

W tej części poradnika będziemy wielokrotnie edytować rekordy DNS. Wszystkie zmiany wprowadza się w panelu aktualnego dostawcy DNS twojej domeny. Aby zrobić to poprawnie, musisz dokładnie wiedzieć, kto pełni tę funkcję w tej chwili. W przeciwnym razie modyfikacje pozostaną bez efektu.

Najczęściej dostawcą DNS jest:

  • twój hostingodawca,

  • rejestrator domeny,

  • dostawca ochrony DDoS.

Jednak nie zawsze.

Aby sprawdzić, kto aktualnie zarządza DNS dla twojej domeny, możesz użyć polecenia whois. Dla przykładu sprawdźmy domenę kodu.cloud:

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

W wyniku otrzymasz listę serwerów NS:

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

Oznacza to, że w tym przypadku DNS należy edytować w panelu Cloudflare.

W większości przypadków sam prefiks domeny serwera NS pozwala zorientować się, kto jest dostawcą DNS, ale nie zawsze. Na przykład w ramach naszej darmowej usługi DNS nazwy mogą wyglądać tak:

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

W takiej sytuacji najlepiej skontaktować się z pomocą techniczną twojego hostingodawcy, aby dokładnie ustalić, gdzie edytować rekordy.

Gdy już pewnie ustalisz dostawcę DNS, zaloguj się do jego panelu i przejdź do sekcji dotyczącej edycji rekordów DNS dla twojej domeny. Większość kolejnych zmian będziemy wprowadzać właśnie tam. Ponieważ każdy panel wygląda inaczej, nie da się przygotować uniwersalnej instrukcji krok po kroku.

Jeżeli napotkasz trudności, skorzystaj z pomocy technicznej twojego dostawcy.

warning

Po zmianie rekordów DNS odświeżenie pamięci podręcznej może potrwać od 20 minut do nawet 24 godzin. Dodatkowo duże systemy pocztowe potrzebują czasu na zaktualizowanie reputacji domeny i serwera. Aby zapewnić stabilną dostawę wiadomości, zaleca się odczekać około 48 godzin, chociaż zwykle pierwsze efekty widoczne są już po 2-3 godzinach.

Krok 2. Sprawdzenie obecności IPv6

Do poprawnej konfiguracji musimy dokładnie ustalić, czy serwer posiada adres IPv6. Aby to sprawdzić, wykonaj polecenie:

ip a | grep inet6

Jeśli zobaczysz wynik podobny do tego:

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

To znaczy, że twój serwer ma adres IPv6. Znajdziesz go w wierszu kończącym się na scope global do znaku /.

Zapisz go, bo przyda się w dalszych krokach.

Jeśli w wyniku będzie pusto albo pojawi się tylko jedna linia tego typu:

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

To znaczy, że twój serwer nie posiada IPv6. W takim przypadku w dalszej konfiguracji pomijaj IPv6.

Konfiguracja rekordów DNS

Krok 3. Sprawdzenie rekordu MX

Rekord MX określa, na który serwer ma trafiać przychodząca poczta dla twojej domeny. Sprawdzisz go poleceniem:

dig MX example.com +short

Przykładowy poprawny wynik:

10 mail.example.com.

Jeśli wynik będzie nieprawidłowy lub wskazuje na niewłaściwy serwer, edytuj rekord MX u swojego dostawcy DNS.

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

Jeśli rekordu nie ma, zobaczysz pusty wynik:

~ dig MX badexample.com +short
~

W takim przypadku musisz utworzyć rekord DNS, używając przykładu powyżej.

Pamiętaj, że rekordów MX może być kilka. W takim przypadku poczta będzie najpierw wysyłana na serwer o niższej wartości priorytetu (np. 10 ma wyższy priorytet niż 20).

Jeśli główny serwer jest niedostępny, dostawa zostanie zrealizowana na serwerze o następnym priorytecie.

Krok 4. Sprawdzenie rekordów A i AAAA

Teraz upewnij się, że mail.example.com oraz example.com wskazują na adres serwera, z którego wysyłana jest poczta:

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 obu poleceń powinny być takie same jak prawdziwe adresy IPv4 i IPv6 twojego serwera.  Jeśli się różnią lub nie ma takich wpisów, edytuj je/utwórz w swoim koncie u dostawcy DNS:

  1. example.com (А):
  • Typ: A
  • Nazwa: @
  • Adres: 1.2.3.4
  1. example.com (АAAA):
  • 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. Sprawdzenie rekordu SPF

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

Sprawdzenie:

dig TXT example.com +short

Przykładowy poprawny rekord SPF:

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

Bardzo ważne: domena może mieć tylko jeden rekord SPF. Więcej niż jeden prawie zawsze powoduje błędy w weryfikacji.

Jeśli adres IP różni się od aktualnego adresu twojego serwera lub taki wpis nie istnieje, edytuj/utwórz go w osobistym koncie swojego dostawcy DNS:

Jeśli masz IPv6:

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

Jeśli nie masz IPv6:

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

SPF oferuje wiele dodatkowych możliwości, ale taki zestaw w pełni wystarcza, by poczta była poprawnie akceptowana przez większość usług.

Krok 6. Sprawdzenie rekordu DKIM

DKIM to cyfrowy podpis wiadomości, który potwierdza, że e-mail został wysłany z określonej domeny i nie został po drodze zmodyfikowany. Do weryfikacji podpisu używany jest rekord DNS typu TXT z kluczem publicznym: najpierw podpis jest tworzony na serwerze, a następnie klucz jest publikowany w DNS.

Istnieje wiele sposobów uzyskania DKIM dla domeny pocztowej, ale w tej części artykułu skupiamy się na najprostszym, czyli wykorzystaniu FASTPANEL. W FASTPANEL podpis DKIM tworzony jest automatycznie dla każdego dodanego domenowego konta pocztowego.

FASTPANEL to bardzo wygodne narzędzie do pracy z serwerem pocztowym - nie musisz niczego instalować ani konfigurować ręcznie. Otrzymujesz gotowy serwer pocztowy do obsługi poczty przychodzącej i wychodzącej oraz wygodny webmail.

Twoim jedynym zadaniem jest skopiowanie wartości otwartego klucza i dodanie go do DNS. Aby to zrobić, przejdź w panelu do sekcji “Management” → “Mail” i kliknij przycisk “DKIM” na końcu wiersza odpowiadającego twojej domenie pocztowej.

konfiguracja-rekordow-dns-spf-dkim-dmarc-ptr-mx-przewodnik-zapobiegania-spamowi-email

Następnie skopiuj wyświetlony klucz publiczny:

konfiguracja-rekordow-dns-spf-dkim-dmarc-ptr-mx-przewodnik-zapobiegania-spamowi-email

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

  • Typ: TXT
  • Nazwa: dkim._domainkey
  • Wartość: skopiowany wcześniej klucz publiczny

Jeśli rekord już istnieje, najlepiej nadpisać go nowym kluczem, żeby mieć pewność, że używasz aktualnego.

DKIM może mieć wiele rekordów, o ile nazwy są różne. Na przykład, jednoczesna obecność dkim._domainkey oraz mail._domainkey nie spowoduje żadnych konfliktów.

Po dodaniu rekordu i odświeżeniu cache DNS możesz zweryfikować DKIM poleceniem:

dig TXT dkim._domainkey.example.com +short

Krok 7. Sprawdzenie rekordu DMARC

DMARC określa, co powinno się wydarzyć z wiadomościami, które nie przechodzą SPF lub DKIM.

Sprawdzenie:

dig TXT _dmarc.example.com +short

Przykładowy wynik:

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

DMARC ma sporo opcji, ale w większości przypadków wystarczy prosty rekord:

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

Krok 8. Sprawdzenie zmiennej sendmail_path (opcjonalnie)

Ten krok jest szczególnie pomocny, jeśli wiadomości są wysyłane bezpośrednio ze strony WWW - np. przez formularz kontaktowy, system zamówień itp.

Aby wszystkie niezbędne rekordy DNS były brane pod uwagę podczas wysyłki, ustaw w konfiguracji PHP wartość zmiennej sendmail_path:

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

W FASTPANEL zrobisz to w ustawieniach danej strony, w sekcji “PHP Settings”.

Konfiguracja hostname i PTR

PTR (lub rDNS) to odwrotny rekord DNS, który przypisuje adres IP do nazwy domeny.

Hostname to po prostu nazwa twojego serwera w sieci.

Jeśli rekord PTR nie zgadza się z hostname serwera, wiadomości niemal na pewno trafią do spamu.

Najlepszą praktyką jest ustawienie zarówno hostname, jak i PTR na wartość mail.example.com (oczywiście zawsze zamieniamy example.com na własną domenę).

Krok 9. Hostname

Aby sprawdzić aktualny hostname, wykonaj polecenie:

hostname

Aby zmienić hostname, użyj:

sudo hostnamectl set-hostname mail.example.com

Następnie ponownie wykonaj polecenie hostname, aby upewnić się, że wszystko działa poprawnie.

Krok 10. PTR

Z rekordem PTR sytuacja wygląda inaczej: zmienić go może tylko właściciel adresu IP, czyli twój dostawca usług hostingowych. Więcej szczegółów na temat przyczyn tego stanu rzeczy można znaleźć w tym artykule.

Niektórzy dostawcy usług hostingowych umożliwiają edycję PTR w osobistym koncie.  Możesz spróbować zrobić to samodzielnie. Jeśli nie uda się, skontaktuj się z pomocą techniczną i poproś o ustawienie wartości PTR na:

mail.example.com

Pamiętaj, że wartość tę należy zawsze zmienić na rzeczywistą nazwę twojej domeny.

Zmiany są zazwyczaj wprowadzane natychmiastowo, nie ma potrzeby oczekiwania na aktualizację pamięci podręcznej DNS w tym przypadku. Obecny rekord PTR możesz sprawdzić poleceniem:

dig -x 1.2.3.4 +short

Końcowa weryfikacja

Jeśli dotarłeś do tego miejsca - gratulacje! Jesteśmy już na ostatniej prostej. Teraz pozostaje tylko sprawdzić, czy wszystko zostało skonfigurowane poprawnie i czy wiadomości wysyłane z twojego serwera rzeczywiście będą trafiać do folderu „Odebrane” u dowolnego adresata. Zanim rozpoczniesz testy, koniecznie poczekaj na odświeżenie cache DNS. Najlepiej odczekać co najmniej 1–2 godziny od ostatniej zmiany rekordów DNS.

Istnieje wiele zewnętrznych narzędzi, które umożliwiają przeprowadzenie kompleksowych testów poczty. Możesz skorzystać z dowolnego z nich. W ramach tego poradnika użyjemy serwisu mail-tester.com.

Aby przeprowadzić weryfikację, wejdź na stronę i skopiuj nazwę testowej skrzynki pocztowej:

konfiguracja-rekordow-dns-spf-dkim-dmarc-ptr-mx-przewodnik-zapobiegania-spamowi-email

Wyślij na nią wiadomość z dowolnej skrzynki w twojej domenie i kliknij przycisk „Then check your score”. Pamiętaj, aby wpisać temat oraz coś napisać w treści wiadomości.

Serwis pokaże wynik sprawdzenia DKIM, SPF, DMARC, obecność PTR oraz ogólną ocenę „reputacji” wiadomości, a także wskaże, czy twój serwer znajduje się na listach SPAM.

Jeżeli dokładnie i konsekwentnie wykonałeś wszystkie kroki opisane w artykule, wynik powinien wynosić 10/10. Jeśli będzie niższy, zapoznaj się z zaleceniami serwisu mail-tester. Znajdziesz tam szczegółowe informacje o problemach i sposobach ich rozwiązania.

Dodatkowo możesz sprawdzić obecność swojego serwera na listach SPAM przy pomocy serwisu:

 https://mxtoolbox.com/blacklists.aspx

Jeżeli któraś z kontroli wykaże, że adres IP twojego serwera trafił na listę, skontaktuj się z dostawcą hostingu, aby pomógł ci rozwiązać problem.

Po wykonaniu tych kroków konfiguracja serwera jest zakończona. Jeżeli nie chcesz tracić czasu na samodzielne testy lub napotkałeś trudności, możesz zawsze zgłosić się do pomocy technicznej kodu.cloud. Dla naszych klientów wykonujemy wszystkie opisane czynności szybko, w dowolnym czasie i bezpłatnie.