TWiki . Homokozó . NetworkshopSpamésVírusszűrésiMódszerekTapasztalatokaPPKEITKn

Networkshop: Spam és vírusszűrési módszerek, tapasztalatok a PPKE-ITK -n

Valószínű a wiki-t fogom az előadás foliáinak elkészítéséhez használni.

End Presentation


TWiki Slide Show   Spam és vírusszűrési módszerek, tapasztalatok a PPKE-ITK -n Next 




Csillag Tamás <cstamas@itk.ppke hu>

http://digitus.itk.ppke.hu/~cstamas

2005-03-23

First slide Previous Next Last slide  Slide 1 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Miért, szükséges ez? Next 

  • turkálnunk kell a leveleink közt
  • akár értékes levelet is veszthetünk így
  • becsaphatnak
  • értékes információkat csalhatnak ki tőlünk
  • vírusok, trójai programok települhetnek a gépünkre a tudtunk nélkül
    • melyek újabb vírusokat spameket küldhetnek szét a világba
    • legújabban pedig
      • phishing, social engineering, data mining típusú támadások
      • én egy ... vírus vagyok ... wink és a felhasználó megcsinálja!
Lépni kell!
  • spamek és vírusok hatékony mégis "óvatos" szűrési módja szükséges
    • nem spam spamként felismerése

First slide Previous Next Last slide  Slide 2 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Szűrés bevezetése a PPKE-ITK-n Next 

  • Mydoom alias Worm.SCO vírus elterjedése
    • a Windows-os rendszergazda nem győzte az iramot
    • az első pár nap alatt több mint 1000 Worm.SCO.A vírus szűrtünk ki
  • az előző vírusok végigjárták az összes desktop PC-t
    • volt rajtuk vírusirtó
  • szükségessé vált a levélszűrés
      • elsősorban a víruson volt a hangsúly
  • kihívások:
    • baj, ha megfog egy fontos levelet
    • baj, ha nem fogja meg a spam-t
    • ha működik, nincs visszajelzés
    • akkor van, ha nem működik
  • több szerveren is:
    • miután megfelelően működött bevezetésre került
      • JÁK szerverén
      • www.katolikus.hu -n

First slide Previous Next Last slide  Slide 3 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Milyen megoldást fogok ismertetni? Next 

First slide Previous Next Last slide  Slide 4 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Milyen megoldást fogok ismertetni? ... Next 

Megpróbálok más levelező rendszerek használóinak is ötleteket, ott alkalmazható módszereket bemutatni. A fenti felosztás nem kötött, az elemek többsége szabadon változtatható kicserélhető.

Az idő rövidsége miatt nem tudok a Postfix-szel teljes részletességgel foglalkozni!
Lásd a dokumentációt ! Lásd Kadlecsik József Postfix előadását: IPSZILON !

Röviden kitérek a fenti programok telepítési módjára, de elsősorban a bennük rejlő trükkökre, és saját ötletekre próbálok összpontosítani.

First slide Previous Next Last slide  Slide 5 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Jó tanácsok Next 

Rule #1: iratkozzunk fel a postfix-users@postfix.org -ra! Általánosítva: legyünk ott és figyeljünk a felhasználói listákon. (akár más hibájából tanulhatunk)
Ne féljünk kérdezni!

Rule #2: "Élőben" figyeljük a logfájlokat tail -f ... elősorban a 'mail.*' kategóriájú syslog üzeneteket! Érdemes ezeket szűrni vagy szinezni.
Jobban fogjuk érteni a programok működését. És a spammerek módszereit.

Rule #3: Ha Postfix-szel kisérletezünk, érdemes a soft_bounce = yes -t bekapcsolni. A Postfix main.cf fájlát tartsuk átláthatóan (kommenteket, üres sorokat tüntessük el!):

# wc -l /etc/postfix/main.cf
56 /etc/postfix/main.cf

Rule #4: A spamekben és a vírusokban küldő szinte mindig hamisított.
Sose küldjünk Ön vírust küldött tárgyú leveleket!

Bátorság!

First slide Previous Next Last slide  Slide 6 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Módszerek, hatékonyságuk Next 

Wietse Venema: "Don't rely on single solution to stop spam."

"A" megoldás nem létezik.

  • parkettaszerűen tudjuk az összes spamet lefogni
  • van amelyik kisebb/nagyobb darabot fog le

különböző szintek:

  • CPU, memóriaszükséglet
  • hány % -t szűri ki a leveleknek
  • hibás találatok (!)

A szűrési módszerek gyakran a hibás, szabványnak nem megfelelő működés miatt csípik el a spam-et. Ennek hátrányai:

  • ha nincs ilyen hiba, átcsúszik a szűrőn a szemét (fals negatív)
  • ha nem spam-elő elkövet ilyen hibát, fennakad a levele (fals pozitív)

First slide Previous Next Last slide  Slide 7 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Módszerek, hatékonyságuk ... Next 

  • IP szinten (csomagszűrő tűzfal)
    • esetleg ennél kicsit több (spamd)
  • SMTP szintje (kevésbé erőforrásigényes)
    • Postfix eszközei
      • Protokollbeli szabályok megkövetelése
    • relaydb (Postfix access tables)
    • greylisting
    • csak akkor hatékony ha közvetlenül beszélünk a spammerrel
  • Tartalom alapján szűrés (erőforrásigényes)
    • a levél tartalmát elemzik
      • meglepő (?), a vírusokra nagy hatékonysággal
      • spamek átcsúszhatnak
Érezzük a különbséget ?

First slide Previous Next Last slide  Slide 8 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Spammer stratégiák Next 

  1. Megvesznek egy jó hostingot 100x annyit fizetnek mint egy rendes ügyfél (megteszik!), véletlenszerű IP címeket kapnak és 1-2 hónapig, innnen küldik a Spam-et.
  2. Hibás hostokat, rosszul konfigurált gépeket keresnek, azokon keresztül küldik a spamet
    • Csak egyszer kell eljutattni a géphez utána ő több ezer címre is elküldheti
  3. Kimondottan csak Open Relayt keresnek, sőt vírusokat, exploitokat használva, más gépeket is nyitottá tesznek
    • Zombie Hosts (Mint a DDOS támadásoknál)

First slide Previous Next Last slide  Slide 9 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Postfix belső eszközei (teljesség igénye nélkül) Next 

  • smtpd_client_access
    • ellenőrizhetjük, hogy a IP címből feloldott PTR megfelelő A recordra oldódik-e fel
    • hogy szabványos-e a név (megnemengedett karakterek)
    • RBL listákat hívhatunk segítségül
  • smtpd_helo_restrictions
    • bizonyos (pl saját) neveket elutasíthatunk
    • ha érvénytelen karatert tartalmaz
    • ellenőrizhetjük, hogy a helo név DNS alapján feloldható-e
  • smtpd_sender_restrictions
    • az envelope from DNS neve feloldható-e
  • elvileg a megadott szinteken műdödnek, de (működnek)
    • mégsem! -- előnyösebb ha késleltetve
    • smtpd_delay_reject = yes (hibás kliensek miatt)
    • és további előnyök...

First slide Previous Next Last slide  Slide 10 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Postfix belső eszközei .... Next 

lookup táblákat (kulcs-érték párok) csinálhatunk

  • nézhetünk egyezést:
    • IPcímre
    • email címre
    • domain-re
    • DNS névre
  • visszaadott érték lehet:
    • OK (elfogadjuk)
    • REJECT (elutasít)
    • saját hibakódok (4XX, 5XX)
    • DISCARD (elfogad, de eldob)

First slide Previous Next Last slide  Slide 11 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Példa Next 

main.cf

smtpd_recipient_restrictions = permit_mynetworks,
                        reject_invalid_hostname,
                        reject_unknown_sender_domain,
                        check_client_access pcre:/etc/postfix/client_access.pcre,
                        reject_rbl_client combined.njabl.org,
                        reject_rbl_client sbl-xbl.spamhaus.org,
                        reject_unauth_destination,
                        check_helo_access pcre:/etc/postfix/helo_checks.pcre,
                        check_client_access hash:/etc/postfix/ip_whitelist,
                        check_client_access cdb:/etc/postfix/ip_blacklist,
                        reject_unlisted_recipient,
                        check_policy_service unix:private/policy

First slide Previous Next Last slide  Slide 12 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   RBL Next 

Használatuk előtt ismerkedjük az egyes RBL-kel!
Ki/miért kerül fel rá? hogyan kerülhet le?
Milyen technikai és elvi feltételei vannak a használtának? (pl. dns szerver-be betölthető, IP cím -lista)

  • RBL
  • ismert spammerek IP címei
    • pl. spamtrapek alapján
    • felhasználói bejelentés
  • dynamic IP ranges
    • felhasználói bejelentés, illetve a SWIP információi alapján
    • dial-up
    • ADSL
    • CATV (kábeltv)
  • Hibásan konfigurált szolgáltatások
    • Open-Proxy
      • SOCKS szerver
    • Open-Relay

First slide Previous Next Last slide  Slide 13 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   RBL (nálunk) Next 

  • Mi ezeket használjuk:
    • cbl.abuseat.org
      • Nagyon hatékony!
      • módszerük nem nyilvános
      • SpamTrap -ektől származó információk alapján
      • rsync-kel mindenkinek elérhető
      • a tűzfalba be van töltve
        • a spamd kapja meg ezekről a címekről jövő kéréseket
    • www.njabl.org
      • Not Just Another Bogus List
      • spamtrap
      • portscan Open Proxy-k után (bizonyos portok)
      • Open Relay Teszt
      • rsync hozzáférést lehet kérni
    • www.spamhaus.org
      • SBL: spam block list
        • Profi spam források ellen
      • XBL: exploit block list
        • feltört átjárók
        • vírusos gépek ellen
      • takarékos, mert megpróbálnak blokkba szervezve nagyobb tartományokat lefedni
      • szintén a tűzfalban

First slide Previous Next Last slide  Slide 14 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Spamd (OpenBSD) Next 

A tűzfalon fut:

  • CBL és sbl-xbl.spamhaus.org betöltve
  • a Windows {95, 98} operációs rendszerek is ide vannak irányítva
    • néha késztetést érzek, hogy ne csak erre a speciális változatra alkalmazzam
Egyetlen célja:
  • az agresszív spammerek feltartása, akadályozása
  • amellett hibaüzenetet ad vissza a küldőnek
Működési módja:
  • TCP fejléc variálásával arra kényszeríti a küldőt, hogy 1byte-os Payload-dal küldje a TCP csomagokat
  • minden válasza lasssssúúúúúú
    • minden karakter kiírása után 1mp-t vár
  • a egyszerű spam szoftverek fennakadnak rajta
    • sőt 5-10 perctől kezdve akár több órát is tölthetnek itt

First slide Previous Next Last slide  Slide 15 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Spamd (részlet a logfájlból) Next 

Mar 29 20:36:34 nemo spamd[4414]: 200.221.11.147: connected (2/2), lists: spamhaus
Mar 29 20:37:42 nemo spamd[4414]: (BLACK) 200.221.11.147: <aisha.arafat2@zipmail.com.br> -> <esztern@hcbc.hu>
Mar 29 20:40:06 nemo spamd[4414]: (BLACK) 200.221.11.147: <tonywilliams1@zipmail.com.br> -> <pasztor@ppke.hu>
Mar 29 20:40:37 nemo spamd[4414]: 200.221.11.147: disconnected after 386 seconds. lists: spamhaus
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: From: tonywilliams1@zipmail.com.br
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Subject: =?iso-8859-1?Q?DAER=20Pasztor=2CNOTIFICATION=20FROM=20AN=20ATTORNEY=2E?=
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: To: tonywilliams1@zipmail.com.br
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: FROM: CHIEF TONY WILLIAMS CHAMBERS,
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: SOLICITORS, ADVOCATE AND NOTARY PULIC
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: NO: 497 AWOLOWO ROAD IKOYI, LAGOS-NIGERIA
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: Dear Pasztor,
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: VERY URGENT AND CONFIDENTAIL.
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: I am Chief Tony Williams(SAN), a senior attorney in my chamber, I hereby
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: seek your consent to intimate you about the matter on my table to contact=
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: you as the next of in to my client, whon's name is Mr. Jack Pasztor, Who
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: worked with Ondo Oil Company. On the 21st of April 2002,my client was inv=
Mar 29 20:41:49 nemo spamd[4414]: 200.221.11.147: Body: olved
Mar 29 20:43:00 nemo spamd[4414]: 200.221.11.147: disconnected after 386 seconds. lists: spamhaus

First slide Previous Next Last slide  Slide 16 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Spamd (mégegy) Next 

Mar 29 16:40:49 nemo spamd[4414]: 62.112.222.60: connected (2/1), lists: cbl
Mar 29 16:43:26 nemo spamd[4414]: 62.112.222.60: connected (3/2), lists: cbl
Mar 29 16:44:19 nemo spamd[4414]: (BLACK) 62.112.222.60: <tybysu@v240.bkae.hu> -> <vigilia@hcbc.hu>
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: From: tybysu@v240.bkae.hu
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: To: vigilia@hcbc.hu
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Subject: Mail Delivery (failure vigilia@hcbc.hu)
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: This is a multi-part message in MIME format.
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: ------=_NextPart_000_001B_01C0CA80.6B015D10
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: Content-Type: multipart/alternative;
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body:  boundary="----=_NextPart_001_001C_01C0CA80.6B015D10"
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: ------=_NextPart_001_001C_01C0CA80.6B015D10
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: Content-Type: text/plain;
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body:  charset="iso-8859-1"
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: Content-Transfer-Encoding: quoted-printable
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: ------=_NextPart_001_001C_01C0CA80.6B015D10
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body: Content-Type: text/html;
Mar 29 16:46:03 nemo spamd[4414]: 62.112.222.60: Body:  charset="iso-8859-1"

First slide Previous Next Last slide  Slide 17 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   check_client_access Next 

Sajnos a SWIP rekordokat az ISP-k nem (mindig) tartják naprakész állapoban. Íme egy bátor, de hatékony megoldás. (ez egy sor)

client_access.pcre:

/^(docsis|dpc\d|dsl|
ktv|catv|client|dhcp|
pool\-|ppp\-|cpe|cust|
dial|access|in\-addr|arpa|
cable|nombres|upc\-\w|user|bri\-|abo\.|
ipoly\-|nilus\-|amazonas\-|casablanca\-|caracas\-)/  REJECT please use your ISP's SMTP relay
/\-adsl\-pool\.XXXXXXX\.hu$/    REJECT please use your ISP's SMTP relay

Ez néha, ártatlan helyeket is szűr, azokat külön kell engedélyezni.

First slide Previous Next Last slide  Slide 18 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   check_helo_access Next 

Egyszerű szabály, nem kerül semmibe. Ez nem fog tévedni! (hacsak nem mi tévedtünk smile )

/^ppke\.hu/             REJECT Masquerades as my domain name
/^manus\.itk\.ppke\.hu/ REJECT Masquerades as my domain name
/^itk\.ppke\.hu/        REJECT Masquerades as my domain name
/^www\.itk\.ppke\.hu/   REJECT Masquerades as my domain name
/^domain\.hu/           REJECT Masquerades as my domain name
/^centro\.ppke\.hu/     REJECT Masquerades as my domain name
/^hrb\.hu/              REJECT Masquerades as my domain name
/^193\.225\.109\.60/    REJECT Masquerades as my domain name
/^localhost/            REJECT Use your own domain name

Lehet, hogy out-of-the-box a Postfix része lesz.

First slide Previous Next Last slide  Slide 19 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   relaydb Next 

Daniel Hartmeier munkája (OpenBSD-s program).
Linux-ra portolt változat megtalálható a honlapomon.

A Received: from fejlécek feldolgozására. A szemét sokszor nem közvetlenül arról a gépről érkezik, ahonnan smtp-vel kaptuk, hanem például a .forward és sok más miatt közvetítő gépeken át. Ha használunk Content-filter-t (később) akkor minden levélről lesz egy többletinformációnk. (spam vagy nem spam). Relaydb -vel ezt az információt hasznosíthatjuk.

Fejlécek vizsgálatával két listát állít elő:

  • fehérlista
    • a megbízható gépekről
  • feketelista
    • a spammerekről
(A spammereket a kézbesített spamek alapján fizetik.)

First slide Previous Next Last slide  Slide 20 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   relaydb ... Next 

Berkeleydb. Kulcs-érték párokat tárol:

+------+           +-------+-------+-----+
|IP-cím|   --->    |w-count|b-count|atime|
+------+           +-------+-------+-----+

Ha a b-counter 3x-a a w-counter -nek akkor úgy veszi, hogy feketelistán van a cím.

  • Lépésenként épít fel egy gráfot minden lépésben maximum egy éllel bővítve

First slide Previous Next Last slide  Slide 21 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   relaydb (példa) Next 


Received: from localhost (localhost [127.0.0.1])   <-- #1 Figyelmen kívül hagyja 
        by checked.digitus.itk.ppke.hu (Postfix) with ESMTP id A6DB418000FE
        for <cstamas@digitus.itk.ppke.hu>; Wed, 16 Mar 2005 17:02:05 +0100 (CET)
Received: from manus.itk.ppke.hu (manus.itk.ppke.hu [193.225.109.60])   <-- #2 már ismeri w-count++ 
        by digitus.itk.ppke.hu (Postfix) with ESMTP id 9289918000FE
        for <cstamas@digitus.itk.ppke.hu>; Wed, 16 Mar 2005 17:02:02 +0100 (CET)
Received: from manus (localhost [127.0.0.1])   <-- #3 Figyelmen kívül hagyja 
        by checked.manus.itk.ppke.hu (Postfix) with ESMTP id 80B873550
        for <cstamas@digitus.itk.ppke.hu>; Wed, 16 Mar 2005 17:02:02 +0100 (CET)
X-P0F: 193.225.12.103: FreeBSD [4.6-4.9] 5 hops away, link: ethernet/modem, uptime: 203 hrs  <-- #4 Figyelmen kívül hagyja 
Received: from nws.iif.hu (nws.iif.hu [193.225.12.103])   <-- #5 új címként megjegyzi w-count=1, nem megy tovább 
        by manus.itk.ppke.hu (Postfix) with ESMTP id D1BC4390F
        for <cstamas@itk.ppke.hu>; Wed, 16 Mar 2005 17:01:59 +0100 (CET)
Received: (from nobody@localhost) 
        by nws.iif.hu (8.12.6/8.12.5) id j2GG1xC7073175;
        Wed, 16 Mar 2005 16:01:59 GMT
        (envelope-from nobody)

$ cat /tmp/nws.header | relaydb -v -w -f /tmp/relaydb.db
reading mail headers, considering the mail not spam
checking 193.225.109.60
  found, white 32081 -> 32082 black 423
checking next header
checking 193.225.12.103
  not found, inserting new host 193.225.12.103 white 1

Ha egy cím feketelistán van nem dolgozza fel a további sorokat, hiszen nem bízik meg benne.

First slide Previous Next Last slide  Slide 22 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   relaydb (Postfix lookup table) Next 

#!/bin/bash

DB="/var/lib/MailScanner/relaydb.db"
RELAYDB="/usr/local/bin/relaydb -m -60 -lb -f $DB"
REJECT="450 Blocked -- we received to much spam from you, sorry."
TMP="/var/tmp/"
P="/etc/postfix/"
FILE="ip_blacklist"
PM="/usr/sbin/postmap"

echo -n > ${TMP}${FILE}

for i in $(${RELAYDB})
do
  echo "${i} ${REJECT}" >> ${TMP}${FILE}
done

if ( ! cmp -s ${P}${FILE} ${TMP}${FILE} ); then
  cp -f ${TMP}${FILE} ${P}${FILE}
  ${PM} cdb:${TMP}${FILE}
  cp -f ${TMP}${FILE}.cdb ${P}${FILE}.cdb.tmp
  mv ${P}${FILE}.cdb.tmp ${P}${FILE}.cdb
fi

A fenti script 5 percenként lefut cron -ból.

First slide Previous Next Last slide  Slide 23 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   relaydb statisztika Next 

d:~# wc -l /etc/postfix/ip_blacklist
213 /etc/postfix/ip_blacklist

m:~# wc -l /etc/postfix/ip_blacklist
512 /etc/postfix/ip_blacklist

l# wc -l /etc/postfix/ip_blacklist
498 /etc/postfix/ip_blacklist

c# wc -l /etc/postfix/ip_blacklist
2133 /etc/postfix/ip_blacklist

Greylisting előtt, spamek jelentős hányadát védte ki a relaydb.

First slide Previous Next Last slide  Slide 24 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Greylisting Next 

Wietse Venema: "Junk mail is war. RFCs do not apply."

A spammerek többségének nem éri meg queue-t fenntartani, ha valamilyen hiba van akár 4XX akár 5XX eldobják a levelet.

Viszont az RFC-k megkövetelik. Ilyen módon az SMTP szerverek számára kényelmetlen, de működő módszert alkothatunk az ilyen levelek szűrésére.

Postfix: Policy server

request=smtpd_access_policy
protocol_state=RCPT
protocol_name=SMTP
helo_name=some.domain.tld
queue_id=8045F2AB23
sender=foo@bar.tld
recipient=bar@foo.tld
client_address=1.2.3.4
client_name=another.domain.tld
[empty line]
action=defer_if_permit Come back later.

First slide Previous Next Last slide  Slide 25 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Greylisting (Wietse példaprogramja) Next 

Berkeleydb. Kulcs - érték párok (emlékszünk? wink )

+------+---------------+-----------------+         +---------+
|IP-cím|küldő-emailcíme|címzett-emailcíme|  --->   |időbélyeg|
+------+---------------+-----------------+         +---------+

A szabályok egyszerűek

  • ha a kulcs új (nem létezik hozzá érték), akkor átmeneti hibával (4xx) elutasítjuk és beállítjuk az aktuális időbélyeget
  • ha a kulcs létezik és aktuális_idő - időbélyeg nagyobb mint (pl. 60mp) elfogadjuk a levelet

First slide Previous Next Last slide  Slide 26 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Greylisting (enyhébb feltétetekkel) Next 

Többfajta kulcs - érték pár.

+-------------+---------------+-----------------+          +---------+-------+---------+
|IP-cím(a.b.c)|küldő-emailcíme|címzett-emailcíme|   --->   |időbélyeg|állapot|IP-cím(d)|
+-------------+---------------+-----------------+          +---------+-------+---------+

  • a kulcsból az IP cím vége hiányzik, átkerült az értékhez
    • Így ha ugyanabból a /24 -es tartományból küldi újra a levelet azt egynek veszi
    • a küldő emailcíméből a VERP tagokat/számokat eltávolítjuk:
      • pl: 66.94.237/sentto-#-#-#-someuser=jak.ppke.hu@returns.groups.yahoo.com/someuser@jak.ppke.hu 1107968901/OK/16
    • egy hagyományos bejegyzés
      • 1.2.3/ki@honnan/kinek@ide 1107968901/OK/4
  • állapot:
    • NEW újonnan bekerült érték
    • OK olyan amely már újraküldte
+---------------+          +--------+---------+
|IP-cím(a.b.c.d)|   --->   |számláló|időbélyeg|
+---------------+          +--------+---------+

Ez a sikeresen újraküldött azaz elfogadott leveleket számolja.

  • ha a számláló eléri a 10-t akkor nem csinál a fenti kulcs érték párból többet, hanem szó nélkül elfogadja az adott IP-ről jövő leveleket
  • ha az időbélyeg alapján a bejegyzés 30 napnál öregebb, akkor végig kell egyszer játszani a fenti játékot, ez újabb 30 napra elég

First slide Previous Next Last slide  Slide 27 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Pár számadat (Greylisting) Next 

gép NEW OK legitim %
l 12168 6323 34,1%
c 7766 5156 39,9%

First slide Previous Next Last slide  Slide 28 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Content Filtering Next 

Sok módszer segítheti a levelek szűrését, de a tartalom alapján szűrésnek nincs alternatívája. Spamszűrés:

  • Spamassassin
    • izgalamas
    • de erről külön előadást lehetne tartani
Vírusszűrés:
  • ClamAV

First slide Previous Next Last slide  Slide 29 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   ClamAV Next 

ClamAV

  • csak felismeri a vírusokat, nem távolítja el
    • baj?
    • NEM!
      • a mai állapotokat figyelembe véve ez megfelelő
  • vannak akik a kereskedelmi megoldásokban hisznek
    • meglepő, de sok esetben lekörözi a fizetős szoftvereket
      • fejlesztői többnyire gyorsabban reagálnak az új vírusok megjelenésére
    • mindenkinek nyugodt szívvel ajánlom a ClamAV-ot
First slide Previous Next Last slide  Slide 30 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   ClamAV (frissítése) Next 

  • két fájlban tárolja a "signature" fájlt:
    • main.cvd -t hetente frissítik
    • daily.cvd -be kerülnek be az "új vírusok"
# du -h /var/lib/clamav/*.cvd
132K    /var/lib/clamav/daily.cvd
1.8M    /var/lib/clamav/main.cvd

First slide Previous Next Last slide  Slide 31 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   ClamAV (frissítése...) Next 

Eleinte HTTP-vel nézte meg a fájlokat ez elég barátságtalan a szerverekkel szemben,
ezért naponta maximum csak 50-szer ellenőrzi a freshclam az adatbázist.

Hogy költségkímélő, mégis hatékony módon működjön a frissítés:

  • egy külön helyi user-t felírtam a clamav-virusdb at lists.clamav.net -re
    • ide érkeznek értesítések az adatbázis változásokról
  • csináltam egy cronjob -ot mely 5 percenként ellenőrzi, hogy érkezett-e új levél:

*/5 * * * * root (/bin/ls -l /var/mail/clamav--l > /var/tmp/clamav--l.now; \
diff /var/tmp/clamav--l.now /var/tmp/clamav--l.was &> /dev/null || ( \
echo "New mail from clamav-virus-update list"; \
/usr/bin/freshclam 2>&1) | logger -p mail.info -t clamav ; /bin/mv -f /var/tmp/clamav--l.now /var/tmp/clamav--l.was )

Most már csökkent a jelentősége:

  • Mert a freshclam a current.cvd.clamav.net TXT record -ot ellenőrzi,
    ez alapján állapítja meg, szükséges-e frissíteni.

First slide Previous Next Last slide  Slide 32 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Postfix interface Next 

A fenti programokat keretrendszerbe kell foglalni, egy központi beállítófájllal, ahol a vírus és spamszűrés feltételeit lehet felsorolni. Postfix elgondolása a következő:

          +------+    +-------+    +----+    +-----+
Unfiltered|smtpd +--->|cleanup+--->|qmgr+--->|smtp +--> Filtered
          |pickup|    |       |    |    |    |local|
          +------+    +-------+    +-+--+    +-----+
                         ^           |
                         |           V
                      +------+     +----+
                      |smtp  |     |smtp|
                      |10026 |     +-+--+
                      +------+       |
                         ^           |
                         |           V
                     Content filter(10025)
Ez egy szép, hatékony és rugalmas megoldás, mert a "Content filter"-nek nem kell tudnia a levelező rendszerről.

First slide Previous Next Last slide  Slide 33 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   MailScanner Next 

Viszont a MailScanner nem így működik! Ő a queue fájlokat szereti közvetlenül módosítani. Egy menetben fut végig akár 30 db levélen. Hatékonyabb, mint a fenti megoldás viszont függ a queue formátumtól ez sajnos nem egyeztethető össze a Postfix gyors fejlesztési menetével. (Az aktuális formátumot támogatja a MailScanner) exim -et állítottam be, mely nem csinál mást mint a MailScanner-t SMTP képességekkel ruházza fel.

Beállítás leírása.

First slide Previous Next Last slide  Slide 34 of 35 Creative Commons © 2005 by Csillag Tamás





















TWiki Slide Show   Köszönet Next 

Köszönöm a Pázmány Péter Katolikus Egyetem Információs Technológiai Karának és elsősorban Pásztor Miklós-nak, hogy lehetőséget adott a fentebb leírt módszerek kipróbálására beállítására. Továbbá a kar oktatóinak és hallgatóinak barátságos és segítőkész hozzáállását.

Ezen dokumentum a Creative Commons Attribution-ShareAlike 2.0 license -e alatt érhető el.

Az előadás a TWiki leírónyelve alapján készült.

Köszönöm a figyelmet!

First slide Previous Next Last slide  Slide 35 of 35 Creative Commons © 2005 by Csillag Tamás





















First slide Previous End Presentation






























-- Main.cstamas - 23 Mar 2005

----- Revision r1.3 - 24 Mar 2005 - 12:40 - Main.cstamas