RMXF
Reverse MX Postfix 2 Filter
reject_bad_rmx
(c) 2004:2007 Elita rozanski@sergiusz.com
docs |
src |
download |
pakiet debiana |
changelog |
copyright |
TODO |
www.4x4.kalisz.pl
Linux: # make Freebsd: # make freebsd Instalacja: # cp mxfilter /usr/local/sbinPolecam narazie testy na jednym adresie:
# ten adres będzie skanowany (dla unknown znakujemy poczte, ale dopuszczamy): rozanski@sergiusz.com check HMARK # reszta dla tej domeny sprawdzamy, ale dla 'unknown' leci 550 @sergiusz.com check # reszte domen docelowych pomijamy * skip # składnia dla tego pliku jest w pakiecieMusimy jeszcze utworzyć plik /etc/postfix/mxfilter.cf zawiera on definicje z jakich filtrów chcemy korzystać i jaka jest domyślna akcja jeśli domena nie posiada żadnych wpisów (zgodnie z spf1 musi to być unknown "v=spf1 ?all" czyli '2')
smtpd_sender_restrictions = #wg uznania, do smaku smtpd_recipient_restrictions = ### kontrola poprawności adresów reject_non_fqdn_sender, #adres nadawcy musi być poprawny reject_non_fqdn_recipient, #adres odbiorcy musi być poprawny reject_unknown_sender_domain, #wywalamy tych senderów bez wpisu w dns reject_unknown_recipient_domain, #jw. dla recipientów ### autoryzacja naszych klientów permin_mynetworks, permit_sasl_authenticated, ### delivery (tu spodziewamy się tylko prawidłowo skonfigurowanych serverów) # zły odbiorca reject_unauth_destination, # nieprawiłowy format helo reject_non_fqdn_hostname, # złe helo reject_invalid_hostname, # zły reverse-mx check_policy_service unix:private/mxfilter, #tu leci ten filter # host podany w helo nie istnieje (hard! ale powinno się wymagać) reject_unknown_hostname, # nadawca nie ma rev-dns (bardzo hard! ale tez powinno się wymagać) reject_unknown_client # i tu już mamy list w delivery jeśli wszystko jest ok.do master.cf:
mxfilter unix - n n - - spawn user=nobody argv=/usr/local/sbin/mxfilterścieżka w argv oczywiście tam gdzie wgraliśmy filtr.
587 inet n - n - - smtpdI restart postfixa:
# postfix reload
a.tld. TXT "v=spf1 mx/24 ip4:4.4.4.4 ip4:5.4.55.66 ip4:6.6.6.6 -all"a jeśli masz jeszcze domene a.com.tld wysyłającą to samo:
a.com.tld. TXT "v=spf1 redirect=a.tld"lub:
a.com.tld. TXT "v=spf1 include:a.tld -all"Tam gdzie możecie, to stosujcie wpisy ip4: ponieważ najmniej obciążają wasz server dns, bo nie wymagają dodatkowych zapytań.
mxfiltersh unix - n n - - spawn user=nobody argv=/usr/local/sbin/mxfilter -sh 192.168.21.1w pliku main.cf:
smtpd_recipient_restrictions = [...] permin_mynetworks, check_policy_service unix:private/mxfiltersh, permit_sasl_authenticated, [...]Mxfiltersh zignoruje wszelkie niezalogowane sesje (przepuszcza je do dalszych testów). Dla każdej zalogowanej sesji sprawdzi czy nasz host jest właściwy dla wysyłania poczty i jesli nie jest przesyłka zostanie odrzucona. Gdy wszystko jest w porządku email zostanie przepuszczony do następnej regułki (permit_sasl_authenticated), i tam wpuszczony. Oczywiście accesslist-a jest ignorowana w tym trybie.
Feb 6 17:22:15 kamera postfix/mxfilter: 212.127.xx.250 st4gg.tvm.pl rozanski@sergiusz.com REJECT Feb 6 17:30:45 kamera postfix/mxfilter: 212.127.xx.250 7awicz.poczta.onet.pl robert@sergiusz.com REJECT Feb 6 17:33:44 kamera postfix/mxfilter: 212.127.xx.250 mp1etrus.interia.pl brent@sergiusz.com REJECT Feb 6 17:40:55 kamera postfix/mxfilter: 212.127.xx.250 ry--k.macsy.poczta.fm james@sergiusz.com REJECT Feb 6 17:55:14 kamera postfix/mxfilter: 212.127.xx.250 brent@sergiusz.com john@sergiusz.com REJECT Feb 6 17:57:12 kamera postfix/mxfilter: 212.127.xx.250 4ndrew.azpexim.com.pl bob@sergiusz.com REJECT Feb 6 18:03:40 kamera postfix/mxfilter: 212.127.xx.250 id.drweb.ru michael@sergiusz.com REJECT Feb 6 18:04:49 kamera postfix/mxfilter: 212.127.xx.250 st4n.onet.pl ted@sergiusz.com REJECT Feb 6 18:08:29 kamera postfix/mxfilter: 212.127.xx.250 k4si4~reep.poczta.onet.pl alice@sergiusz.com REJECT Feb 6 18:10:51 kamera postfix/mxfilter: 212.127.xx.250 fr3d.gazeta.pl dave@sergiusz.com REJECT Feb 6 18:16:07 kamera postfix/mxfilter: 212.127.xx.250 t3d.mks.com.pl dan@sergiusz.com REJECT Feb 6 18:16:33 kamera postfix/mxfilter: 212.127.xx.250 jo3.mobista.pl george@sergiusz.com REJECT Feb 6 18:18:38 kamera postfix/mxfilter: 212.127.xx.250 g0dry.yahoo.com matt@sergiusz.com REJECT Feb 6 18:19:57 kamera postfix/mxfilter: 212.127.xx.250 a1r4m.poczta.fm helen@sergiusz.com REJECT Feb 6 18:22:58 kamera postfix/mxfilter: 212.127.xx.250 j0hn.email.si tom@sergiusz.com REJECT Feb 6 18:24:43 kamera postfix/mxfilter: 212.127.xx.250 4nn4.czajen.pl ray@sergiusz.com REJECT Feb 6 18:26:23 kamera postfix/mxfilter: 212.127.xx.250 k3vin.mobista.pl jane@sergiusz.com REJECT Feb 6 18:33:05 kamera postfix/mxfilter: 212.127.xx.250 r4y.nullsoft.com julie@sergiusz.com REJECT Feb 6 18:36:30 kamera postfix/mxfilter: 212.127.xx.250 j0hn.garaze.com.pl kevin@sergiusz.com REJECT Feb 6 18:53:11 kamera postfix/mxfilter: 212.127.xx.250 j4mes.tlen.pl jimmy@sergiusz.com REJECT Feb 6 19:02:01 kamera postfix/mxfilter: 212.127.xx.250 ke3in.onet.pl david@sergiusz.com REJECT
$ mxfilter rozanski@sergiusz.com RMXF test: rozanski@sergiusz.com Test spf1: [answer level:1] mx ip4:195.205.84.133 include:comm.pl -all [mx+] 195.117.147.125/32 [ip4+] 195.205.84.133/32 [answer level:2] mx -all [mx+] 213.25.233.144/32 [mx+] 80.53.181.242/32 [all-] 0/0 [all-] 0/0 Test dmp: [+] sergiusz.com Test a: [+] 195.205.84.0/24 Test mx: [mx+] 195.117.147.125/24 $
:0 f | /path/to/mxfilter --procmailMxfilter w tym trybie próbuje na podstawie informacji zawartych w nagłówku poczty (return-path: (envelope-sender w nawiasach trójkątnych) i pierwszego received from: (adres IP w nawiasach kwardatowych)) wyznaczyć autoryzacje spf. Jedyną akcją są ustawione odpowiednio Received-SPF: w nagłówku, które można później wykorzystać do dalszego filtrowania.
header NO_SPF Received-SPF =~ /\bnone\b/i score NO_SPF 0.3 header SOFTFAIL_SPF Received-SPF =~ /\bsoftfail\b/i score SOFTFAIL_SPF 2.0
docs src download changelog copyright TODO