Försvara sig mot oönskad epost och epost-bomber copyright (C) Zach Babayco, 1996 [Innan jag startar den här artikeln vill jag tacka Nancy McGough för att jag fick citera från hennes "Filtering Mail FAQ" som finns att läsa på sidan http://www.cis ohio-state.edu/hypertext/faq/usenet/mail/filtering-faq/faq.html. Det är en av de bästa FAQ som behandlar 'filtering-mail' och om du har problem och önskar lära dig mer om hur du filtrerar epost - kolla den sidan]. På senare tid har det börjat dyka upp fler och fler som skickar reklam via epost. Erbjudanden om snabba pengar och allt sånt där skit. Men ännu värre är epost-bomberna. Det finns två typer av sådana bomber - Masspost och Mailing List: 1) Masspost - Det är när någon skickar tusentals små meddelanden, ofta genererade av ett script eller ett speciellt program. Den här typen av epostbomber är relativt lätta att "desarmera" eftersom de kommer från en eller ett par källor. 2) Mailing List bomb - den som vill bomba dig, sätter upp dig på mängder av mailing-listor om allt mellan himmel och jord och dessa attacker är svårare att värja sig mot då källorna är så många. Du är också tvungen att ladda hem dem för att kolla upp hur du avbeställer den och den listan. Det är här som Procmail kommer in i bilden. Procmail (uttalas prok-mail) är ett filtreringsprogram som kan göra underverk med din epost. Till exempel, om du prenumererar på många olika mailinglistor, kan programmet ställas in så att det sorterar eposten i olika foldrar eller kataloger, och därmed förhindrar att allt blir en enda röra i Inkommande brevlådan. Procmail kan också ställas in så att det raderar post från vissa personer och från vissa bestämda avsändaradresser. ************************************************************************* Installera Procmail: Först av allt bör du kolla om du har ett system som har Procmail installerat. Vid prompten skriver du: > which procmail Om ditt system har Procmail installerat, kommer detta kommando att generera ett svar som talar om var programmet ligger. Skriv ner detta - du kommer att behöva det senare. *Tips* Om ditt system svarar med "Unknown command: which", kan du testa att istället använda 'type', 'where' eller 'whereis'. Om du fortfarande inte kan hitta programmet, är det högst troligt att det inte finns installerat på ditt system. Men du kan ha tur - kolla FAQ:en som jag nämnde inledningsvis och kontrollera om du har något av de andra programmen jag nämnde där. Nu behöver du installera en resursfil för Procmail. Jag använder editorn Pico för att skriva in alla variabler. Du kan använda den editor du själv finner enklast. Ställ dig i ditt hembibliotek och kör igång editorn. > cd // Går automatiskt till hembiblioteket .../home/xxx > pico .procmailrc Skriv in följande i .procmailrc-filen: # Den här raden talar om för Procmail vad som skall skrivas till logfilen. Sätt "On" # för debugging. VERBOSE=off # Ersätt mail med din postkatalog. MAILDIR=$HOME/mail # Här kommer logfilen och rc-filerna att läggas PMDIR=$HOME/.procmail LOGFILE=$PMDIR/log # INCLUDERC=$PMDIR/rc.ebomb (ja, skriv raden INCLUDERC MED #) När du har skrivit in dessa rader, spara filen och gå tillbaks till h emkatalogen. > cd > mkdir .procmail Gå nu till katalogen du precis skapade och starta editorn med en ny fil: rc.ebomb: VIKTIGT: Det är viktigt att du stänger av 'word wrapping' i din editor. Det är viktigt att följande rader skrivs in på en och samma rad. Med Pico kan du starta med flaggan -w. Kolla manualen till din editor hur du stänger av word-wrapping. Kom också ihåg att dessa rader skall skrivas in utan mellanslag mellan orden. > cd .procmail > pico -w rc.noebomb # nobomb - epost blockerare :0 * ! ^((((Resent-)?(From|Sender)|X-Envelope-From):|From )(.*[^.%@a-z0-9])? (Post(ma?(st(e?r)?|n)|office)|Mail(er)?|daemon|mmdf|root|uucp|LISTSERV|owner |request|bounce|serv(ices?|er))([^.!:a-z0-9]|$))) * ! ^From:.*(postmaster|Mailer|listproc|majordomo|listserv|cmeinel|johnb) * ! ^TO(netstuff|computing|pcgames) /dev/null En förklaring till ovanstående - första raden talar om för Procmail att detta är början på en "recept-fil". Den talar om för programmet vad den skall leta efter i eposten och när den finner detta, utförs en handling på det meddelandet - vidare- befodran av meddelandet till en viss folder - eller som i det här fallet - till /dev/null som är samma sak som att filen raderas. Den andra,tredje och fjärde raden, som börjar med ett *, kallas villkor. Asterrisken * talar om för Procmail att det här är början på ett villkor. ! är ett negationstecken som talar om för programmet att göra det rakt motsatta. Villkor 1: * ! ^((((Resent-)?(From|Sender)|X-Envelope-From):|From )(.*[^.%@a-z0-9])? (Post(ma?(st(e?r)?|n)|office)|Mail(er)?|daemon|mmdf|root|uucp|LISTSERV|owner |request|bounce|serv(ices?|er))([^.!:a-z0-9]|$))) Grubbla inte över dessa rader - de är enklare att förstå än vad man tror vid första anblicken. Villkoret talar om för Procmail att kontrollera 'headern' på meddelandet och kolla om meddelandet kommer ifrån en administrativ adress som root eller postmaster, och även kolla om det kommer från en 'mailer-daemon' (servern som du skickar till när du trycker "Svara" eller "Reply"). Om meddelandet kommer från en av dessa adresser, skall meddelandet lägga i svarslådan (Inbox) och inte raderas. Avancerat tips: Till er som är vana användare av Procmail, undrar förstås varför jag kräver att användaren skall skriva in alla dessa rader, istället för att använda kommandot FROM_MAILER. Det kan tyckas som en bra ide' från början, men jag upptäckte efter några dagar att FROM_MAILER även kollar Precedence. De flesta servrar som sköter utskick från mailinglistor har en sådan Precedence och det gör att all post som du normalt inte vill ha, skulle passera "nålsögat" och hamna i din Inbox. Villkor 2: * ! ^From:.*(listproc|majordomo|cmeinel|johnb) Det här villkoret kollar lite mer vad som står efter From: i 'headern'. I ovanstående exempel, kollar villkoret efter orden listproc,majordomo,cmeinel och johnb. Om meddelandet kommer från någon av dessa person, hamnar meddelandet i Inboxen. Om inte - /dev/null. Här kan du skriva in namnet på de personer som normalt mailar till dig och även de mailing-listor som du abonnerat på, servrar och annat som du vill ha post ifrån. När du skriver in den här raden - kom ihåg - skriv bara användarnamnet, inte personens hela epostadress och kom ihåg | mellan varje namn. Villkor 3: I det sista villkoret skriver du in användarnamnen på de listor du abonnerar på. Till exempel - Jag abonnerar på netnews,crypto-stuff och pcgames-listor. När du får ett mail från mailinglistor, kommer adressen till den listan att stå under TO: eller CC:-delen av headern. Den här raden kollar efter dessa användarnamn och vidarebefordrar meddelandena till Inboxen. Den sista raden - /dev/null - är papperskorgen på ditt system. Om ett mail inte klarar några av villkoren som nämnts ovan, hamnar det här och du ser aldrig röken av det meddelandet igen. (Unixsystemets svart hål). Ok. Då har du fixat till två filer - '.procmailrc' och 'rc.nobomb'. Vi behöver skapa en till fil innan allt funkar perfekt. Spara rc.nobomb och stäng editorn och gå till din hemkatalog. När du står där - öppna editorn igen med 'no-word-wra pping'-kommandot. > cd >pico -w .forward Vi tar en titt på ett utdrag ur Nancy M.'s Filtering FAQ: Lägg till en modifierbar rad i ~/.forward: "|IFS=' ' && exec /usr/local/bin/procmail -f- || exit 75 #nancym" == VIKTIGT == * Var noga med att inkludera alla tecken även " och ' * | kallas för en pipe och fungerar som en "tratt" * Ersätt /usr/local/bin med din sökväg till Procmail * Ersätt 'nancym' med ditt eget användarid. Detta användarid skall du också skriva in i .forward. * Använd INTE ~ eller andra omgivnings-variabler, typ $HOME, i din .forwardfil. Om Procmail är installerat i din hemkatalog - skriv ut *hela* sökvägen. På många system är det nödvändigt att du gör .forward och din hemkatalog nåbar för alla användare. Detta för att Procmail skall hitta dit. Skriv: cd chmod 644 .forward chmod a+x . Om inte din .forward funkar, kanske dessa alternativ kan vara till hjälp: In a perfect world: "|exec /usr/local/bin/procmail #nancym" In an almost perfect world: "|exec /usr/local/bin/procmail USER=nancym" In another world: "|IFS=' ';exec /usr/local/bin/procmail #nancym" In a different world: "|IFS=' ';exec /usr/local/bin/procmail USER=nancym" In a smrsh world: "|/usr/local/bin/procmail #nancym" Nu när du har alla nödvändiga filer på plats, är det dags att testa filtret. Starta din epostläsare och skapa en ny underkatalog kallad Ebombtest. Den här proceduren kan variera lite från program till program så du kanske behöver experimentera lite. Öppna sedan rc.bomb-filen och ändra /dev/null till Ebombtest. Slutligen - öppna .procmail och ta bort # från sista raden. Du behöver lämna det här aktivt en stund för testen. Be någon du känner att maila till dig. Om meddelandet går till din Inbox så funkar filtret bra. Skapa och skicka sedan förfalskad mail och kolla om det hamnar i katalogen Ebombtest. Kolla också att skicka ett meddelande med avsändare root@anywhere.com för att se att även det hamnar på rätt plats - alltså i Inboxen. Om allt detta fungerar - gratulerar! Du har du ett försvar mot epost-bomber. För tillfället kan du ändra den sista raden tillbaks till /dev/null och även sätta dit # på INCLUDERC-raden i .procmailrc-filen. Om någon i framtiden vill bomba dig, behöver du bara ta bort # och allt skall funka bra med en postfunktion som filtrerar bort all skräppost. Sedan får du ägna din fritid till att försöka leta på den som bombar dig och även försöka hitta alla mailinglistors ursprung och avbeställa dessa. Om du har några kommentarer om ovanstående, posta mig på zachb@netcom.com Disclaimer: När du använder ett filter på ett epostprogram, är det ofrånkomligt att du även kommer att förlora post som du normalt skulle behålla. Det är mer eller mindre omöjligt att sätta villkoren i filtret så att inte detta sker. Men det är smällar man får ta om man vill skydda sig mot massiva postattacker. Ett tack till Damien Sorder (jericho@dimensional.com) för hjälp med denna guide. _________________________________________________________________________ Om du vill kolla in tidigare delar av Guide to (most) Harmless Hacking - kolla sidorna: http://w1.340.telia.com/~u34002171/hhd.html (Svenska happy hacker sidan) http://techbroker.com/happyhacker.html (den officiella Happy Hacker sidan) http://www.daman.tierranet.com/resources/gtmhh/gtmhhindex.html] http://www.silitoad.org http://www.anet-chi.com/~dsweir http://www.ilf.net/brotherhood/ http://www.magnum44.com/orion/entry.htm http://home.pages.de/~ristridin http://www.axess.com/users/wookie/Hack.htm http://home2.swipnet.se/~w-25277/ http://w1.340.telia.com/~u34002171/hhd.html (Svenska happy hacker sidan) http://w1.340.telia.com/~u34002171/hhd/gtmhh/svenska/hhdsvensk.html Du kan prenumerera på diskussions listan genom att skicka e-post till hacker@techbroker.com med meddelandet "subscribe" . Det här är den amerikanska sidan och all info är på engelska. Om du vill dela med dig av tips eller rätta saker du tycker är fel- skicka meddelande till hacker@techbroker.com Om du vill skicka konfidentiell post (på engelska) - inga frågor om illegal hacking - till mig - skicka till cmeinel@techbroker.com och om du vill vara anonym,går det bra men nämn detta i ditt e-mail. Skicka alla flames till /dev/null. Copyright 1997 Carolyn P. Meinel. Du kan lägga upp den här guiden på din sida om du behåller de här sista raderna: _________________________________________________________________________ Svensk översättning: Björn Lindblom Mars 1998 _________________________________________________________________________