Hrvatska akademska i istraživačka mreža
  NASLOVNICA MAPA WEBA TRAŽILICA KONTAKTI CARNET WEB
Hrvatska akademska i istraživačka mreža
 
menu 4
Sigurnost
menu 4
Distribucija
menu 4
Pomoć
menu 4
Dokumenti
menu 4
menu 4

 

 

4-05-04 15:12
Spamassassin - postavljanje i uporaba

piše SLOBODAN MILNOVIĆ

U ovom članku opisat ću način postavljanja spamassassina. Pri tome,

ograničit ću se na [1] Debian GNU/Linux distribuciju, koja se koristi

na svim CARNet i SRCE serverima, no razlike u odnosu na druge

distribucije su minorne i svode se na drukčije paketne sustave za

postavljanje programa na računalo, kao i na eventualni drugačiji

raspored datoteka na datotečnom sustavu, no način postavljanja

parametara je isti. Ujedno, spamassassin nije ograničen samo na

GNU/Linux kao i na ostale Unix bazirane operacijske sustave, već

postoji i inačica za Microsoft Windows. Za detalje pogledajte

[2]. S obzirom da CARNet serveri koriste sendmail [3] kao MTA (Mail

Transport Agent), u daljnjem tekstu ću prikazati kombinaciju

spamassassina, procmaila [4] i sendmaila, dok za druge MTA

dokumentaciju možete naći na spamassassin web stranicama.

 

Ujedno, odgovore na često postavljena pitanja možete pronaći u

spamassassin wikipedii [5].

 

 

 

 

Sadržaj:

 

1. Uvod

 

2. Instalacija

 

3. Prilagođavanje postavki spamassassina

3.1. Svaki korisnik samostalno provjerava e-mail poruke

3.2. Server provjerava poruke za sve korisnike

 

4. Podučavanje spamassassina u prepoznavanju spama i hama

4.1. Svaki korisnik ima svoju definiciju spama i hama

4.2. Server ima definiciju spama i hama za sve korisnike

 

5. Korišteni pojmovi

 

6. Dodatne informacije

 

 

 

 

1. Uvod

 

Što je spamassasin? Kao što je navedeno na početnim web stranicama

[2], spamassassin je mail filter koji prepoznaje spam.

 

Da li nam je takvo nešto uopće potrebno? Da. Po zadnjim

istraživanjima, spam e-mail poruke trenutno su više od 50% svih e-mail

poruka koje se šalju. S tim da se udjel spama u e-mail porukama

povećava. Alati za otkrivanje i uklanjanje spam poruka već duže

vrijeme nisu pomodna stvar, već potreba, želimo li da naš sustav, kao

i naši korisnici, efikasno koriste raspoložive resurse. Zbog toga

potrebno je koristiti nešto što bi nam barem olakšalo, ako već ne u

potpunosti, označavanje spam e-mail poruka kao takvih, te uklanjanje

istih sa sustava.

 

Spamassassin sam po sebi nije 100% zaštita od spama, no uz

odgovarajuće postavljanje parametara rada, možemo računati na 80% -

90% efikasnost u otkrivanju spam poruka kao takvih. Kombinacijom alata

za uklanjanje spama i alata za uklanjanje virusa, osigurali smo našim

korisnicima siguran i miran rad pri korištenju Internet resursa i

usluga.

 

Kako spamassassin otkriva spam? Postoji nekoliko podsustava koje

spamassassin koristi da bi napravio razliku između spama i korisnih

e-mail poruka (onih koje želimo primiti).

 

* Header tests

Provjera zaglavlja poruke - kod nekih poruka se već po zaglavlju

poruke može prepoznati radi li se o spamu ili ne.

 

* Body phrase tests

Tijela poruke (dio poruke u kojemu se nalazi sam sadržaj poruke) u

sebi mogu sadržavati neke izraze tipične za spam. Npr, ako se u

poruci nalaze izrazi "viagra" "drug" i slične, vrlo vjerojatno se

radi o spam porukama.

 

* Bayesian filtering

Ovo je napredni način analiziranja poruke, pri čemu se koriste

statističke analize sadržaja [6] [7].

 

* Automatic address whitelist/blacklist

Spamassassin može samostalno kreirati popis poželjnih (whitelist) i

nepoželjnih (blacklist) e-mail adresa s kojih nam dolazi poruka.

 

* Manual address whitelist/blacklist

Možemo i sami kreirati popis poželjnih i nepoželjnih e-mail adresa.

 

* Collaborative spam identification databases (DCC, Pyzor, Razor2).

Način provjere poruke tako da spamassassin kontaktira on-line baze s

popisom spam poruka.

 

* RBL (Realtime Blackhole Lists)

Stvaranje popisa nepoželjnih poruka u stvarnom vremenu (istovremeno

dok spamassassin radi, bilježi koje su poruke u redu a koje nisu) na

osnovu IP adresa servera s kojih je došla poruka. Ovisno o broju spam

poruka koje su došle s pojedine adrese, svaka e-mail poruka se

procjenjuje i na osnovu toga.

 

* Character sets and locales

Analiza poruka na osnovu toga koji znakovi se pojavljuju u

poruci. Npr. velika je vjerojatnost da primatelj u Europi ne koristi

Kineske, Korejske i slične znakove, te tako možemo procijeniti da li

je poruka možda spam.

 

Kombinacijom ovih različitih načina otkrivanja spama, spamassassin je

u stanju ispravno prepoznati većinu poruka. Osim toga, spamassassin

može učiti što je spam a što nije, i na taj način možemo postići skoro

100% točnost prepoznavanja poruke.

 

 

 

 

2. Instalacija

 

Za instalaciju na Debian GNU/Linux, potrebno nam je dovoljno prostora

na diskovima, kao i neka od novijih inačica Debiana, minimalno inačica

3, poznata još i pod nazivom Debian Woody. Instalacija je moguća i na

starije inačice ove distribucije, no u tom slučaju nećemo biti u

mogućnosti koristiti zadnju inačicu spamassassina. Postoji i

izmjenjena inačica spamassassina koja se koristi u sklopu CARNet

ustanova, a prilagođena je za njih. U daljnjem tekstu opisat ću upravo

tu inačicu.

 

Sam postupak instalacije je vrlo jednostavan. U komandnom retku

(prompt), treba unijeti slijedeću naredbu:

 

apt-get install spamassassin-cn

 

Debian instalacijski sustav će nam javiti ako su mu potrebni dodatni

programi za ispravan rad spamassassina, tako da trebamo potvrditi

skidanje i postavljanje istih. Spamassassin će se automatski pokrenuti

i početi s radom, a mi možemo nakon toga prilagoditi postavke

vlastitim potrebama.

 

Vrlo je vjerojatno da je spamassassin-cn paket već instaliran na

sustav ako se radi o e-mail serveru, jer u sklopu amavis-cn paketa

(takozvani backend sustav, svaki e-mail se prosljeđuje antispam i

antivirus programima, na osnovu čega amavis zaključuje što će učiniti

s pojedinim e-mailom)

 

U slučaju da procmail program nije postavljen na sustavu, učinit ćemo

to sa

 

apt-get install procmail

 

 

 

 

3. Prilagođavanje postavki spamassassina [8]

 

Spamassassin može raditi u dva načina rada.

 

- Svaki korisnik sam pokreće filtriranje e-mail poruka

 

Prednost: Što je spam za jednog korisnika, nije i za drugog,

neki korisnici možda ne žele napraviti filtriranje poruka,

svaki korisnik posjeduje vlastitu definiciju spama i hama.

 

Mana: Opterećenje sustava u slučaju većeg broja korisnika,

otežano održavanje spam i ham definicija.

 

- Svaki e-mail se provjerava na razini operacijskog sustava

 

Prednost: Postoji samo jedna definicija spama i hama, koju je znatno

lakše održavati.

 

Mana: Nismo nikad sigurni da li je e-mail dobro filtriran za svakog

korisnika. Ovo se može ispraviti do određene granice.

 

 

Nakon što odlučimo koja varijanta nama više odgovara, možemo krenuti s

konfiguracijom.

 

 

 

 

3.1. Svaki korisnik samostalno provjerava e-mail poruke

 

Ovo je standardna postavka spamassassin-cn paketa nakon postavljanja

na sustav.

 

Kao dotični korisnik, treba unijeti slijedeće naredbe u prompt:

 

cd ~

mkdir .procmail

touch .procmail/proclog

mkdir Mail

touch Mail/mbox

touch .procmailrc

 

Ako korisnik čita e-mail putem POP3 protokola, u .procmailrc datoteku

(s nekim tekst editorom) treba unijeti slijedeće:

 

# --- početak .procmailrc datoteke ---

 

SHELL=/bin/sh

PATH=/bin:/usr/bin

PMDIR=$HOME/.procmail

LOGABSTRACT=all

MAILDIR=$HOME/Mail

LOGFILE=$PMDIR/proclog

VERBOSE=off

 

#Spamassassin start

:0fw

| /usr/bin/spamc

#Spamassassin end

 

# --- kraj .procmailrc datoteke ---

 

Procmail prosljeđuje e-mail poruke spamassassinu, koji provjerava

poruke, i zatim, s dodanim zaglavljima (headerima) označava da li je

poruka spam ili ne, nakon čega se poruka prosljeđuje korisniku. Na

osnovu tih dodanih zaglavlja, korisnik može filtrirati poruku

koristeći svoj program za e-mail, nakon što ju skine sa servera.

 

Ako korisnik čita e-mail direktno na tom serveru (koristeći npr. pine

ili mutt), ili putem IMAP protokola, u .procmailrc treba umjesto

gornjeg primjera unijeti slijedeći:

 

# --- početak .procmailrc datoteke

 

SHELL=/bin/sh

PATH=/bin:/usr/bin

PMDIR=$HOME/.procmail

LOGABSTRACT=all

MAILDIR=$HOME/Mail

LOGFILE=$PMDIR/proclog

VERBOSE=off

DEFAULT=$MAILDIR/mbox

 

 

#Spamassassin start

:0fw

| /usr/bin/spamc

 

:0:

* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*

spam10

 

:0:

* ^X-Spam-Status: Yes

spam5-10

 

#Spamassassin end

 

# --- kraj .procmailrc datoteke ---

 

Procmail će filtrirati e-mail poruke ovisno o parametrima koje smo mu

stavili.

 

U slučaju da je e-mail spam, spamassassin će ga označiti tako da će u

zaglavlje poruke ubaciti

 

X-Spam-Status: Yes

 

To vrijedi za sve poruke kojima spamassassin dodjeli rezultat 5.0 ili

veći, jer su takve poruke vjerojatno spam. Osim toga, spamassassin će

staviti i zaglavlje

 

X-Spam-Level: *******

 

gdje će broj zvjezdica biti onoliki koliki je cjelobrojni rezultat za

pojedinu poruku. Npr, za rezultat 7.5, bit će 7 zvjezdica.

 

U ovom primjeru, sve što ima X-Spam-Level jednak ili veći 10 gotovo

sigurno je spam, i prosljeđujemo ga u datoteku spam10, koju možemo

kasnije provjeravati. Sve ostalo, što je između 5.0 i 9.9 ide u

spam5-10 datoteku, koju bi trebalo češće provjeravati da li sadrži

spam ili ne, jer postoji mogućnost da poruke označene kao spam to ipak

nisu.

 

 

 

 

3.2. Server provjerava poruke za sve korisnike

 

U /etc/procmailrc treba dodati ove retke:

 

DROPPRIVS=yes

 

:0fw

| /usr/bin/spamc

 

i u .procmailrc od svakog korisnika treba maknuti ":0fw" i

"| /usr/bin/spamc" retke iz $HOME poddirektorija svakog korisnika.

 

Na taj način poruka neće nepotrebno prolaziti više od jednom kroz

spamassassin provjeru.

 

Za detalje o postavljanju i korištenju procmail alata, pogledajte

[4].

 

 

 

4. Podučavanje spamassassina

 

Nažalost, autori alata za slanje spama su svjesni postojanja raznih

antispam alata, tako da je sve teže prepoznati što je ispravan email a

što spam. U poruku dodaju čudne znakove, mjenjaju raspored slova i

slično.

 

Zbog toga moramo podučiti spamassassina da razlikuje nove varijante

spama. To postižemo sa programom sa-learn, kojemu prosljedimo poruku

kao spam ili ham, nakon čega taj program obavi analizu te poruke i

zapiše u datoteke sa definicijom spama i hama.

 

sa-learn --ham --local ime_datoteke_koja_sadrži_email

 

će naučiti spamassassin da je sadržaj datoteke (s tim da je datoteka u

standardnom mailbox formatu) ham odnosno dobra poruka a

 

sa-learn --spam --local ime_datoteke_koja_sadrži_email

 

će naučiti spamassassin da je sadržaj datoteke spam. Opcije --ham i

--spam označavaju sa-learn programu o kakvom se sadržaju radi, a sa

--local onemogućujemo mrežni rad (ugađati će se samo lokalne

definicije).

 

Za detalje možete pogledati

 

man 1p sa-learn

 

 

 

 

4.1. Svaki korisnik ima svoju definiciju spama i hama

 

U slučaju da je server postavljen kao u 3.1. gdje svaki korisnik ima

pokrenuto vlastito filtriranje, definicije spama i hama se nalaze u

$HOME poddirektoriju pojedinog korisnika

 

$HOME/.spamassassin/

 

i to datoteke sa ham definicijama

 

auto-whitelist*

 

i datoteke sa spam definicijama

 

bayes*

 

tako da za svaki sumnjivi e-mail korisnik mora pokrenuti sa-learn

program, kako je i navedeno u 4. odjeljku.

 

 

 

 

4.2. Server ima definiciju spama i hama za sve korisnike

 

Ova inačica postavki omogućava centralni nadzor nad protokom e-mail

poruka.

 

Omogućit ćemo autoriziranom korisniku da nakon primitka e-mail poruke

(a pod uvjetom da je spamassassin krivo označio tu poruku), proslijedi

spamassassinu da li je u pitanju spam ili ham, i na taj način ćemo

podučiti spamassassin da više ne čini istu grešku.

 

Kreirajmo korisnički račun koji će sadržavati definicije spama i

hama. U komandnom retku unesimo slijedeće:

 

adduser sharedspam

mkdir /home/sharedspam/.spamassassin/

chmod 755 /home/sharedspam

chmod 777 /home/sharedspam/.spamassassin/

touch /home/sharedspam/.spamassassin/user_prefs

chmod 644 /home/sharedspam/.spamassassin/user_prefs

touch /home/sharedspam/.spamassassin/auto-whitelist

chmod 666 /home/sharedspam/.spamassassin/auto-whitelist

 

U /etc/spamassassin/local.rc datoteci dodajmo slijedeće retke (ili ih

promjenimo ako već postoje):

 

# --- početak local.rc datoteke ---

 

bayes_path /home/sharedspam/.spamassassin/bayes

auto_whitelist_path /home/sharedspam/.spamassassin/auto-whitelist

bayes_file_mode 777

auto_whitelist_file_mode 777

use_bayes 1

auto_learn 1

bayes_ignore_header ReSent-Date

bayes_ignore_header ReSent-From

bayes_ignore_header ReSent-Message-ID

bayes_ignore_header ReSent-Subject

bayes_ignore_header ReSent-To

bayes_ignore_header Resent-Date

bayes_ignore_header Resent-From

bayes_ignore_header Resent-Message-ID

bayes_ignore_header Resent-Subject

bayes_ignore_header Resent-To

 

# --- kraj local.rc datoteke ---

 

Redovi "bayes_ignore_header" govore bayes filteru da ignorira

zaglavlja koja generiraju MUA (Mail User Agent) programi korisnika

koji šalju spamassassinu e-mail poruke sa spam ili ham sadržajem, radi

učenja spamassassina.

 

Nakon unosa promjena u local.cf, treba ponovno pokrenuti spamassassin

sa

 

/etc/init.d/spamassassin restart

 

 

Dodajmo korisničke račune na koje će se slati spam i ham poruke, radi

učenja spamassassina. U komandnom retku unesimo slijedeće:

 

adduser spamtrap

cd /home/spamtrap

ln -sf ../sharedspam/.spamassassin .spamassassin

mkdir Mail .procmail

chown spamtrap.spamtrap Mail .procmail

adduser hamtrap

cd /home/hamtrap

ln -sf ../sharedspam/.spamassassin .spamassassin

mkdir Mail .procmail

chown hamtrap.hamtrap Mail .procmail

 

Ovo ćemo staviti u /home/spamtrap/.procmailrc

 

# --- početak .procmailrc datoteke ---

 

SHELL=/bin/sh

PATH=/bin:/usr/bin

PMDIR=$HOME/.procmail

LOGABSTRACT=all

MAILDIR=$HOME/Mail

LOGFILE=$PMDIR/proclog

VERBOSE=off

 

#Spamassassin start

 

:0

* > 256000

toobigtoreport

 

:0c: spamassassin.lock

| /usr/bin/spamassassin -r -d -a

 

:0:

learned-spam

 

#Spamassassin end

 

# --- kraj .procmailrc datoteke ---

 

Ovo ćemo staviti u /home/hamtrap/.procmailrc

 

# --- početak .procmailrc datoteke ---

 

SHELL=/bin/sh

PATH=/bin:/usr/bin

PMDIR=$HOME/.procmail

LOGABSTRACT=all

MAILDIR=$HOME/Mail #you'd better make sure it exists

LOGFILE=$PMDIR/proclog #recommended

VERBOSE=off

 

#Spamassassin start

 

:0

* > 256000

toobigtoreport

 

:0c: spamassassin.lock

| /usr/bin/sa-learn --ham --local

 

#:0:

#learned-ham

 

#Spamassassin end

 

# --- kraj .procmailrc datoteke ---

 

Postoje dvije glavne razlike između ove dvije .procmailrc datoteke:

 

| /usr/bin/spamassassin -r -d -a

 

naspram

 

| /usr/bin/sa-learn --ham --single --local

 

Kad netko od naših korisnika prijavi spam, spamassassin -r će učiniti

sve što bi htjeli da učini - poslat će potpise poruka online bazama

spama Razor, Pyzor i DCC (ako smo postavili neki od njih), i obnovit

će sadržaj lokalnih definicija. No, ako korisnik pošalje ham, ne

želimo da privatni e-mail ode van servera, i zato ćemo koristiti

sa-learn, koji će osvježiti sadržaj samo lokalnih definicija.

 

learned-spam

 

naspram

 

#learned-ham

 

Nakon što smo proslijedili spam u lokalne i udaljene (remote) baze,

spremit ćemo kopije spam poruka (datoteka learned-spam), jer bi

kasnije popis tih spam poruka mogli poslati na Spamarchive [9]. Na taj

način možemo pomoći ljudima koji razvijaju antispam programe. No

čuvanje ispravnih poruka (datoteka learned-ham) ne bi bilo u redu

(osim ako sigurnosna politika organizacije to eksplicitno ne nalaže),

a korisnici bi mogli poslati poruke koje ne bi smjele napustiti

organizaciju u kojoj se nalaze.

 

Nakon što to postavimo, treba naložiti korisnicima da e-mail poruke

bouncaju (NE forward) na odgovarajuće korisničke račune -

spamtrap@mojadomena.negdje za spam poruke i hamtrap@mojadomena.negdje

za ham poruke. Za početak, bilo bi zgodno primiti barem po 1000 spam i

ham poruka, da spamassassin može izgenerirati dovoljno precizne

definicije poruka.

 

Ako korisnici naprave forward poruke, sa-learn će zapamtiti e-mail

adresu korisnika koji šalje a ne originalnu od spamera, što može

prouzročiti probleme. Korisnici moraju napraviti bounce poruke a ne

forward.

 

Radi sigurnosti, možemo posložiti spamtrap i hamtrap kao moderirane

mail liste, na koje će moći slati samo pojedini korisnici, i to točno

određene sadržaje, tako da na spamtrap zbilja završi samo spam a na

hamtrap zbilja samo ham.

 

 

 

 

5. Korišteni pojmovi

 

procmail - alat za obradu i preslagivanje e-mail poruka [4]

 

spam - neželjene e-mail poruke koje nam šalju (između ostalog) razni

oglašivači, no to mogu biti poruke koje nas žele prevariti da

pošiljateljima poruka omogućimo pristup do npr. bankovnih računa.

 

ham - e-mail poruke koje želimo primiti, sa sadržajem koji je za nas

bitan i/ili koristan.

 

MTA - Mail Transport Agent - program ili skup programa zaduženi za

prijenos pojedinih e-mail poruka između dva ili više e-mail servera,

npr. sendmail, postfix, qmail.

 

MUA - Mail User Agent - program za primanje, čitanje i slanje e-mail

poruka, Npr. pine, mutt, outlook.

 

 

 

 

6. Dodatne informacije

 

[1] Debian GNU/Linux distribucija

http://www.debian.org

 

[2] Početne stranice spamassassin alata:

http://www.spamassassin.org

 

[3] Sendmail

http://www.sendmail.org

 

[4] Procmail

http://www.procmail.org

 

[5] Spamassassin wikipedia (često postavljena pitanja o spamassassinu)

http://wiki.apache.org/spamassassin/

 

[6] Uvod u bayesian filtering

http://www.gfi.com/mes/wpbayesian.htm

 

[7] Tehnički opis i primjer rada bayesian filtering

http://www.paulgraham.com/spam.html

 

[8] Za ovaj članak korišten je između ostalog i slijedeći original

http://www.stearns.org/doc/spamassassin-setup.current.html

 

[9] Online arhiva spam poruka (jedna od mnogih)

http://www.spamarchive.org

 





[Lista]
Ovu uslugu CARNeta realizira Sveučilišni računski centar Sveučilišta u Zagrebu
  Copyright ©2005. CARNet. Sva prava zadržana. Impressum.
Mail to
sys-portal@CARNet.hr