Image

Image

Search This Blog

Saturday, March 13, 2010

Spamfilter 2.0 - teoria initiala

Se implinesc in curand 4 ani de cand a inceput istoria asta. Acum 4 ani m-am apucat sa fac primul filtru antispam si habar n-aveam la ce ma inham (nu ca celelalte proiecte, care au venit dupa ar fi fost mai usoare, dimpotriva, da' inceputu' e intotdeauna mai greu). Dupa 4 ani filtru' meu inca e in topul celor mai bune din lume, blocand in medie cam 97% din spam, dar pe masura ce trece timpul, apar tot mai evidente limitarile versiunii 1,x, printre care lipsa unei metode de a permite fiecarui user sa-si gereze individual propriile mesaje, fara necesitatea unui admin, viteza foarte mica de raspuns in cazul cautarilor in mesajele din carantina, structura multi-layer, data de faptul ca am tot facut adaugiri la software-ul initial, dar nu am facut o reala integrare, ci am tot adaugat filtre unul in fata celuilalt - care poate induce intarzieri de pana la 5 minute in prelucrare (cu tot cu greylisting) si nu permite managementul centralizat al exceptiilor. Astfel, in versiunea 1.x, am ajuns sa am o lista de exceptii in postgrey, una in postfix si alta in spamd, iar lista din postgrey nici macar nu are o interfata web de management! Foarte important e si suportul de solidstate disk, care in v1 o cam suge rau de tot (se vede clar ca e adaugat dupa si mi-a dat cele mai multe batai de cap dealtfel).
Sigur, am si parti bune in 1.x, pe care le voi copia in v2, printre care: autoupdate/push updates, remote services monitoring, redir, call-home licensing...
Voi pastra combinatia postfix-spamassassin ca si structura de baza, dar proabil ca voi muta toata configuratia si storage-ul intr-o baza de date. Bazat pe scriptul de getuser probabil, voi crea o metoda autentificare a userilor la serverul principal de mail daca e exchange, iar pentru un server unix va trebui sa descopar cum imi pot autentifica userii la serverul pop3 - in felul asta nu am nevoie de alte combinatii user/parola pentru managementul mesajelor in carantina.
Trebuie sa fie posibil sa transfer bazele de date postgey si baesyan (actualmente berkleydb) in noul sistem, pen' ca sigur o sa trebuiasca sa upgradez din vechile sisteme sia ar fi bine sa pastrez rata mare de detectie pe care o am deja.
Trebuie sa investighez daca nu cumva cramfs/alt_filesystem_read_only in combinatie cu unionfs nu e o solutie mai buna pentru SSD-uri sau USB-flashuri (care actualmente sunt super-lente, iar pe masini cu >1mil de spamuri/luna crapa execrabil cu ext3fs chiar daca am mutat /tmp in ram si am limitat drastic scrierile pe disk).
Ca o ultima idee ar fi sa mut /etc/initsetup-ul intr-o interfata web, scapand astfel de nevoia initiala de a avea kbd+screen pentru instatalare si permitandu-mi poate sa modific cutia in ceva gen router cu doar un port rj45, un powercord si un powerbutton.

Edit: beta 1 is out! working on bug fixes now.
Edit2: spamfilter2, codename "miserable failure" is retired. let's welcome SpamFilter3!

Blog Archive