Postfix filtrowanie z użyciem GeoIP

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 = admin@8px.pl
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 :)