[linux] Postfix + Greylist

Lubos Vitek mailings na fan-space.de
Středa Prosinec 15 21:08:02 CET 2004


Ahoj,

On Wed, 2004-12-15 at 20:26, Lubomir Host wrote:
> On Wed, Dec 15, 2004 at 04:42:01PM +0100, Lubos Vitek wrote:
> > Zdravim,
> > 
> > mam otazku ohladom Postfixu a Greylistov. Skusal niekto z vas Postgrey
> > (http://isg.ee.ethz.ch/tools/postgrey/) spolu s postfixom na servroch s
> > vysokym loadom ?
> > 
> > Ide mi o to, ze my pouzivame upraveny postgrey na mysql, ale v poslednej
> > dobe vykon rapidne klesa. V databaze mame uz vyse 2.5 mil zaznamov a
> > dost casto sa stava, ze mysql zacina timeoutovat.
> 
> Neskusali ste tabulku optimalizovat? Vytvorit na kazdy mesiac jednu
> tabulku s rovnakou strukturou, ako ma ta, do ktorej sa zapisuje.
> A z tych mesacnych tabuliek + zapisovacej potom vytvorit tabulku typu
> MERGE? Vyhoda by mohla byt v tom, ze by mysql pouzilo index z kazdej
> z tych tabuliek, novo pridavane data by aktualizovali index iba v tej
> jednej poslednej. Nemam to vyskusane, ale nieco podobne pouzivame my na
> logovacie tabulky, kde mesacne pribuda > 500 tis. zaznamov. Uz nam to

neviem ci toto prave pomoze, aj ked za pokus to mozno stoji. problem je
v tom, ze do tych tabuliek sa zapisuju, citaju a mazu udaje nasledovne:

-- zo stranky postgrey: --
When a request for delivery of a mail is received by Postfix via SMTP,
the triplet CLIENT_IP / SENDER / RECIPIENT is built. If it is the first
time that this triplet is seen, or if the triplet was first seen less
than 5 minutes, then the mail gets rejected with a temporary error.
Hopefully spammers or viruses will not try again later, as it is however
required per RFC.
----


kazdy mail klient, ktory sa konektne na server sa teda overuje trojicou 
CLIENT_IP / SENDER / RECIPIENT. Samozrejme tabulka je zindexovana podla
ip, sender a recipient. V pripade prveho vyskytu sa insertuje novy
zaznam. V pripade opakovaneho vyskytu sa prislusny zaznam updatne (pole
last_seen).

paralelne k tomu bezi cronjob, ktory kontroluje a maze vsetky zaznamy,
ktore maju cas poslednej zmeny > X dni a pass_count = 0 (SPAM servre,
ktore sa vyskytli len raz a pod.). V praxi to je na nasom servri a pri
nasej trafike ca. 5000-15000 zaznamov pri kazdom mazani. aj napriek tomu
mazaniu rastie tabulka spominanou rychlostou 10-100tis zaznamov za
tyzden.

problem je v tom, ze cas pre selecty aj updaty samozrejme stale rastie a
mysql z pohladu mailservra timeoutuje.

teoreticky je greylist dobra vec, neradi by sme sa ho vzdali. v praxi je
to ale bohuzial tak, ze za rok je v tej tabulke polka internetu a cas na
databazove operacie stale vacsi a vacsi.

pozriem na tie MERGE tabulky, snad sa to podari nejako skombinovat. v
kazdom pripade vdaka za pomoc a radu.

Lubos





Další informace o konferenci linux