10.2. E-post

Til at læse e-breve kan du på næsten alle Unix-systemer finde programmet mail, som er meget simpelt. Skrives f.eks.


[tyge@hven ~]$  mail BRUGERNAVN@MASKINE.DOMÆNE help
og afsluttes med Ctrl-D så er der sendt et brev til BRUGERNAVN@MASKINE.DOMÆNE med indholdet help.

Senere er Elm (elm) kommet med lidt flere muligheder, men ELM bliver ikke videreudviklet mere.

Til tekstbaseret læsning og skrivning af e-breve er der to gode valg. Mutt (mutt) er hurtig og har mange funktioner.

Det skal også nævnes, at Netscape har indbygget post-håndtering, som foretrækkes af mange. Det er grafisk og ret enkelt at bruge.

Figur 10-1. Netscapes mail-funktion

10.2.1. Pine

Pine er et af de gode programmer til at læse og håndtere e-post. Let håndtering af flere postkasser, en lille og god indbygget teksteditor (pico), søgemuligheder, mulighed for at se HTML-formaterede breve og et utal af opsætningsmuligheder gør Pine til et hit.

I den version af Pine som kommer med Red Hat er der endda muligheder for at definere roller (bl.a. med forskellige email-signaturfiler) og farveopsætning. Som det ses på de følgende billeder kan man få forskellige farver på hvert svar-niveau.

Figur 10-2. Pine med farver

En egentlig vejledning til pine er at finde på http://www.washington.edu/pine/tutorial.4/index.html

Lad os tage et par nyttige tricks med pine.

10.2.1.1. Stavekontrol i Pine

Tip: Når du er i gang med at redigere et brev har du mulighed for at få det tjekket for stavefejl. Når du taster Ctrl-T starter Pine det stavekontrolprogram det er sat op til at bruge. Normalt vil det være Ispell med en engelsk ordbog. Hvis du skriver breve på flere sprog kan det være lidt irriterende med Pines en-sprogede stavekontrol. Programmet pine-spell, der kommer med som et af bogens eksempler, er et forsøg på at rette op på dette problem. Hvis du installerer det på dit unix-system og sætter Pine til at bruge det, vil du få mulighed for at vælge mellem alle de sprog der er ordlister til på systemet, når du taster Ctrl-T. Du skal have installeret aspell-da-*.rpm ud over pine selv.

Kommandoerne der vises her installerer pine-spell i dit eget programkatalog (~/bin/):


tyge@hven ~/> mkdir -p ~/bin
tyge@hven ~/> wget -q cvs.linuxbog.dk/unix/eksempler/pine-spell -O ~/bin/pine-spell && O.k.
O.k.
tyge@hven ~/> chmod a+x ~/bin/pine-spell
Hvis der ikke kommer et "O.k." gik noget galt. Så bliver du nødt til at køre kommandoen uden flaget -q, så der kommer lidt information om hvad der sker.

Vi går nu ud fra at pine-spell er installeret i dit eget programkatalog og du har startet Pine. For at sætte Pine op skal du først ud i hovedmenuen. Hvis du ikke allerede er der, så tast M for at komme der ud. Her taster du så S efterfulgt af C for at komme ind i opsætningen. Du skal finde feltet "speller" (prøv W efterfulgt af "speller" og et linjeskift) og ændre det til "~/bin/pine-spell". Når det er gjort taster du E efterfulgt af Y for at gemme ændringen. Næste gang du har skrevet et brev og vil undersøge om der er stavefejl i det, så taster du blot Ctrl-T inden du sender det.

10.2.1.2. Søgning med Pine

Du kan lave meget avancerede søgninger i dine e-post-foldere. For at få dette valgt, skal du fra hovedmenuen trykke s c w agg og afslutte med retur-tasten. Du bør nu stå på et af de mange felter i opsætningen, hvor der står "enable-aggregate-command-set". Tryk x for at vælge, e for exit og bekræft med y. Som et eksempel kan vi nu gå ned i en e-post-folder og finde e-post, hvor ordet Andeby er nævnt et vilkårligt sted. Når du er i e-post-folderen trykker du ;, derefter har du en del forskellige valgmuligheder – vi vælger t for tekstsøgning. Igen har vi en del muligheder og da vi vil søge i alle dele af posten vælger vi a. Nu skrives søgestrengen Andeby ind og du kan nu med z skifte mellem alt post og kun dem, der netop indeholder Andeby. Får man disse kommandoer lært kan man virkelig søge hurtigt og effektivt.

10.2.1.3. Afsender og roller

Nogle personer sidder ikke på den maskine man ønsker e-post sendt tilbage til, og man har derfor brug for at sætte sin afsender-e-post-adresse til eksakt det man vil have. Fra hovedmenuen kan vi trykke s (for setup), c (for config), w customized-hdrs og afslutte med retur. Du er nu på customized-hdrs-feltet. Skriv From: Tyge <tyge@sslug.dk>, hvis e-post skal komme fra "Tyge <tyge@sslug.dk>". Du skal også sætte feature-list=allow-changing-from manuelt i ~/.pinerc.

En anden smart mulighed i Pine er muligheden for at definere roller – dvs. at man kan have en afsender-adresse og signatur-fil for hver identitet man har defineret – f.eks. en privat hhv. en firma-identitet. Vælg først Vælg m(ain menu) s(setup) c(config) w(word to find) confirm-role. Sæt kryds i confirm-role-even-for-default (med x) og vælg e og Yes. Vælg s(setup) r(rules) r(roles) a(add). Derefter kommer man ind i en menu for en af roller man kan definere. Sæt følgende

  • Nickname : Skriv et navn her for den identitet man definerer – f.eks. fornavn, loginnavn, privat, eller lignende. Det er dette "Nickname" man vælger for hver e-post der skal sendes.

  • From pattern : Skriv her din fulde afsender identitet – f.eks. Tyge Brahe <tyge@sslug.dk>

  • Sender pattern : Skriv her din email-adresse – f.eks. tyge@sslug.dk

  • Set Signature : Her kan man skrive filnavnet som indeholder signaturfil for den nuværende identitet. Anføres ikke fuld sti vil filnavnet være i forhold til brugerens hjemmekatalog. F.eks. .signaturfil

  • Set From : Sættes som "From pattern" – f.eks. Tyge Brahe <tyge@sslug.dk>

Tryk e (Exit Setup) når du er færdig og a for at addere hver af de roller du vil definere. Endelig trykkes e (Exit Setup) og y til at acceptere at der laves "Commit changes".

Når man derefter vil sende eller svare på e-post med c (compose) får man en ekstra menu i bunden af Pine:


Press Return to Compose using no role, or ^T to select a role
 ? Help    Ret [Compose] ^T To Select Role
^C Cancel     

Tryk Ctrl-t (eller Ctrl-T) for at vælge ^T. Gå ned på den rolle du vil anvende og tryk på retur-tasten to gange. Nu skriver du e-post i den valgte rolle. Bemærk at "From"-feltet nu skal være sat svarende til den identitet du har valgt. Metoden virker også ved svar på e-post.

10.2.1.4. Små nyttige tips til opsætning af Pine

Tip: Under setup, skal du sætte "character-set = ISO-8859-1" for at få dansk tegnsæt til at virke.

Tip: Pine kender ikke noget til tegnkodninger, men sender som standard bare brevene direkte ud til terminalen bit for bit. Hvis man for eksempel modtager breve kodet med UTF-8 og ens terminal arbejder med ISO-8859-1 kan det give problemer. Man kan komme omkring det ved at lade Pine kalde et tegntabelomkodningsprogram, når det skal vise et brev kodet med en anden kodning end den terminalen forventer. Man kan for eksempel installere programmet "yudit". På Mandrake 9.0 skrives blot urpmi yudit som "root". På Red Hat 7.2 og 7.3 skal man køre kommandoen rpm --upgrade ftp://rpmfind.net/linux/rhcontrib/7.2/i386/yudit-2.4-4.i386.rpm som "root". Når Yudit er installeret skal følgende linje føjes til filen ~/.pinerc:


display-filters=_CHARSET(UTF-8)_ /usr/bin/uniconv -encode iso-8859-1 -decode utf-8


Tip: Vil du se alle headere i din e-post, skal du under setup sætte "enable-full-header-cmd". Tryk på h for at se alle headere når du læser post.

Tip: Pine kan farvekode beskederne når du læser dem, så det er lettere at se, hvem der skriver hvad i en diskussion. Fra hovedmenuen trykkes "s k", hvorefter farver på oversigten, "quotelevels" og meget andet kan sættes op.

Tip: Hvis du vil kunne hoppe direkte til en URL angivet i en e-post, kan du give fuld sti til din favoritbrowser i setup under url-viewers, f.eks. /usr/bin/netscape.

Tip: Vil du gerne have pæn udskrift på printeren af dine tekst-emails, så kan du med fordel installere programmet enscript, der følger med de fleste Linux-distributioner (eller kan findes via http://rpmfind.net). Sæt din udprintningskommando som følger: I hovedmenuen af Pine, tryk "s" "p" "pil ned" "pil ned" "c". Sæt kommandoen til enscript -2rG --word-wrap, så får du to kolonner og der deles linjer ved ordgrænserne.

Du kan naturlig generelt bruge enscript -2rG --word-wrap TEKSTFILNAVN til at udskrive tekstfiler til printeren.

10.2.2. Vise nye e-breve

... kan man ikke sætte en systemvariabel i sin kommandofortolker, så man får besked, når der er ny post? ...

10.2.3. Hente e-post fra POP-servere med Fetchmail

fetchmail bruges til at hente e-breve fra en postserver hos din internetudbyder. Programmet styres gennem filen .fetchmailrc i dit hjemmebibliotek. Den kan f.eks. se sådan her ud:


poll post.fiktiv.dk
proto POP3
user tyge
pass McMombo
Når du kører fetchmail, vil den i dette eksempel forsøge at hente post fra serveren post.fiktiv.dk med protokollen POP3 (som er den mest almindelige) og logge på serveren med brugernavnet "tyge" og adgangskoden "McMombo". Hvis der er post til "tyge", leverer fetchmail den videre til det lokale postsystem, der så lægger brevene i Tyges postkasse.

De første gange, du kører fetchmail, vil du som regel gerne se, om tingene går, som de skal, når posten hentes. Hvis fetchmail køres med parameteren -v, skriver den, hvad der foregår undervejs.

Hvis du er til grafisk baserede opsætningsværktøjer, kan du redigere din .fetchmailrc ved hjælp af programmet fetchmailconf.

Tip:Nogle post-servere vil ikke tillade at du bruger POP3 fra andre maskiner og tillader kun Secure shell som login-metode. Her er et mere avanceret trick til at hente e-post via en POP3-server sat op til at køre alene på localhost. Først skal du lave en .fetchmailrc med følgende indhold.


poll localhost with proto pop3 port 1234
    user "tyge" there with password "hemmeligt" is tyge here options \
pass8bits mimedecode limit 100000 fetchall

Opsætningen er til at "tyge" på klient og server med adgangskode "hemmeligt" på serveren kan hente e-post op til maksimalt 100000 oktetter (ca. 80 kb per e-post-besked).

Du skal nu lave en kommando eller alias ssh -L 1234:mailserver:110 -v mailserver, som du starter i et terminalvindue. Du kan se at du faktisk logger ind på mailservermaskinen ved dette.

I et andet vindue på lokalmaskinen (klienten) skriver du nu fetchmail, hvorefter din e-post hentes via POP3 med ssh som krypteret tunnel mellem de to maskiner.

Tip: Hvad gør man hvis man har en mail-konto, som skal tømmes men man ikke skal gemme alle de emails? Det kan være relevant hvis man sender emails videre til en webmail-konto. Man skal have en .fetchmailrc-fil som gør det muligt at hente post fra POP3-serveren.


poll DIN_POP3_MAILSERVER
proto POP3
user DIT_BRUGER_ID
pass DIN_ADGANGSKODE

Derefter kan man køre fetchmail --bsmtp /dev/null for at tømme alle emails ud i /dev/null dvs. de smides ud.

10.2.4. Sortering og spam-filtrering af e-breve med procmail

Hvis du får mange e-breve ind pr. dag, så vil du nok hurtigt lave forskellige foldere til forskellige emner. F.eks. kan du lave en folder til hver af de diskussionslister på SSLUG, som du deltager i. Et program, som du kan have meget glæde af, er procmail, der kan sortere e-breve automatisk ned til de e-post-foldere, du har oprettet. Henter du breve med fetchmail, så kan procmail lave sorteringen ud fra konfigurationsfilen ~/.procmailrc. I eksemplet har vi post liggende i ~/mail-kataloget, og herunder har vi forskellige filer som er brevfoldere.


path=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
maildir=$HOME/mail      # Her _skal_ procmail kunne aflevere din mail.
default=$MAILDIR/mbox   # Forvalgt folder til af aflevere e-breve i
logfile=$MAILDIR/.from   # Her gemmer vi en log over hvilke e-breve der kom
lockfile=$HOME/.lockmail  # Fil til at lave lås med.

# REJECT: sikkert spam e-post
# Filen ~/.procmailrc.spam indeholder da regexps der 
# matches på brevets headere.
# I ~/.procmailrc.spam kan således indsættes linjer
# ^Subject: .*(\$\$|sex|adult|offer)
# som matcher det du vil slippe for. E-post, der
# fanges af reglen gemmes i spam post-mappen
:0
* ? egrep -q -f $HOME/.procmailrc.spam
spam

# Første liste er mgp-listen for Magic Point programmet
# Vi tjekker efter To eller Cc feltet er til listen mgp-users@mew.org
# og gemmer i ~/mail/mgp
:0
* ^(To:|Cc:).*mgp-users@mew.org
mgp 

# Dernæst har vi sslug-teknik som altid sætter "Reply-To" feltet
:0
* ^Reply-To:.sslug-teknik@sslug.dk
sslug-teknik

# Alle breve fra brugere @imm.dtu.dk gemmer vi i IMM-folderen
:0
* ^From:.*@imm.dtu.dk
IMM

# Vi kan også gemme en ekstra kopi af breve – dvs. brevet bliver 
# også processeret af de efterfølgende regler.
# Kommer der et e-brev fra statsministeren stm@stm.dk så gemmer vi lige
# en ekstra kopi i stats-folderen
:0c
* ^From:.*stm@stm.dk
stats


# Vi tager og sender en ekstra kopi af emails fra stm@stm.dk
# til redaktionen@ekstrabladet.dk
:0c
* ^From:.*stm@stm.dk
! redaktionen@ekstrabladet.dk

# Endelig kan vi faktisk også udføre kommandoer via mail
# Her lader vi e-breve med emnet EJECT udføre kommandoen eject
# og da det kun er en kopi vi udtager, så vil brevet også gå til 
# det forvalgte brevfolder.

:0c
*^Subject:.eject
|/usr/bin/eject      

# Alle andre mails ender i default mail folderen. 

En langt mere restriktiv .procmailrc-fil kan være


path=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
maildir=$HOME/mail      # Her _skal_ procmail kunne aflevere din e-post.
default=$MAILDIR/mbox   # Default folder til at aflevere ebreve i
logfile=$MAILDIR/.from   # Her gemmer vi en log over hvilke ebreve der kom
lockfile=$HOME/.lockmail  # Fil til at lave lås med.

:0
* ? egrep -q -f $HOME/.procmailrc.allow
$DEFAULT

:0
spam

Alt gemmes i spam-folderen medmindre det er tilladt ved tjek i forhold til filen ~/.procmailrc.allow. Denne fil indeholder f.eks.


^((Resent-)?(To|Cc|Bcc|From)): .*(tyge|root|.*master)@sslug\.dk
^From: freshmeat daemon <freshd@freshmeat\.net>$
^Sender: Security Portal Mailing List
^Mailing-List: contact sslug-.*@sslug.dk
^To: apacheweek@apacheweek\.com$
^Delivered-To: mailing list announce@apache\.org

I dette tilfælde er det kun e-post til tyge@sslug.dk (tilsvarende også root og postmaster), og de e-post-lister, som brugeren tyge kender, der ender i $MAILDIR/mbox – alt andet ender i spam-folderen. Det kan anbefales at tjekke sin spam-folder fra tid til anden for at være sikker på at e-post ikke er gået galt i procmail-reglerne. Er du helt sikker på dine spam-regler, så kan du sende mail direkte til /dev/null i stedet for spam-folderen.

Procmail er guld værd, og man procmail, man procmailex og man procmailrc er værd at læse. Du kan også være glad for at lave et alias alias ms "mailstat ~/mail/.from", idet du så kan skrive ms efter at have kørt fetchmail, og du vil så få vist hvor mange breve og størrelsen af disse som er blevet fordelt til de forskellige foldere.

Et smart procmail-filter er følgende, som retter subject af brevet til en advarsel om et potentielt virus-angreb hvis attachment kan indeholde en virus.


:0
* ^Content-type: (multipart/mixed|application/octet-stream)
{
    :0 HB
    *  ^Content-Disposition: attachment;
    *filename=.*\.(exe|vbs|shs|com|pif|bat|src|wfs|vbe|wsh|hta)
    {
        :0 fhw
        | formail -i "Subject: Attachments kan indeholde virus !"
    
        :0:
        $DEFAULT
    }
}

Et andet smart trick er følgende spam-filter, som tjekker om en afsender er black-listet i filen /home/dig/black.lst. Hvis dette er tilfældet så sendes automatisk en email til afsenderen om at man mener det er spam. Samme trick kan bruges til mere venlige svar til ens venner om at man lige er væk, og at man kan prøve at ringe i stedet eller lign.


# Test om afsender er blacklistet. Hvis ja, send et autosvar...

from=`formail -xReturn-Path:`
subj=`formail -xSubject:`

:0
* ?
formail -x"From" -x"From:" -x"Sender:" -x"Reply-To:" -x"Return-Path:" -x"To:
" | egrep -is -f /home/dig/black.lst
| ( \
    echo "To: $FROM";\
    echo 'From: "Spam Filter" <no-spam@ditdomain.dk>';\
    echo "Subject: Spam Detected: $SUBJ"\n;\
    echo 'Dette er en automatisk advarsel !\n';\
    echo 'Hold op med at sende spam!\n';\
  ) | $SENDMAIL -U $FROM

Filen /home/dig/black.lst udfyldes med en email-adresse per linje, ala.


spam@spam.com
unwanted@mostwanted.dk
reklame@jatak.dk

Der er under bogens eksempler på cvs.linuxbog.dk/unix/eksempler/procmail et meget stort eksempel på hvordan en .procmailrc-fil kan se ud hvis den skal filtrere en masse spam fra og samtidig sortere SSLUGs lister fornuftigt.

10.2.5. spam-filtering med spamassasin

Har du længe haft din e-post-adresse liggende på en web-server et sted, eller har du blot én gang sendt en besked til en offentlig nyhedsgruppe, så har du sikkert også fået en del "uimodståelige" tilbud - eller spam som det rettelig hedder.

Der har været mange løsninger på hvad der kunne gøres ved det. Man kan offentligt hænge spammeren ud, skrive til postmesteren ((postmaster) det hjælper sjældent), installere razor, installere Realtime Blackhole List eller det sidste nye skud på stammen, SpamAssassin.

SpamAssassin installeres på en klient-maskine, eller hos en internetudbyder. Her kigger SpamAssassin så den indkommende post igennem og kigger efter mønstre, der tyder på at brevene er spam. Hver ting der testes for i et brev, får så et point. Skulle der optræde et par "$" (dollartegn) i emnelinjen, giver det 2,4 point, et enkelt udråbstegn giver kun 0,1 point. Når der så er opsamlet 5 point, bliver brevet klassificeret som spam. Tærsklen kan selvfølgelig ændres, hvis man er mere eller mindre tolerant end SpamAssassins forfattere.

Har du før brugt procmail (se Afsnit 10.2.4), er SpamAssassin en nem lille ekstra ting at installere. Programpakken der skal installeres fås både som tar.gz, RPM og debian-pakke. Skulle der være afhængigheder af andre RPM-pakker, kan disse findes på rpmfind.net. Og apt-get skal nok løse sådanne problemer for debian-brugere. I din ~/.procmailrc tilføjes så blot nedenstående linjer:


# Filnavn: ~/.procmailrc
path=/bin:/usr/bin:/usr/bin
maildir=$HOME/mail       #you'd better make sure it exists
logfile=$MAILDIR/log     #recommended
pmdir=$HOME/.procmail

:0fw
| spamassassin 

:0:
* ^X-Spam-Status: Yes
caughtspam

Det vil typisk være passende at placere ovenstående i den slutningen af ~/.procmailrc-filen, hvis du har andre regler i forvejen. SpamAssassin bruger en del CPU-kraft, så det er en fordel først at filtrere lukkede postlisterlister som for eksempel <sslug-teknik@sslug.dk> fra:


...

:0
*^Delivered-To: mailing list sslug-.*@sslug.dk$
sslug

:0fw
| spamassassin 

:0:
* ^X-Spam-Status: Yes
caughtspam

SpamAssassin vil nu tage det brev der kommer igennem, og undersøge om der er noget der minder om spam. Hvis det opnår under 5 point, bliver der indsat en linje i brevhovedet om at det ikke er spam:


X-Spam-Status: No

Hvis der derimod findes lidt "underlige" ting, så ændres emnelinjen til *****SPAM*****, der indsættes en forklaring i toppen af brevet med en beskrivelse af hvorfor det blev kategoriseret som spam, og der indsættes en linje i brevhovedet om at det er spam:


X-Spam-Status: Yes

Og med ovenstående ~/.procmailrc-fil bliver brevet lagt i folderen caughtspam, som man så en gang imellem kan kigge lidt i for at se om der skulle være nogle smuttere. SpamAssassin fanger rundt regnet 98% af den rigtige spam og enkelte bliver ikke fanget, men det er meget få. Her er et grelt eksempel med 16.70 point:


From:     Earlene Drake <av853av@erols.com>
To:     pto@sslug.dk
Subject:    To People Who Want To Get The Lowest Intrest Rate But Can't Get Started mosnbd s
Date:   Thu, 24 Jul 03 11:01:07 GMT

This mail is probably spam.  The original message has been attached
along with this report, so you can recognize or block similar unwanted
mail in future.  See http://spamassassin.org/tag/ for more details.

Content preview:  REFINANCE NOW AND SAVE BIG! If you are paying more than
  4.6% on your mortgage, we can save you money! NO COST OR OBLIGATION
  [...] 

Content analysis details:   (16.70 points, 5 required)
NO_COST            (0.9 points)  BODY: No such thing as a free lunch (3)
REFINANCE_NOW      (2.9 points)  BODY: Home refinancing
BANG_MONEY         (1.7 points)  BODY: Talks about money with an exclamation!
HTML_LINK_CLICK_HERE (0.1 points)  BODY: HTML link text says "click here"
HTML_30_40         (0.6 points)  BODY: Message is 30% to 40% HTML
BAYES_80           (2.9 points)  BODY: Bayesian classifier says spam probability is 80 to 90%
                   [score: 0.8411]
USERPASS           (1.3 points)  URI: URL contains username and (optional) password
HTTP_USERNAME_USED (0.7 points)  URI: Uses a username in a URL
NUMERIC_HTTP_ADDR  (1.6 points)  URI: Uses a numeric IP address in URL
MISSING_MIMEOLE    (0.1 points)  Message has X-MSMail-Priority, but no X-MimeOLE
CLICK_BELOW        (0.0 points)  Asks you to click below
MIME_HTML_ONLY     (0.1 points)  Message only has text/html MIME parts
UPPERCASE_25_50    (1.0 points)  message body is 25-50% uppercase
FORGED_MUA_OIMO    (2.8 points)  Forged mail pretending to be from MS Outlook IMO

The original message did not contain plain text, and may be unsafe to
open with some email clients; in particular, it may contain a virus,
or confirm that your address can receive spam.  If you wish to view
it, it may be safer to save it to a file and open it with an editor.

Resten af ovenstående mail er klippet væk, da du sikkert ikke er interesseret i selve indholdet.

10.2.6. Kryptering af post

I takt med internettets udbredelse er der kommet flere og flere mindre venligsindede mennesker på nettet. Elektronisk post er desværre meget let at aflytte, og ønsker du brev-hemmelighed, må du kryptere din post. Kryptering er en proces hvor dine data bliver skrevet i kode. Krypterede breve kan kun læses af den person, de er stilet til.

I Linux-verdenen finder der flere programmer til kryptering af post. Heldigvis findes der en standard for hvordan post bør krypteres, og det er derfor ligegyldigt hvilket krypteringsprogram, du benytter. Vi har valgt at introducere GNU Privacy Guard (GPG), idet GPG kommer under en ægte fri licens (GNU General Public License). Samtidig kan GPG arbejde sammen med det anerkendte Pretty Good Privacy (PGP).

GPG kan også bruges til at signere breve. En digital signatur er mere end en underskrift. Den digitale signatur fortæller, ud over hvem der er afsender, også hvornår brevet blev signeret. Endvidere bruges den digitale signatur til at tjekke om brevet er blevet ændret under dets rejse fra afsender til modtager. I skrivende stund kender forfatterne ikke det officielle Danmarks holdning til GPG.

Ideen bag GPG er, at du har en offentlig og en privat nøgle. Den offentlige nøgle gør det muligt for alle at tjekke din signatur, som du fremstiller vha. din private nøgle. Når du skal kryptere post, skal du først udveksle nøglepar med den person, som du ønsker at kommunikere med. Udvekslingen sker ofte i forbindelse med møder i Linux-brugerforeninger.

Du kan hente GPG fra GPG's ftp-server ftp://ftp.gnupg.org. Selve installationen er lige til at gå til – nedenfor ser du hvordan.


[tyge@hven ~]$ wget ftp://ftp.gnupg.org/pub/gcrypt/gnupg/gnupg-1.0.1.tar.gz
[tyge@hven ~]$ tar xzvf gnupg-1.0.1.tar.gz
[tyge@hven ~]$ cd gnupg-1.0.1
[tyge@hven gnupg-1.0.1]$ ./configure
[en masse klippet væk]
[tyge@hven gnupg-1.0.1]$ make
[en masse klippet væk]
[tyge@hven gnupg-1.0.1]$ su
Password: hemlig
[root@hven gnupg-1.0.1]$ make install
[root@hven gnupg-1.0.1]$ exit
[tyge@hven gnupg-1.0.1]$ cd ..
[tyge@hven ~]$ rm -rf gnupg-1.0.1

Efter installationen er du klar til at bruge GPG. Det første, du skal gøre, er at generere et nøglepar.


[tyge@hven ~]$ gpg
gpg: Warning: using insecure memory!
gpg: /home/tyge/.gnupg: directory created
gpg: /home/tyge/.gnupg/options: new options file created
gpg: you have to start GnuPG again, so it can read the new options file
[tyge@hven ~]$  gpg --gen-key
gpg (GnuPG) 1.0.1; Copyright (C) 1999 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: Warning: using insecure memory!
gpg: /home/tyge/.gnupg/secring.gpg: keyring created
gpg: /home/tyge/.gnupg/pubring.gpg: keyring created
Please select what kind of key you want:
   (1) DSA and ElGamal (default)
   (2) DSA (sign only)
   (4) ElGamal (sign and encrypt)
Your selection? 1
DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
              minimum keysize is  768 bits
              default keysize is 1024 bits
    highest suggested keysize is 2048 bits
What keysize do you want? (1024) 1024
Requested keysize is 1024 bits       
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct (y/n)? y
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: Tyge
Email address: tyge@sslug.dk
Comment: 
You selected this USER-ID:
    "Tyge Brahe <tyge@sslug.dk>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

Enter passphrase: DetteErHemlig!
Repeat passphrase: DetteErHemlig!

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++++++++++++..+++++++++++++++.+++++++++++++++++++++++++++++++++++++++++
+++++++++..++++++++++.++++++++++++++++++++++++++++++++++++++++>++++++++++>
+++++....................................+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
++++++++++.+++++++++++++++.++++++++++....++++++++++.+++++++++++++++.+++++++
+++.+++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++>+++++....
..........+++++^^^
public and secret key created and signed

Du bør med det samme fremstille en nøgle, som kan bruges til at tilbagekalde den, du netop har fremstillet. Det er vigtig, idet det kan ske at en eller anden finder ud af din private nøgle. En tilbagekaldelsesnøgle genereres vha. kommandoen gpg --gen-revoke tyge@sslug.dk (vælg option 1 og gem hvad du ser på skærmen i en fil). Tilbagekaldelsesnøglen (gemt i en fil) bør opbevares et andet sted end dit hjemmekatalog, f.eks. kan du have den liggende på en diskette i dit pengeskab.

Når du nu har fået genereret nøgler, er du klar til at signere breve. Til at begynde med vil vi antage, at du skriver brevet først, signerer det og til sidst indlæser det signerede brev i dit postprogram. Nedenstående kommandosekvens viser dig hvordan.


[tyge@hven ~]$ cat brev
Kære Otto,

Du kan tro, at vi har det sjovt med GNU!

Tyge
[tyge@hven ~]$ gpg --clearsign brev
[tyge@hven ~]$ cat brev.asc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Kære Otto,

Du kan tror at vi har det sjovt ned GNU!

Tyge
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE4elQW60LvO+QONowRAntQAKCIvUMIsyf1US2JoHC/VKgD73Ps1gCfRvRM
H9uEQNpfPp+afnkp86snovo=
=6+k8
-----END PGP SIGNATURE---

Den opmærksomme læser bemærker at det signerede brev ligger i filen brev.asc, dvs. der er blevet tilføjet .asc til det oprindelige navn.

For at få det største udbytte af GPG bør du læse den glimrende brugervejledning. Den finder du på http://www.gnupg.org/docs.html.

Skal du benytte pine sammen med GPG, så læs http://www.linuxsecurity.com/feature_stories/feature_story-83.html. Vær opmærksom på om pinegpg-install rent faktisk indsætter de rigtige linjer i ~/.pinerc – i forhold til hvor dine GPG-programmer ligger. Måske skal man editere /bin/filnavn til /usr/bin/filnavn.

10.2.7. Hent e-post fra en Exchange-server

Microsoft har været så venlige at lave en nyere type e-post-server, MS Exchange, som uheldigvis ikke er dokumenteret for godt. Heldigvis kan man bruge serveren fra f.eks. Netscapes e-post-funktion. I Netscape skal du under "preferences"->"mail" angive at du henter e-breve fra en "IMAP" server – ikke POP – og sætte serveren til at være exchange-serveren. Det er ikke den fulde funktionalitet, du får, men det kan bruges.

10.2.8. Konvertering fra Outlook til Linux-e-post

En metode til at give Linux-brugeren adgang til e-post som ligger i Outlook koblet til en Exchange-server er følgende. Det kræver dog en Exchange-server med imap-understøttelse:

En anden måde er at benytte KDEs program kmailcvt, som kan oversætte dine gamle Outlook 4 og 5 postbokse til Unix-postfiler. Efter sigende skulle dette være uden problemer, dog kan adressebøger stadig give problemer.

10.2.8.1. Outlook Express til mbox konvertering

En tredie metode, er at konvertere din *.pst-fil til *.mbx (eller *.dbx) format, som Outlook Express bruger. Derefter bruges oe2mbx til at konvertere til mbox-format, der kan læses af de fleste post-programmer på Linux-boksen. Du skal hente Linux-versionen af oe2mbx på adressen: http://ftp.sslug.dk/oe2mbx-1.21.tar.gz. Den officielle side (http://www.micropop.com/code/) er umiddelbart lukket, men prøv at søge på http://google.com.

Det skal lige siges, at under konvertering fra MS Exchange til MS Outlook Express mister man alle "mail headers", dvs. at information om hvordan e-posten kom til din maskine går tabt. Dette kan være en Exchange-bug, eller der kan være overset en konfigurationsmulighed.

Før vi går i gang, så afsæt tiden til dette projekt – det tager mange timer at komme igennem. Det kan også anbefales at have ca. 3 gange så meget ledig diskplads som den post-mængde man har i Outlook Express.

Fra Exchange til Outlook Express.

Konvertering fra Exchange kræver at du går via MS Outlook Express. Hvis du ikke bruger Exchange kan du hoppe dette skridt over. Du kan importere din post direkte fra Exchange til Outlook Express via en Wizard. Start Outlook Express, vælg "File"->"Import"-> "Microsoft Exchange". Derefter vælger du Profil og siger Næste - venter – OK.

Hvis du har lavet en .pst-fil i Exchange til offline-læsning kan du skabe en ny profil, når du kommer til det punkt. Du skal så vælge manuel opsætning og tilføj *.pst fil. (Dette kan gøres uden kontakt til Exchange-serveren). Resten er som beskrevet ovenfor.

Fra Outlook Express til Linux mbox

Windows: Læg oe2mbx.exe i roden (c:\) og kopiér eller flyt alle *.dbx-filer til mappen c:\mail. Åben en MS-DOS-prompt og skriv: c:\oe2mbx c:\mail*.dbx. Voila, du har nu én eller flere mbox-filer, klar til at kopieres over på din Linux-maskine.

Linux: Start med at kopiere alle .dbx-filer til $HOME/mail/.


[tyge@hven ~]$ tar xzvf oe2mbx-1.21.tar.gz
...
[tyge@hven ~]$ cd oe2mbx-1.21
[tyge@hven ~/oe2mbx-1.21]$ make
...
[tyge@hven ~/oe2mbx-1.21]$ ./bin/oe2mbx ~/mail/*.dbx

Fra mbox til maildir (qmail) Hvis du bruger qmail og maildir kan du til slut hente et program (perl-script) som hedder mbox2maildir fra http://www.qmail.org/mbox2maildir.

Tak til: "Outlook -> Netscape"-tråden på sslug-teknik den 21. dec. 2000. Se: http://www.sslug.dk/emailarkiv/teknik/2000_12/msg00776.html og http://www.sslug.dk/emailarkiv/teknik/2000_12/msg00779.html.