| TWiki . Homokozó . NetworkshopSpamésVírusszűrésiMódszerekTapasztalatokaPPKEITKn |
Valószínű a wiki-t fogom az előadás foliáinak elkészítéséhez használni.
|
Spam és vírusszűrési módszerek, tapasztalatok a PPKE-ITK -n |
|
|
|
http://digitus.itk.ppke.hu/~cstamas 2005-03-23
|
|
Slide 1 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Miért, szükséges ez? |
|
|
|
|
|
Slide 2 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Szűrés bevezetése a PPKE-ITK-n |
|
|
|
|
|
Slide 3 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Milyen megoldást fogok ismertetni? |
|
|
|
|
|
Slide 4 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Milyen megoldást fogok ismertetni? ... |
|
|
|
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!
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.
|
|
Slide 5 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Jó tanácsok |
|
|
|
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)
Rule #2: "Élőben" figyeljük a logfájlokat
Rule #3: Ha Postfix-szel kisérletezünk, érdemes a # 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.
Bátorság!
|
|
Slide 6 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Módszerek, hatékonyságuk |
|
|
|
Wietse Venema: "Don't rely on single solution to stop spam." "A" megoldás nem létezik.
különböző szintek:
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:
|
|
Slide 7 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Módszerek, hatékonyságuk ... |
|
|
|
|
|
Slide 8 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Spammer stratégiák |
|
|
|
|
|
Slide 9 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Postfix belső eszközei (teljesség igénye nélkül) |
|
|
|
|
|
Slide 10 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Postfix belső eszközei .... |
|
|
|
lookup táblákat (kulcs-érték párok) csinálhatunk
|
|
Slide 11 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Példa |
|
|
|
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
|
|
Slide 12 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
RBL |
|
|
|
Használatuk előtt ismerkedjük az egyes RBL-kel!
|
|
Slide 13 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
RBL (nálunk) |
|
|
|
|
|
Slide 14 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Spamd (OpenBSD) |
|
|
|
A tűzfalon fut:
|
|
Slide 15 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Spamd (részlet a logfájlból) |
|
|
|
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
|
|
Slide 16 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Spamd (mégegy) |
|
|
|
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"
|
|
Slide 17 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
check_client_access |
|
|
|
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.
|
|
Slide 18 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
check_helo_access |
|
|
|
Egyszerű szabály, nem kerül semmibe.
Ez nem fog tévedni! (hacsak nem mi tévedtünk
/^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.
|
|
Slide 19 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
relaydb |
|
|
|
Daniel Hartmeier munkája (OpenBSD-s program).
Fejlécek vizsgálatával két listát állít elő:
|
|
Slide 20 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
relaydb ... |
|
|
|
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.
|
|
Slide 21 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
relaydb (példa) |
|
|
|
Ha egy cím feketelistán van nem dolgozza fel a további sorokat, hiszen nem bízik meg benne.
|
|
Slide 22 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
relaydb (Postfix lookup table) |
|
|
|
#!/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
|
|
Slide 23 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
relaydb statisztika |
|
|
|
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.
|
|
Slide 24 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Greylisting |
|
|
|
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.
|
|
Slide 25 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Greylisting (Wietse példaprogramja) |
|
|
|
Berkeleydb.
Kulcs - érték párok (emlékszünk?
+------+---------------+-----------------+ +---------+ |IP-cím|küldő-emailcíme|címzett-emailcíme| ---> |időbélyeg| +------+---------------+-----------------+ +---------+ A szabályok egyszerűek
|
|
Slide 26 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Greylisting (enyhébb feltétetekkel) |
|
|
|
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)| +-------------+---------------+-----------------+ +---------+-------+---------+
+---------------+ +--------+---------+ |IP-cím(a.b.c.d)| ---> |számláló|időbélyeg| +---------------+ +--------+---------+ Ez a sikeresen újraküldött azaz elfogadott leveleket számolja.
|
|
Slide 27 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Pár számadat (Greylisting) |
|
|
|
|
|
Slide 28 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Content Filtering |
|
|
|
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:
|
|
Slide 29 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
ClamAV |
|
|
|
|
|
Slide 30 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
ClamAV (frissítése) |
|
|
|
# du -h /var/lib/clamav/*.cvd 132K /var/lib/clamav/daily.cvd 1.8M /var/lib/clamav/main.cvd
|
|
Slide 31 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
ClamAV (frissítése...) |
|
|
|
Eleinte HTTP-vel nézte meg a fájlokat ez elég barátságtalan a szerverekkel szemben, Hogy költségkímélő, mégis hatékony módon működjön a frissítés:
Most már csökkent a jelentősége:
|
|
Slide 32 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Postfix interface |
|
|
|
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.
|
|
Slide 33 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
MailScanner |
|
|
|
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.
|
|
Slide 34 of 35 | Creative Commons © 2005 by Csillag Tamás |
|
Köszönet |
|
|
|
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!
|
|
Slide 35 of 35 | Creative Commons © 2005 by Csillag Tamás |
-- Main.cstamas - 23 Mar 2005
----- Revision r1.3 - 24 Mar 2005 - 12:40 - Main.cstamas
|