Mail - från MUA till MUA
...från ett Unixperspektiv
Erik Forsberg, Lysator ACS
forsberg@lysator.liu.se
http://www.lysator.liu.se/~forsberg/
Agenda
- Lite historia
- Begrepp
- Hur ser ett mail ut?
- Att skicka mail
- Lagra mail
- Att ta emot mail
- Mailklienter
- Spam
Ställ frågor!
Lite historia
- Enkla sätt att skicka meddelanden på samma dator.
- Enkla mailboxsystem
- UUCP
"Bangpath" vax.berkeley.edu!sunic.sunet.se!lysator.liu.se!forsberg - SMTP
Begrepp
- MUA Mail User Agent - Det användaren ser.
- MTA Mail Transfer Agent - Mailservern, pratar SMTP.
- UCE Unsolicited Commercial Email - Spam, skräppost.
- RFC Request For Comment - internetstandard.
Hur ser ett mail ut, egentligen?
- RFC822, RFC2822
- Headers
- Body
Headers
- Kontrollinformation.
- Format <namn>: <värde>
- Endast en nyrad mellan varje header
- Modifieras (i vissa fall) på vägen, Received: läggs till.
- From:, To:, Date:, Subject
- Content-Type:
- X-. Exempelvis X-Mailer
Headers - Ett enkelt exempel
Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by j218.ryd.student.liu.se (Postfix) with ESMTP id D84F433035 for <erik@j218.ryd.student.liu.se>; Thu, 14 Mar 2002 21:39:17 +0100 (CET) Received: from j218.ryd.student.liu.se (j218.ryd.student.liu.se [130.236.227.218]) by mail.lysator.liu.se (Postfix) with ESMTP id 923C283600D for <atest@lists.lysator.liu.se>; Thu, 14 Mar 2002 21:39:05 +0100 (MET) Received: by j218.ryd.student.liu.se (Postfix, from userid 1000) id F076B330BB; Thu, 14 Mar 2002 21:39:04 +0100 (CET) To: atest@lists.lysator.liu.se From: Erik Forsberg <forsberg@lysator.liu.se> Message-ID: <87it7y28bb.fsf@j218.ryd.student.liu.se> User-Agent: Gnus/5.0807 (Gnus v5.8.7) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Atest] A test mail. Date: 14 Mar 2002 21:39:04 +0100
Några headers i fokus
Received:
Debuginformation, gör det möjligt att spåra vilken väg mailet tagit.To:
Anger inte egentligen var mailet hamnar, men ska ge en indikation.From:
Anger varifrån mailet kommer. Ska gå att svara till.Fler viktiga headers
Date:
Datum. Tyvärr är formatet väldigt olika. Svart magi för att parsa det.Content-Type:
Ger MUAn en aning om hur brevkroppen (bodyn) ska parsas. Vanliga typer:- text/plain
- text/html USCH!
- multipart/mixed
Headers som används vid trådning
Message-ID:
Anger ett unikt ID för varje mail. Konstrueras oftast utgående från hostname, tid och pid.In-Reply-To:
Sätts till Message-ID som ett mail är svar på.References:
Fylls på med Message-ID varje gång ett svar skrivs. Håller alltså i en kommentarskedja.Ett vackert trådningsscreenshot
Avskiljare mellan headers och body
"\n"
Body
- 7-bitars innehåll. Egentligen..
- 8-bitars innehåll vanligt.
- Transportkodning
- MIME
Att skicka mail
- SMTP - RFC2821
- /usr/lib/sendmail
Ni har inte ställt några frågor!
SMTP
- Simple Mail Transport Protocol
- Först RFC821, nu RFC2821
- Simple som i inte telnet
- Ganska enkelt protokoll
- HELO
- MAIL FROM:
- RCPT TO:
- DATA
- <CRLF>.<CRLF>
- QUIT
SMTP - Ett snabbt exempel
hostname:erik ~ % nc mail 25 220 mail.lysator.liu.se ESMTP Postfix helo j218.ryd.student.liu.se 250 mail.lysator.liu.se mail from: erifo764@student.liu.se 250 Ok rcpt to: forsberg@lysator.liu.se 250 Ok data 354 End data with <CR><LF>.<CR><LF> Hupp! . 250 Ok: queued as B49DC835E10 quit 221 Bye
SMTP - Responskoder
- 2yz - Okelidokeli!
- 4yz - Öhm.. Jag vet inte riktigt. Försök igen.
- 5yz - Nähärrö! Det här går jag inte med på!
Mailrouting
- Till vilken mailserver ska mail för en viss domän skickas?
- MX-poster i DNS
hostname:erik ~ % host -t mx lysator.liu.se lysator.liu.se MX 10 mail.lysator.liu.se lysator.liu.se MX 20 mail.liu.se hostname:erik ~ % host -t mx ds.hj.se ds.hj.se MX 0 mail.ds.hj.se
Mailrouting - SekundärMX
- Kan vara bra om man vill ha in mail fort.
- Var bättre förr.
Vilken SMTP-server ska man använda?
- Det var en gång ett internet där man kunde lita på folk..
- Begränsningar i vart mail får skickas, annars öppet relä
- Lokal SMTP-server tillåter dig att skicka mail till andra än den lokala servern.
- SPAM (Mer om detta senare)
- Använd din ISP:s mailserver.
- SMTP AUTH
Olika MTA:er
Sendmail
- Den traditionella servern.
- Kräver doktorsexamen för konfiguration (nåja..)
- Kan ALLT!
- X.400->UUCP via X.25 över SSL.
- Långsam, resurskrävande
Qmail
- Modern
- Småkrånglig
- Dan Bernstein
Fler MTA:er
Postfix
- Skriven av Wietse Venema, säkerhetsguru.
- Snabb
- Lättkonfigurerad
- Skalar bra
- Hänger med RedHat, nuförtiden.
Smail
I princip en Sendmail, men bättre konfigurationsfil.Exim
Som Smail, men med skojigt eget filterspråk.Mindre gratis MTA:er
Exchange, iPlanet, SIMS, Groupwise..
No commentAtt lagra mail
- Mailspool
- Maildir
- Databaser
Mailspool
- En fil per användare, alla mail efter varandra.
- Separerade av From-rader.
From mrtg@lysator.liu.se Sun Mar 17 22:16:05 2002
- Svart magi för att parsa From-raden.
- Låsproblem.
Maildir
- En katalog per användare
- Tre underkataloger
- tmp
- new
- cur
- En fil per mail
- Inga låsproblem
- Äter Inoder
Databasbaserade format
- Exchange, iPlanet o s v.
- Snabbt!
- Bryter mot "the K.I.S.S principle"
- Går sönder.. :-)
Filtrering av mail, per användare
- ~/.forward styr vad som händer med en användares mail.
- Möjliga syntaxer (i Postfix)
- /var/mail/forsberg/ - Lagra som MailDir i /var/mail/forsberg/
- erik@j218.ryd.student.liu.se - Skicka vidare till en mailadress.
- |"/usr/bin/foofilter" - Filtrera mailet genom programmet foofilter
- /home/forsberg/mbox/mailfilLagra mailen i Mailspool-format i filen mailfil.
- /dev/null - Kasta mailen i bithinken..
- Vanliga filterprogram:
- Procmail (Urk!)
- Sieve
- Maildrop
.forward+<whatever> i Postfix
I Postfix kan man skapa särskilda .forward-filer som heter exempelvis .forward+foo, om man då skickar mail till <user;>+foo@domain så hanteras det mailet av .forward+foo. Bra för att skapa temporära mailinglistor eller för att filtrera bort spam till temporära adresser.http://www.lysator.liu.se/local/datorhandbok/lysmail.html har en bättre beskrivning.
Eller http://www.postfix.org/local.8.html.
Att hämta mail
- NFS (/var/spool/mail el. motsv. monterat från mailservern)
- POP3 - Post Office Protocol
- IMAP4r1 - Internet Mail Access Protocol
- Webmail
NFS
- Vanligt på Unixsystem. Ovanligt annars.
- Smidigt, bra när man ska göra skojiga hack..
- Snabbt.
- Äter lite resurser på servern.
POP3
- RFC1939
- Enkelt protokoll
- USER
- LIST
- RETR
- DELE
- NOOP
- QUIT
- Kan låta mail ligga kvar på servern.
IMAP4r1
- RFC2060
- Avancerat protokoll. 82 sidor RFC. Ett antal extensions finns.
- Har operationer för att fungera precis som en lokal mailbox.
- Sätter flaggor, flyttar, tar bort, skapar o s v.
- Asynkront
- Vanliga operationer:
- LOGIN
- LIST
- SELECT
- FETCH
- STORE
- LOGOUT
Webmail
- Förvånansvärt många kör webmail.
- Ganska smidigt, men begränsat.
- IMP
- sqWebmail, från samma kille som gjort courier.
- IMHO
- iPlanet
- SIMS
- ...
SSL
- Secure Sockets Layer
- Går att köra "under" POP, IMAP och Webmailsystem.
- Skyddar lösenord, men content har ju ändå gått över nätet.
GPG
- Gnu Privacy Guard
- Pretty Good Privacy
- Skyddar content med starkt krypto.
- Publika/privata nycklar
- Fingerprint, nyckelservrar
PGP-nyckel: 1024D/0BAC89D9 <forsberg@lysator.liu.se> PGP-fingerprint: B308 87FC 566E 825A 5ABC 247C AC9B AB14 0BAC 89D9 - Ämne för ett eget föredrag.
Lite olika mailklienter
Det finns lika många mailklienter som det finns ambitösa programmerare..- Mutt
- Pine
- mail - originalet.
- Spruce
- Balsa
- Evolution
- Gnus
- ...
Spam och spamskydd
- Varför?
- Billigt!
- Dumma amerikaner köper vad som annonseras för! :-)
- Vad?
- Porr.
- Porr.
- MAKE MONEY FAST!
- Porr.
- Septiktankar
- UCE - Unsolicited Commercial Email
Kännetecken på spam
- Sällan korrekt From-adress.
- STORA BOKSTÄVER
- AOL
- Ofta inkorrekt SMTP.
- Ofta obakåtuppslagningsbar ipadress på sändande SMTP-server.
Alla eventuella klagomål på ordet "obakåtuppslagningsbar" hänvisas till svenska språknämnden - Ofta dialupnät
- Ofta ip från asien
- Ofta annan To än destinationen. Det är "jobbigt" att göra ett mail per mottagare.
Skydd mot spam
- Realtidsspärrlistor i DNS
- Spärrar på IP hos sändande mailserver
- ORBZ.org - Fast inte längre. La ned häromdagen. :-(
- ORBL.org
- MAPS, mail-abuse.org
- spamcop.net
- osiru
- Content-filter
- Automatiska content-filter - checklistebaserade.
- Vändande koll att det är människa i andra änden. Vitlistor.
Sammanfattning
- Lite historia
- Begrepp
- Hur ser ett mail ut?
- Att skicka mail
- Lagra mail
- Att ta emot mail
- Mailklienter
- Spam