Postfix filtrowanie z użyciem GeoIP

Szukałem, szukałem i wyszukałem na forum ubuntu sposobu na zablokowanie spamu z Indii.
Blokować cale klasy IP słabo więc poszukałem roziwazania opartego o GeoIP.
Na poczaku instalujemy kilka paczek:
apt-get install geoip-database libgeoip1 python-geoip
Pobieramy plik policyd-geoip.tar
cd /tmp wget /content/images/wordpress/policyd-geoip.tar.gz tar xvf policyd-geoip.tar.gz mv policyd-geoip /usr/bin/ mkdir /etc/postfix-policyd-geoip mv policyd-geoip.conf /etc/postfix-policyd-geoip
Trzeba dopasować plik konfiguracji wg własnych upodobań. Ja dodałem do GOOD listy język PL oraz nazwe mojego serwera.
path_to_data = /usr/share/GeoIP/GeoIP.dat badlist = CN,CZ,NL,IT,IN,TW,VE,VN,ZA,RU goodlist = GB,US,CA,IE,PL,AU exceptions_to_badlist = 8px.pl, 127.0.0.1 exceptions_to_goodlist = sender_exceptions = [email protected] recipient_exceptions = permit_goodlist_only = false soft_bounce = false test_mode=false
W konfiguracji w ostatniej linii domyślnie jest test_mode=true, musimy to zmienić na test_mode=false
Jeszcze konfiguracja postfix-a.
vim /etc/postfix/master.cf
Dodajemy:
policy-geoip unix - n n - 0 spawn user=nobody argv=/usr/bin/policyd-geoip
oraz
vim /etc/postfix/main.cf
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
…………….. ,
check_policy_service unix:private/policy-geoip
Po restarcie postfixa w logach powinno być coś na wzór:
6644:Dec 16 18:40:13 8px geoip[16094]: action=Pass - Accepted Server [IP: 91.227.202.25 / LOOKUP: mail-n01-b09.salesmanago.pl] in GOODLIST as PL
Gdy będzie kraj na naszej czarnej liście zobaczymy: „in BADLIST” lub gdy nie będzie kraju na żadnej liscie: „LOOKUP: unknown] not in GOODLIST or BADLIST returns”
I to wszystko :)