OpenBSD spamd tarkvara kasutamine

Allikas: Kuutõrvaja
Redaktsioon seisuga 17. mai 2008, kell 21:30 kasutajalt Imre (arutelu | kaastöö) (/var/db/spamd andmebaas)

Sissejuhatus

Rämpspostiks (ingl. k spam, unsolicited bulk email (UBE), unsolicited commercial email (UCE)) nimetatakse massiliselt juhuslikele adressaatidele saadetavat e-posti, mida adressaat ei soovi saada. Reeglina püütakse rämpsposti abil midagi müüa, tutvustada või neis kirjades puudub üldse tähenduslik sisu. Tehnilises mõttes koormab rämpspost postisüsteemi, kuna iga saabunud kirja tuleb töödelda ja sellele kulub ressurssi, mitte-tehnilises mõttes segab kasutajatel tegeleda nö põhitegevusega.

Rämpsposti saatjate eesmärgiks on oma kirjad sokutada postisüsteemi kasutajate nö asjaliku posti hulka, kusjuures postisüsteemi üheks ülesandeks on saada aru, millisel juhul on tegu rämpspostiga ning takistada sellel kasutajaid eksitada.

Üldiselt tegeldakse rämpspostiga rakendades kahesuguseid meetmeid

  • aktiivne - postisüsteem teeb ennem kirja vastuvõtmist piisava tõenäosusega kindlaks, et tegu on rämpspostiga ning kirja ei võeta vastu (nt Spamd, dns blacklistid)
  • passiivne - postisüsteem võtab kirja vastu ja paigutab kasutaja postkasti, kuid analüüsi tulemusena märgitakse rämpspost spetsiifiliselt ära, näiteks lisatakse Subject reale '*****SPAM*****' või paigutatakse automaatselt kasutaja postkasti spetsiaalsesse kausta (nt Spamassassin)

Spamd tööpõhimõte

Spamd tarkvara abil saab aktiivselt takistada rämpsposti jõudmist kasutajateni, st rämpspost tõrjutakse enne seda kui postisüsteem kirja nö tervikuna vastu võtab ja seejuures võtab kirjaga edasi toimetamise eest vastutuse endale.

Alustuseks võib lihtsustatult öelda, et Spamd tarkvara kasutamisel on kaks otsest eesmärki

  • pidada paketifiltri jaoks <spamd-white> tabelit, kus on kirjas need ip aadressid, kust spamd andmetel saadetakse nö õiget posti
  • pidada iseenda jaoks /var/db/spamd andmebaasi, kus on kirjas muu hulgas rämpsposti saatnud aadressid ja mida ta kasutab neilt ip aadressidelt tulnud ühenduste kiusamiseks

/var/db/spamd andmebaas on tegelikult seetõttu olulisemagi tähendusega, et spamd kasutab seda nö rämpsposti saatvate ja õiget eposti saatvate ip aadresside kindlakstegemiseks, mida kirjeldatakse üksikajasjalikult järgmises punktis.

Spamd esineb tulemüüris spamd nimelise deemoni kujul, kuulates reeglina localhost:8025 porti ja paketifilter ühendab sinna kõigilt ip aadressidelt saabunud ühendused, mis pole kirjas <spamd-white> tabelis. <spamd-white> tabelis olevatelt ip aadressidelt lähtuvad ühendused suunab paketifilter otse MTA'le, nende jaoks praktiliselt spamd olemasolu jääb praktiliselt märkamatuks.

Iseenesest töötab spamd deemon ajutiste SMTP veateadete väljastajana, kuidas seda täpselt kasutatakse, selgitatakse samuti üksikasjalikult järgmises punktis. Oluline on tähele panna, et spamd deemon ei tööta SMTP vahendajana (ingl. k. proxy), samuti ei ole spamd seadistamisel vaja kirjeldada millise domeeni epostiga MTA tegeleb.

Ühe spamd tarkvara sisaldava postisüsteemi skeem võiks näiteks olla selline

      ___
     |   |  
     |   |
     |___| kirja saatja internetis
       |
       |
       ...
    internet
      ...
       |
       |
      _|_  tulemüür: PF, Spamd
     |   |                      
     |   |------------------|----
     |___|                  |
       |                   _|_  MTA (Postfix), Cyrus
       |                  |   |
       |                  |___|
       |
       |
     --|---------|-------------|---------------
                 |             |
                _|_           _|_  töökohaarvutid
               |   |         |   | MUA (nt Thunderbird, Pine)
               |___|         |___|

Spamd lahendust sisaldav postisüsteem töötab rämpspostiga ip aadressi täpsusega, st nii ei saa olla, et samal ajal osa ip aadressilt laekuvat posti lubatakse läbi takistamatult ning osa takistatakse.

Tihtipeale tegelevad arvutid rämpsposti saatmisega omaniku teadmata nt viirusega nakatumise tulemusena ning usutavasti omanik avastab selle ja lõpetab rämpsposti saatmise ning ka vastupidi, arvuti, mis täna saadab eranditult nö õiget posti võib olla homme kompromiteeritud ning asuda saatma rämpsposti. Selleks, et selliste muudatustega toime tulla ei ole nende ip aadresside nimekiri, mida spamd käsitleb rämpspostitajatena igavene ega pole ka <spamd-white> sisu samuti igavene, IP aadresse kustutatakse neist nimekirjadest automaatselt seadistustes kindlaksmääratud aja möödumisel.

/var/db/spamd andmebaas

Spamd selgitab välja <spamd-white> tabeli ip aadressid kasutades hallnimekirjamist (ingl. k. greylisting), mis toimub selliselt

  • Esmakordselt pöördumisel ip aadressilt spamd poole registreeritakse see pöördumine /var/db/spamd andmebaasis nn GREY (ingl. k. hall) kirjena ning pöördujale vastatakse ajutise SMTP veateatega '451 Temporary failure, please try again later. (in reply to DATA command))'. Sellisel juhul peab korrektselt töötav postisüsteem mõnekümne minut pärast uuesti proovima sama kirja saata. GREY kirje sisaldab järgmisi andmeid
    • saatja ip aadress
    • ümbriku from aadress
    • ümbriku to aadress
    • kirje /var/db/spamd andmebaasi registreerimise aeg
  • Kui 25 minutit peale, aga mitte hiljem kui 4 tundi peale esimest pöördumist pöördutakse uuesti samalt aadressilt, siis lisab spamd selle ip aadressi paketifiltri <spamd-white> tabelisse ning lisab /var/db/spamd andmebaasi selle ip aadressiga WHITE kirje, mis sisaldab
    • saatja ip aadressi
    • WHITE kirje tekitamise aega
  • Kui peale esimest pöördumist nelja tunni jooksul uuesti ei pöörduta, siis spamd kustutab /var/db/spamd andmebaasist vatava GREY kirje. Kui seejärel kunagi pöördutakse uuesti samalt ip aadressilt, siis sooritatakse kogu protseduur algusest peale uuesti.

/var/db/spamd andmebaasi sisu saab esitada spamdb programmi abil

 # spamd
 WHITE|192.168.10.1|||1211029865|1211029872|1214141349|1|3
 GREY|192.168.10.54|endel.spam.tartu.loomaaed.ee|<endelspam@endelspam.com>|<mart@tartu.loomaaed.ee>|1211033587|1211047987|1211047987|1|0

Siit on näha, et ip aadressiga 192.168.10.1 seotud WHITE kirje on

  • moodustatud Sat May 17 16:11:05 EEST 2008 (date -r 1211029865)
  • ... (date -r 1211029872)
  • aegub Sun Jun 22 16:29:09 EEST 2008 (date -r 1214141349)

WHITE kirjeid saab käsitsi lisada käsuga

 # spamdb -a ip.aa.dre.ss

ning eemaldada käsuga

 # spamdb -d ip.aa.dre.ss

spamd deemoni kasutamine

spamd deemoni kasutamiseks tuleb deemon käivitada käsuga

 # /usr/libexec/spamd -v -l 127.0.0.1

ning seadistada sobivalt paketifilter, näiteks sellise kahe reegli kasutamisega

 rdr on $ext_if inet proto tcp from <spamd-white> to 192.168.1.1 port 25 tag SPAMD -> $posti_server
 rdr pass inet proto tcp to 192.168.1.1 port 25 -> 127.0.0.1 port 8025

spamlogd deemoni kasutamine

Käivitada käsuga

 # /usr/libexec/spamlogd -v -l pflog1

Peibutisaadressi kasutamine

...

Kui internetist saabub kiri, siis paketifilter otsustab tabeli <spamd-white> alusel, kas väljast saabuv vastav ühendus suunata edasi MTA'le (nt Postfixile) või spamd programmile. Süsteemi töö käigus koguneb <spamd-white> tabelisse internetis asuvate postimasinate aadresse, mida kõnealune süsteem usaldab selles mõttes, et nad ei tegele rämpsposti saatmisega.

  1. kui paketifilter suunab ühenduse MTA'le, siis SMTP andmevahetuse jaoks ei erine kogu toimuv praktiliselt juhtumist kus Spamd tarkvara puuduks, toimub tavaline SMTP andmevahetus.


kui pöördunud postimasina ip aadressi ei ole <spamd-white> tabelis, siis suunab paketifilter ühenduse

Spamd tarkvara koosneb kolmest programmist, millest kesksel kohal on deemonina töötab spamd. spamd kuulab tavaliselt localhost:8025 pordil kuhu paketifiltri abil suunatakse väljast tulevaid SMTP ühendused. spamd ülesanne on ühendus vastu võtta ning sõltuvalt ühendusest sooritada

 * spamd deemon - kuulab 

Kui spamd

Spamd tegeleb rämpspostiga saatja ip aadressi täpsusega, st kui on tehtud kindlaks, et ip aadressilt on saabunud rämpsposts, siis saab spamd abil seejärel teatud avavahemiku (tavaliselt üks ööpäev) jooksul takistada kõigi seal aadressilt s Spamd sisaldab väikest komplekti programme, mis koostöös OpenBSD PF paketifiltriga töötab postisüsteemi MTA (nt Postfix) komponendi ees ning segab spämmi saatjate tegevust.