čtvrtek 30. června 2011

Greylisting - kladivo na SPAM

Již několik let je Greylisting známá a hlavně účinná metoda jak snížit příjem SPAMu. Po dlouhé době jsem se rozhodl nasadit postgrey na servery s MTA Postfix. Zprovoznění je velmi snadné a je pěkně posané např. zde, ale zakousl jsem se na mé původní konfiguraci postfixu. Postgrey je perlový script, který se pouští jako daemon a naslouchá na nastaveném portu TCP nebo na UNIX socketu. Postfix při kontrolách emailu předá email k prověření Postgrey. Ten pozdrží doručení emailu a tím nám sice email dorazí později, ale pleva se nedoručí. Doposud jsem SPAM označoval SpamAssasinem a filtroval do složky. Po nasazeni Graylistingu skutečně 98% spamu nedorazí do mého mailboxu.

Instalace Ubuntu:

aptitude install postgrey

Adding system user `postgrey' (UID 109) ...
Adding new group `postgrey' (GID 117) ...
Adding new user `postgrey' (UID 109) with group `postgrey' ...
Not creating home directory `/var/lib/postgrey'.

Creating config file /etc/postgrey/whitelist_clients with new version
Creating config file /etc/postgrey/whitelist_recipients with new version
Creating config file /etc/default/postgrey with new version
Starting postfix greylisting daemon: postgrey.

joe /etc/default/postgrey
POSTGREY_OPTS="--inet=127.0.0.1:10023 --delay=120 --max-age=20"

joe postfix/main.cf
smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination,
check_policy_service inet:127.0.0.1:10023


Narazil jsem na problém s mou původní konfiguraci postfixu, do které jsem jen přidal check_policy_service .... Ale s níže uvedenou konfiguraci postfix nic nepředáva postgrey.

smtpd_recipient_restrictions = permit_mynetworks,
reject_unauth_destination,
check_relay_domains,
check_policy_service inet:127.0.0.1:10023
permit

Patráním po problému jsem strávil spoustu času. Zkousel jsem i UNIX Socket, ale problém byl v check_relay_domains.

Alespoň jsem si dle rad zkušenějších vyzkoušel strace -r při bezradném pátrání po problému.

Instalace FreeBSD:
cd /usr/ports/mail/postgrey/
make install clean

joe /etc/rc.conf
postgrey_enable="YES"

/usr/local/etc/rc.d/postgrey start

Opět je v portech FreeBSD aktuálnější verze než v Ubuntu 8.04.4 LST :-)

Ubuntu
postgrey 1.31-2 greylisting implementation for Postfix

FreeBSD
postgrey-1.33_1 Greylisting policy server for Postfix

Žádné komentáře: