Exim4 szűrő fabrikálás

Megtört szívvel jelentem, hogy kedvenc cégem, a StartVox szerverén elszaporodott a SPAM. Méghozzá nem az a vidám, baráti SPAM, amit a zen.spamhaus.org egy mozdulattal eltüntet, hanem magyar SPAM! Na de fúj. Befektetési tanácsadás? Őrületes hozamok? Fogyókúra két hét alatt?? Mindez az én szerveremen???

Nem, ez nem mehet így tovább! Valamit tenni kell, még akkor is, ha több időbe telik, mint egyesével törölni a leveleket. Szerencsére úgy láttam, hogy az összes ilyen levélben található egy meglehetősen fura SMPT fejléc mező, amit más levélben még nem láttam. Úgyhogy a szűrés nem olyan bonyolult: ha egy levélben van ilyen fejléc mező (X-Mailer-RecptId), akkor kuka.

Tanuljunk meg hát Exim4 filtert készíteni, jól, gondoltam én. Tájékozatlanok számára: az Exim4 egy MTA (Mail Transfer Agent), ismertebb nevén: e-mail szerver. Igen jól fejlett példánya az open source szoftvernek: csak a filterezésről szóló dokumentációja 25 oldal kinyomtatva, a Debian által szállított Exim4 mindenesetre tartalmaz egy minta konfigurációs file-t, ami laza 2000 sort nyom.

Összefoglalva: az Exim4 konfigurálás súlyos fekete mágia!

Szerencsére az alap Debian template tartalmaz néhány pontot, ahol bele lehet piszkálni a levélkézbesítés folyamatába, méghozzá anélkül, hogy ezt az óriás template-et kellene szerkesztenem. Némi dokumentáció- és fórumolvasgatás után sikerült kiderítenem, hogy a tartalom alapú filterezés az acl_smtp_data címre hallgató access control list-ben találhatóak. A template elején található rész: .ifndef MAIN_ACL_CHECK_DATA MAIN_ACL_CHECK_DATA = acl_check_data .endif acl_smtp_data = MAIN_ACL_CHECK_DATA

Aham. Szóval keressem azt, hogy acl_check_data. Értem én! Ez a lista a file 870. soránál kezdődött, és egyebek között található volt benne egy ilyen stanza:

# This hook allows you to hook in your own ACLs without having to # modify this file. If you do it like we suggest, you'll end up with # a small performance penalty since there is an additional file being # accessed. This doesn't happen if you leave the macro unset. .ifdef CHECK_DATA_LOCAL_ACL_FILE .include CHECK_DATA_LOCAL_ACL_FILE .endif

Ez lefordítva a magyar nyelvre: ha a lokális makrók között (amik egy külön file-ban vannak) definiálok egy CHECK_DATA_LOCAL_ACL_FILE nevű makrót, akkor azt az Exim4 szépen felveszi a többi filter közé! Nosza, ezt írtam az exim4.conf.localmacros mélyére: # @UPi: Local spam filters CHECK_DATA_LOCAL_ACL_FILE = /etc/exim4/local_check_data

(Általában config file-okban @UPi-val szoktam jelölni a saját változtatásaimat, és az ahhoz kapcsolódó kommenteket. Így látom, hogy hol barmoltam bele a rendszerbe.) Ezután már csak a konkrét filter hiányzik ügye, ami elvégzi a tényleges szűrést.

# @UPi: deny from Hungarian spam gang deny condition = ${if def:h_X-Mailer-RecptId: {yes}{no}} delay = 45s message = DIAF

Mit is jelentenek ezek? A deny annyit fejez ki, hogy ha ez a szűrő érvényesül, akkor szépen visszautasítjuk a levélkét. A condition rész az Exim4 agyament nyelvén azt fejezi ki, hogy ha létezik az a bizonyos fejléc mező, akkor teljesüljön csak a filter. (Ha a condition nem teljesül, akkor a rendszer szépen megy a következő filterre.) A delay bónusz szopatás: 45 másodpercig várunk a válasszal, ezzel is feltartjuk az ő kis SPAM rendszerüket. Az üzenet pedig az én személyes jókívánságom, csak nekik.

Hát ennyit az Exim4 szűrésről. Még azt érdemes megemlítenem, hogy hogyan érdemes egy új szűrőt tesztelni! Erre a következő parancs a legalkalmasabb, az Exim4 kismillió opciója közül: exim4 -bh 46.102.245.88 A 46.102.245.88 egy szabadon választott külső IP cím; az Exim4 a teszt folyamán úgy fog tenni, mintha erről a címről csatlakoztam volna hozzá. Ezek után SMTP protokoll szerint lehet parancsokat beírni, erről egy jól használható példa van a Wikipedia SMTP-ről szóló oldalán. Közben az Exim4 pedig szorgosan írja, hogy éppen melyik filtereket futtatja, és azokat hogyan értelmezte közben.

Itt a vége, fuss el véle, búcsúzik a műsorvezető.

Utoljára módosította UPi 2013.V.23 14:02-n; 4 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.

Webcam használat HTML5-tel

Kedvenc-utált platformom, a HTML5 kezd olyan képességeket felmutatni, amelyek alkalmassá teszik mindenféle érdekes dologra a szokásos blog, social media és levelezőprogram funkciókon felül.

A legújabb ilyen képesség, amivel játszani kezdtem, a getUserMedia névre hallgató API-szörny. Ennek a segítségével dzsuvaszkriptből képessé válik az ember arra, hogy a helyi gép webcameráját és mikrofonját hozzákösse egy (szintén a HTML5-ben definiált) <audio> illetve <video> elemhez. Ehhez természetesen a felhasználó tudta és beleegyezése szükséges, amit a böngésző hivatott kikönyörögni.

Mire jó az, hogy a webcamerát hozzá lehet kötni egy <video> elemhez?

  • A felhasználó tudja a weboldalt tükörnek használni borotválkozáshoz.
  • A <video> elem tartalmát be lehet másolni egy <canvas> elembe, és ott mindenféle érdekes dolgot csinálni vele.

Mi az a mindenféle érdekes dolog? Például, feltölteni a tartalmát a szerverre egy képfile formájában. (Ez az, amit megcsináltam az ApocalypseKÖZÖS engine-re, ki lehet próbálni a feltöltő oldalon.) Ezen kívül mindenféle vicces trükköt lehet csinálni, például egy egyszerű trükkel (green screen) kicserélni a hátteret valami tréfás dologra. Vagy ki tudja.

Íme az első próbálkozásom:

upload:TechBlog/webcam_2013515214657.jpg

(Üzenet az agynak: a lámpával a webcamba világítani vicces.)

Tagek:
 
Utoljára módosította UPi 2013.V.16 10:41-n; 4 hozzászólás
Bejegyzés módosítása | PermaLink
Szavazás letiltva.