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).

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.100wysył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.
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:
- Zaloguj się do panelu zarządzania DNS domeny.
- Dodaj nowy rekord typu TXT.
- W polu Nazwa wpisz swoją domenę (np.
example.com). - W polu Wartość wpisz odpowiedni rekord SPF.
- 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.
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.






