Implementacja SPF (Sender Policy Framework) w Postfix: Kompletny przewodnik
Linux

Implementacja SPF (Sender Policy Framework) w Postfix: Kompletny przewodnik

Implementacja SPF (Sender Policy Framework) w Postfix: Kompletny przewodnik

SPF (Sender Policy Framework) to mechanizm uwierzytelniania wiadomości e-mail, który pozwala serwerom pocztowym weryfikować, czy nadawca wiadomości jest autoryzowany do wysyłania e-maili z określonej domeny. W tym artykule omówimy konfigurację SPF w Postfix, publikację rekordów SPF w DNS oraz testowanie i monitorowanie skuteczności mechanizmu.


1. Co to jest SPF i dlaczego jest ważny?

Sender Policy Framework (SPF) to protokół zabezpieczający e-mail przed spoofingiem (podszywaniem się pod nadawcę). Działa na poziomie DNS i pozwala administratorowi domeny określić, które serwery mogą wysyłać e-maile w jej imieniu.

Korzyści SPF:
✔ Ogranicza ryzyko ataków typu phishing i spoofing.
✔ Zmniejsza ilość spamu wychodzącego z podrobionych adresów.
✔ Poprawia reputację serwera pocztowego.

🚨 Ograniczenia SPF:

  • SPF sprawdza jedynie adres IP nadawcy, nie analizuje zawartości wiadomości.
  • SPF nie chroni przed fałszowaniem pola „From” w treści wiadomości (do tego potrzebny jest DKIM/DMARC).
Implementacja SPF (Sender Policy Framework) w Postfix: Kompletny przewodnik
Implementacja SPF (Sender Policy Framework) w Postfix: Kompletny przewodnik

2. Publikacja rekordu SPF w DNS

Aby skonfigurować SPF, należy dodać odpowiedni rekord TXT do ustawień DNS domeny.

2.1. Struktura rekordu SPF

Typowy rekord SPF wygląda tak:

v=spf1 ip4:192.168.1.100 include:_spf.google.com -all

🔍 Co oznaczają poszczególne elementy?

  • v=spf1 – oznacza, że jest to rekord SPF w wersji 1.
  • ip4:192.168.1.100 – pozwala serwerowi o adresie IP 192.168.1.100 wysyłać e-maile w imieniu domeny.
  • include:_spf.google.com – pozwala wszystkim serwerom Gmail wysyłać e-maile w imieniu domeny.
  • -all – odrzuca wiadomości wysłane spoza dozwolonych adresów.
Czytaj  Hardening Linuxa: Kompletny przewodnik po konfiguracji bezpieczeństwa serwerów i stacji roboczych

2.2. Tworzenie rekordu SPF dla własnej domeny

Jeśli korzystamy tylko z jednego serwera pocztowego (np. Postfix), nasz rekord SPF w DNS może wyglądać następująco:

v=spf1 mx -all

Jeśli korzystamy z serwera SMTP dostawcy zewnętrznego, np. Google Workspace lub Outlook, możemy użyć:

v=spf1 include:_spf.google.com include:spf.protection.outlook.com -all

Dodanie rekordu SPF w DNS:

  1. Zaloguj się do panelu zarządzania DNS domeny.
  2. Dodaj nowy rekord typu TXT.
  3. W polu Nazwa wpisz swoją domenę (np. example.com).
  4. W polu Wartość wpisz odpowiedni rekord SPF.
  5. Zapisz zmiany i poczekaj na propagację DNS (zazwyczaj do 24 godzin).

2.3. Sprawdzenie poprawności rekordu SPF

Po dodaniu rekordu SPF warto sprawdzić jego poprawność za pomocą narzędzi online, np.:

  • MXToolbox: https://mxtoolbox.com/spf.aspx
  • Google Admin Toolbox: https://toolbox.googleapps.com/apps/checkmx/

Możemy także użyć polecenia nslookup w terminalu:

nslookup -type=TXT example.com

3. Konfiguracja SPF w Postfix

Postfix nie sprawdza rekordów SPF natywnie, dlatego do jego konfiguracji potrzebujemy zewnętrznych narzędzi, np.:

  • postfix-policyd-spf-python (zalecane)
  • spf-tools-perl

3.1. Instalacja postfix-policyd-spf-python

Na systemach Debian/Ubuntu instalujemy pakiet:

sudo apt update
sudo apt install postfix-policyd-spf-python

Na systemach CentOS/RHEL:

sudo yum install postfix-policyd-spf-python

3.2. Konfiguracja Postfix do obsługi SPF

Edytujemy plik konfiguracyjny main.cf:

sudo nano /etc/postfix/main.cf

Dodajemy linię do sekcji restrykcji odbiorców:

smtpd_recipient_restrictions = 
    permit_mynetworks,
    reject_unauth_destination,
    check_policy_service unix:private/policyd-spf,
    permit

Zapisujemy zmiany i restartujemy Postfix:

sudo systemctl restart postfix

3.3. Konfiguracja SPF Policyd

Edytujemy plik /etc/postfix-policyd-spf-python/policyd-spf.conf:

sudo nano /etc/postfix-policyd-spf-python/policyd-spf.conf

Przykładowa konfiguracja:

HELO_reject = Fail
Mail_From_reject = Fail
PermError_reject = False

Ponownie restartujemy usługę:

sudo systemctl restart postfix

4. Testowanie SPF w Postfix

Aby sprawdzić, czy Postfix poprawnie weryfikuje SPF, możemy przeanalizować logi:

sudo tail -f /var/log/mail.log | grep SPF

Przykładowy wpis oznaczający odrzucenie wiadomości z nieautoryzowanego serwera:

NOQUEUE: reject: RCPT from unknown[192.168.1.200]: 550 5.7.1 SPF check failed - not allowed

5. Monitorowanie i optymalizacja SPF

5.1. Analiza logów SPF

Aby zobaczyć szczegółowe raporty SPF, możemy użyć pflogsumm:

sudo apt install pflogsumm
pflogsumm /var/log/mail.log

5.2. Integracja SPF z DKIM i DMARC

SPF działa najlepiej w połączeniu z innymi metodami zabezpieczeń poczty:

  • DKIM (DomainKeys Identified Mail) – podpisywanie wiadomości e-mail kluczem prywatnym.
  • DMARC (Domain-based Message Authentication, Reporting, and Conformance) – raportowanie i egzekwowanie polityki SPF i DKIM.
Czytaj  Uszkodzony pakiet Linux – diagnozowanie i naprawa błędów pakietów w systemach Linux

Rekord DMARC w DNS może wyglądać tak:

v=DMARC1; p=quarantine; rua=mailto:raport@example.com

Podsumowanie

Implementacja SPF w Postfix pozwala skutecznie zweryfikować tożsamość nadawców e-maili i chronić domenę przed atakami spoofingowymi. W artykule omówiliśmy:

✅ Jak działa SPF i dlaczego jest ważny.
✅ Jak dodać rekord SPF w DNS.
✅ Jak skonfigurować Postfix do obsługi SPF.
✅ Jak testować i monitorować skuteczność SPF.

Dzięki tej konfiguracji Twój serwer pocztowy będzie bezpieczniejszy i mniej podatny na nadużycia.

Polecane wpisy
Jak sprawdzić wolne miejsce na dysku w Linuksie
Jak sprawdzić wolne miejsce na dysku w Linuksie

Jak sprawdzić wolne miejsce na dysku w Linuksie W systemie Linux istnieje kilka sposobów na sprawdzenie wolnego miejsca na dysku. Czytaj dalej

Wsparcie dla Linux w środowiskach chmurowych i kontenerach
Wsparcie dla Linux w środowiskach chmurowych i kontenerach

Wsparcie dla systemu Linux w środowiskach chmurowych i kontenerowych jest szeroko dostępne i rozwija się dynamicznie. Zarówno dostawcy chmur, jak Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.