Skip to end of metadata
Go to start of metadata

5.2.8. Spam és vírus szűrés

A spam és a levélben érkező vírusok korunk rákfenéi... védekeznünk kell ellenük, klónozzuk a template fájlrendszer, legyen az új jail neve mailscanner, állítsuk be a megszokott módon, hozzunk létre neki adatokat hordozó fájlrendszer, amelyet csatoljunk fel a /data alá, adjuk hozzá a DNS-hez a címeit, majd indítsuk el.

Hasonlóan, mint a mail jail esetén tettük, tiltsuk le a Sendmail futását, és telepítsünk fel egy postfix programot, amelynek egyetlen feladat a levelek fogadása lesz. A konfiguráció is egyszerű lesz, mindössze annyit mondunk meg, hogy mi a neve a kiszolgálónak, s honnan fogadunk leveleket, illetve hova küldjük tovább:

/usr/local/etc/postfix/main.cf

Ne feledjük a /etc/rc.conf fájlban felvenni a _postfix_indítását:

/etc/rc.conf

S másoljuk át a postfix könyvtárát a megadott helyre:

Parancssor

Ezek után már el is indíthatjuk a szolgáltatást.

5.2.8.1. Postgrey – a szürke zóna

A spam elleni védekezés első védelmi vonala már akkor hatásos, amikor a spam még be se érkezett. A postgrey program egyszerűen késlelteti a levelek beérkezését, feltételezve, hogy a legális levelező partnerek szervere kis idő után újra megpróbálja kézbesíteni a levelet. A postgrey ekkor már beengedi a levelet, amelyet a mögötte lévő spam szűrő még megvizsgál. Ha újra levelet kapunk egy olyan helyről, amelyet a postgrey már átengedett, akkor nincs késlekedés, ugyanis a postgrey letárolja a küldő gép IP címét, a küldő email címét és a helyi címzettet (ez a triplet). Telepítsük fel a programot, majd elindításához az /etc/rc.conf állományába fel kell vennünk az alábbit:

/etc/rc.conf

Mielőtt elindítanánk a programot, mozgassuk át az általunk megadott helyre az adatait:

Parancssor

A szolgáltatás indítása után a megfelelő logban az alábbit kell látnunk:

/bpool/jails/v7.1.0/logserver/data/192.168.2.9-2009-01/mail.2009-01-18

Most már csak a mail jail-ben futó postfix-et kell erről értesítenünk, a meglévő smtpd_recipient_restrictions sort kell kiegészítenünk:

/usr/local/etc/postfix/main.cf

A jail újraindítása után próbáljunk meg levelet küldeni saját gépünkről a szerverre:

Parancssor

Mint látható, meg se várja a levél törzsét a megoldás, már visszadobja, hogy greylisted. Mivel az alapértelmezett üzenet túlságosan árulkodó, ezért célszerű kicserélni valami olyanra, ami gyakori lehet, de mégis a levél üzemszerű újraküldésére ingerli a küldő szerverét (a 450-es hibakód átmeneti hibát jelez, ilyen esetben a küldő szervernek kötelessége többször is próbálkozni).

A postgrey 5 perc után engedi be a próbálkozókat, így ha eltelt ennyi idő, próbáljuk újra a levélküldést:

Parancssor

5.2.8.2. A spam szűrő

Az egyik legrugalmasabb spam (és vírus) szűrő az amavisd-new, bár kissé lassú, mivel az egész egy nagy halom perl scriptből áll, s rengeteg más programtól függ, és még víruskereső is kell neki. Telepítsük fel az amavisd-new és a clamav csomagot, majd lássunk neki a beállításnak.

Az amavisd-new részéről a beállítások nagyjából rendben vannak, pár dolgot kell máshova tenni, illetve az összes localhost vagy 127.0.0.1 hivatkozást cseréljük le a mailscanner jail nevére címére:

/usr/local/etc/amavisd.conf

Keressük meg a ClamAV bejegyzését, és szedjük ki a komment jeleket:

/usr/local/etc/amavisd.conf

Ezek után a fenti beállításnak megfelelően mozgassuk át az általunk megadott helyre a virusmails könyvtárat, mivel ez a végtelenségig fog nőni, többször törölni kell majd belőle, s jobb ezt olyan fájlrendszeren tartani, amit erre a célra hoztunk létre:

Parancssor

A clamd is mindent jól tud alapértelmezésben, de állítsuk be neki, hogy a syslog-ng-n át loggoljon, illetve adjuk meg neki is, hogy a /data alá hozza létre az állományait:

/usr/local/etc/clamd.conf

Ugyanezt tegyük meg a frissítést végző freshclam konfiggal is:

/usr/local/etc/freshclam.conf

Adjuk hozzá a /etc/rc.conf fájlhoz az amavisd és a clamav indítását is:

/etc/rc.conf

Mozgassuk át az adatbázist az új helyre:

Parancssor

Majd adjuk hozzá a clamav felhasználót a vscan csoporthoz.

Parancssor

Ezek után kissé módosítanunk kell a mail jail postifx master.cf állományát:

/usr/local/etc/postfix/master.cf

Az SMTPS protokollhoz nem teszünk szűrést, hiszen itt még nem valószínű, hogy spam jönne... még... Smile

Az egész konfig sorozat után indítsuk újra a jail-t, majd nézzük meg, működik-e:

Parancssor

Nézzük meg, mi került a naplóba végére:

/bpool/jails/v7.1.0/logserver/data/192.168.2.4-2009-01/mail.2009-01-18

Ebből nem derül ki sokminden, nézzük meg a mailscanner logot is:

/bpool/jails/v7.1.0/logserver/data/192.168.2.9-2009-01/mail.2009-01-18

Hát... elkapta. Smile

5.2.8.3. A vírus szűrő

A spamek szűrésével már működik is a vírusok szűrése is, ezt nehezebb kipróbálni, valószínűleg működik is, bár az ingyenes clamav teszi a dolgát, ha nem bízunk meg benne, akkor fel kell szerelkeznünk egy olyan víruskeresővel, amely fut FreeBSD alatt, az amavisd-new is ismeri, és mindezen túl meg is bízunk benne... nem is olyan rossz az a clamav... Smile

5.2.8.4. A tanítás

A spam szűrőt érdemes tanítani, ennek legkényelmesebb módja az, ha erre rendszeresítünk kettő email címet:

  • spam@spam.javaforum.hu, amelyre az átcsúszott spam leveleket továbbíthatjuk
  • ham@spam.javaforum.hu, amelyre az elkapott, de nem spam leveleket továbbítjuk

A feladathoz kell írnunk egy rövid C programot, amely elindítja a SpamAssassin tanuló programját:

sa-wrapper.c

A hivatkozott fájl egy perl script, amelyre nem tudunk suid bitet tenni, de a sa-wrapper programra igen, mégpedig a tanulásnak vscan felhasználóként kell futnia, de a postfix fogja végrehajtani:

Parancssor

A végrehajtáshoz annyi kell, hogy a /etc/aliases végére írjuk:

/etc/aliases

Ezek után generáljuk újra az adatbázist:

Parancssor

Az átirányításhoz a mail jail-ben futó postfix is kell, hiszen ő kezeli az összes bejövő levelet. A main.cf végére vegyük fel:

/usr/local/etc/postfix/main.cf

Ezen után módosítanunk kell a transport fájlt is:

/usr/local/etc/postfix/main.cf

Generáljunk egy adatbázist is, majd indítsuk újra a postfix szolgáltatást:

Parancssor

Előző fejezet Tartalomjegyzék Következő fejezet


Auth Gábor auth.gabor@javaforum.hu


Labels: