Skip to content

Postfix i weryfikacja nadawcy po nagłówkach wiadomości

Domyślenie Postfix odbiera wiadomości od dowolnego nadawcy. W przypadku spamu często stosowaną praktyka jest podstawianie za adres nadawcy, adresu z domeny która jest spamowana. Sieje to czasami niemały zamęt wśród użytkowników i powoduje wzajemne podejrzenia o infekcje komputerów przez oprogramowanie rozsyłające spam. Jeżeli mamy rozdzielone serwery MX od serwera SMTP dla własnych użytkowników, bardzo prosto i szybko możemy ograniczyć takie sytuacje. Wystarczy nie akceptować tych wiadomości przychodzących ze świata, które w nagłówku w polu From: mają adres z domeny własnej.

A więc …
Postfix posiada wbudowaną kalsę 'header_checks' do inspekcji nagłówków wiadomości (szczegóły można poczytać w 'man header_checks'). Na początek tworzymy plik z regułami header_checks w katalogu z konfiguracją Postfixa. Chcemy odrzucać adresy z domeny własnej i jej wszystkich subdomen.

# cat /etc/postfix/header_checks 
/^From: .+@.*mojadomena\.pl/ REJECT

Jeżeli jesteśmy bardziej złośliwi i jednocześnie pewni swojej konfioguracji zamiast REJECT możemy użyć DISCARD.
Sprawdzamy czego używa nasz Postfix, regexp czy pcre

# postconf -m 
... 
regexp 
...

Następnie dodajemy do konfiguracji (/etc/postfix/main.cf) adekwatny do uzyskanego wyniku wpis:

header_checks = regexp:/etc/postfix/header_checks

Wczytujemy nową konfigurację

# /etc/init.d/postfix reload 
Reloading Postfix configuration... done.

I robimy szybki test:

telnet mx.mojadomena.pl 25 
Trying mx.mojadomena.pl... 
Connected to mx.mojadomena.pl. 
Escape character is '^]'. 
220 ESMTP Server 
HELO hostname 
250 mx.mojadomena.pl 
mail from: bogus@mojadomena.pl 
250 2.1.0 Ok 
rcpt to: bogus@mojadomena.pl 
250 2.1.5 Ok 
DATA 
354 End data with <CR><LF>.<CR><LF>  
Date: 11 Jan 11 11:11:11 
From: bogus@mojadomena.pl 
To: bogus@mojadomena.pl 
Subject: od bogus@mojadomena.pl 

. 
550 5.7.1 message content rejected

Well done 🙂

Facebook Comments

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *