OpenBSD spamd tarkvara kasutamine

Allikas: Kuutõrvaja
Redaktsioon seisuga 18. mai 2008, kell 00:04 kasutajalt Imre (arutelu | kaastöö) (spamd deemoni kasutamine)

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ö õige posti hulka. 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 avastatakse enne, kui postisüsteem kirja nö tervikuna vastu võtab ja seejuures võtab kirjaga edasi toimetamise eest vastutuse endale. Spamd ei analüüsi absoluutselt posti sisu, vaid toetub asjaolule, et reeglina rämpsposti saatja proovib kirja saata ainult üks kord samal ajal kui nö õiget posti püütakse saata peale ajutise veateate saamist korduvalt mitme tunni jooksul.

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, 172.16.1.17
     |   |                      
     |   |------------------|----
     |___|                  |
       |                   _|_  MTA (Postfix), Cyrus, 10.0.100.12
       |                  |   |
       |                  |___|
       |
       |
     --|---------|-------------|---------------
                 |             |
                _|_           _|_  töökohaarvuti, 192.168.100.12
               |   |         |   | 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.

Kirjeldatud ajutiste veateadete kasutamise tehnika rämpsposti takistamiseks võeti kasutusele 2003 aastal ja tundub uskumatu, et veel viis aastat hiljem 2008 aastal töötab see väga efektiivselt, aga nii see on. Ilmselt on põhjuseks asjaolu, et vaatamata sellele õnnestub rämpspostitajatel piisavalt posti ära saata.

/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
    • HELO väärtus
    • ümbriku from aadress
    • ümbriku to aadress
    • kirje registreerimise aeg
    • kirje tööle hakkamise aeg - registreerimise aeg + 25 minutit
    • kirje kehtivus lõpp - registreerimise aeg + 4 tundi, sel ajal eemaldatakse GREY kirje /var/db/spamd andmebaasist
  • 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
    • kirje tekitamise aega
    •  ?
    • krije kehtivuse lõpp - registreerimise aeg + 36 päev, siis eemaldatakse WHITE kirje /var/db/spamd andmebaasist
  • 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

Samal ajal saab jälgida paketifiltri <spamd-white> tabeli sisu öeldes

 # pfctl -t spamd-white -T show

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 172.16.1.17 port 25 tag SPAMD -> 10.0.100.12
 rdr pass inet proto tcp to 172.16.1.17 port 25 -> 127.0.0.1 port 8025

Selleks, et spamd arvuti alglaadimise ajal kävituks tuleb faili /etc/rc.conf.local lisada rida

 spamd_flags="-l 127.0.0.1 -v"

spamlogd deemoni kasutamine

Käivitada käsuga

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

Peibutisaadressi kasutamine

Üks teravmeelne taktika rämpspostitavaid ip aadresse vahele võtta on sättida oma veebikoha lähteteksti sisse spetsiaalne peibutisaadress, nt rampsposti.loks@loomaaed.tartu.ee, mida veebiküljastaja brauseriga niisama ei näe, kuid mille tõenäoliselt rämpspostirobotid avastavad. Kui see aadress lisada /var/db/spamd andmebaasi SPAMTRAP (ingl. k. rämpspostilõks) kirjena käsuga

 # spamdb -T -a rampsposti.loks@loomaaed.tartu.ee

siis sellele aadressi kirja saata püüdvad ip aadressid lisatakse /var/db/spamd andmebaasi TRAPPED (ingl. k. lõksupüütud) kirjetena. TRAPPED kirje eemaldatakse andmebaasist automaatselt 24 tunni pärast.

/etc/mail/spamd.alloweddomains

Kui moodusta eposti aadresse sisaldav fail, rea kohta aadress või aadressi osa

 # cat /etc/mail/spamd.alloweddomains
 mart@loomaaed.tartu.ee
 priit@loomaaed.tartu.ee

siis lisatakse kõigi ip aadressidega seotud TRAPPED kirjed /var/db/spamd andmebaasi, mis püüavad saata kirja mõnele aadressile, mida selles failis kirjas pole.

Tõrvatünnimine

Logi ja statistika

Vaikimisi salvestatakse logi faili /var/log/daemon.