Konfiguracja Greylisting w Postfix – Skuteczna Ochrona Przed Spamem
Greylisting to technika antyspamowa, która tymczasowo odrzuca pierwszą próbę dostarczenia wiadomości e-mail od nieznanego nadawcy. Legalne serwery pocztowe ponawiają wysyłkę po krótkim czasie, natomiast większość botów spamujących nie powtarza próby, co skutecznie redukuje ilość niechcianych wiadomości.
W tym artykule omówimy:
✅ Włączenie Greylisting w Postfix.
✅ Konfigurację wyjątków dla zaufanych nadawców.
✅ Optymalizację ustawień w celu zapewnienia skutecznej ochrony przed spamem.
1. Jak działa Greylisting?
Mechanizm Greylisting polega na tymczasowym odrzucaniu wiadomości od nieznanych nadawców z komunikatem „try again later”. Jeśli serwer ponowi próbę po kilku minutach lub godzinach, wiadomość zostanie zaakceptowana.
Schemat działania Greylisting
1️⃣ Nowy nadawca wysyła e-mail.
2️⃣ Serwer odbiorczy sprawdza nadawcę w bazie greylist.
3️⃣ Jeśli to pierwsza próba, serwer tymczasowo odrzuca e-mail.
4️⃣ Jeśli serwer ponawia próbę po określonym czasie (np. 10 min), wiadomość zostaje zaakceptowana.
5️⃣ Jeśli nadawca pojawia się ponownie w przyszłości, wiadomość jest przyjmowana od razu.
💡 Spamowe boty rzadko ponawiają wysyłkę, co skutecznie blokuje niechciane wiadomości!
2. Instalacja i konfiguracja Greylisting w Postfix
Postfix sam w sobie nie obsługuje Greylisting, ale możemy użyć Postgrey – popularnego narzędzia do zarządzania Greylisting.
2.1. Instalacja Postgrey
sudo apt update
sudo apt install postgrey
Na systemach CentOS/RHEL:
sudo yum install postgrey
💡 Postgrey działa jako serwer, który przechowuje informacje o nadawcach i decyduje, czy zastosować Greylisting.

3. Konfiguracja Postfix do współpracy z Postgrey
Po instalacji Postgrey, należy skonfigurować Postfix, aby korzystał z tej usługi.
Edytujemy plik main.cf:
sudo nano /etc/postfix/main.cf
Dodajemy lub edytujemy sekcję smtpd_recipient_restrictions:
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_policy_service inet:127.0.0.1:10023
🔹 Co oznaczają te ustawienia?
permit_mynetworks
– pozwala na wysyłanie poczty z lokalnych adresów IP.permit_sasl_authenticated
– zezwala na pocztę od zalogowanych użytkowników.reject_unauth_destination
– odrzuca wiadomości do nieznanych domen.check_policy_service inet:127.0.0.1:10023
– włącza Postgrey dla przychodzących e-maili.
Po zapisaniu zmian, restartujemy Postfix:
sudo systemctl restart postfix
I uruchamiamy Postgrey:
sudo systemctl restart postgrey
sudo systemctl enable postgrey
4. Dostosowanie ustawień Postgrey
Plik konfiguracyjny Postgrey znajduje się w:
/etc/default/postgrey
Możemy edytować domyślne ustawienia:
sudo nano /etc/default/postgrey
Najważniejsze opcje:
POSTGREY_OPTS="--delay=300 --inet=127.0.0.1:10023"
🔹 Co oznaczają te ustawienia?
--delay=300
– czas oczekiwania (w sekundach) na ponowne wysłanie e-maila (domyślnie 5 minut).--inet=127.0.0.1:10023
– adres i port nasłuchu Postgrey.
Po zmianie konfiguracji restartujemy Postgrey:
sudo systemctl restart postgrey
5. Konfiguracja wyjątków dla zaufanych nadawców
Niektóre serwery pocztowe (np. Gmail, Microsoft, Amazon SES) mogą mieć problemy z Greylisting. Możemy dodać wyjątki, aby wiadomości od zaufanych nadawców były akceptowane od razu.
Plik wyjątków znajduje się w:
/etc/postgrey/whitelist_clients
Edytujemy go:
sudo nano /etc/postgrey/whitelist_clients
Dodajemy linie:
gmail.com
outlook.com
yahoo.com
amazonses.com
Po zapisaniu restartujemy Postgrey:
sudo systemctl restart postgrey
💡 Dodanie wyjątków pozwoli uniknąć opóźnień dla zaufanych serwerów pocztowych!
6. Sprawdzanie działania Greylisting
Po skonfigurowaniu Greylisting możemy monitorować logi Postfix, aby zobaczyć, czy wiadomości są opóźniane:
sudo journalctl -u postfix -f
Lub w /var/log/mail.log:
sudo tail -f /var/log/mail.log | grep postgrey
Przykładowy log oznaczający zastosowanie Greylisting:
postgrey[1234]: action=greylist, reason=new, client_name=unknown, sender=spam@example.com, recipient=user@example.com
💡 Jeśli zobaczysz „whitelisted”, oznacza to, że wiadomość została zaakceptowana od razu.
7. Optymalizacja i dostosowanie ustawień
✔ Zmniejszenie opóźnienia Greylisting: Jeśli zauważysz, że wiadomości są opóźniane zbyt długo, możesz zmniejszyć czas --delay=60
(np. 1 minuta zamiast 5).
✔ Monitorowanie logów: Regularnie analizuj logi, aby upewnić się, że Greylisting działa prawidłowo.
✔ Dodawanie wyjątków: Jeśli masz problem z dostarczalnością, dodaj więcej wyjątków do listy zaufanych domen.
Podsumowanie
✅ Greylisting w Postfix to skuteczna metoda redukcji spamu.
✅ Postgrey automatycznie odrzuca pierwsze próby dostarczenia wiadomości od nieznanych nadawców.
✅ Można dodać wyjątki dla zaufanych serwerów pocztowych.
✅ Konfiguracja jest prosta i wymaga minimalnych zasobów.
Dzięki zastosowaniu Greylisting, Twój serwer pocztowy będzie bardziej odporny na spam, a legalne wiadomości będą dostarczane z niewielkim opóźnieniem.