Artikel top billede

(Foto: Computerworld)

Byg et elektronisk posthus - del 3

I de foregående afsnit satte vi vores elektroniske posthus op, og nu er det så tid til at give vores brugere adgang til deres post.

Af Kenneth Geisshirt, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Der findes flere protokoller til at læse post. Protokollerne beskriver forskellige måder, hvorpå kommunikationen mellem server og klienten fungerer. De to mest udbredte på det åbne internet er pop (post office protocol) og imap (internet message access protocol), mens mapi (messaging application programming interface) er meget udbredt internt i virksomheder, da Microsoft Exchange/Outlook bruger mapi som protokol.

Både pop3 og imap er åbne protokoller, det vil sige, alle kan vederlagsfrit implementere protokollerne, server- og klientdelen, og derfor finder du meget open source-software, der understøtter disse to protokoller.

Mens pop er meget enkel og primært henvender sig til store installationer, hvor brugerne henter deres post til deres egen computer (tænk her på en internetudbyder), understøtter imap et system af folderen og muligheder til at udføre flere opgaver på serveren. Skal dit posthus bruges i din familie eller en virksomhed, er imap at foretrække, da du ikke nødvendigvis skal tage backup af post på en række brugeres computere, da de har al post liggende centralt på din server.

Skal pop og imap fungere sikkert, skal postkasser tilgås over krypterede forbindelser. Ssl og tls er vigtige komponenter, og du bør opfordre dine brugere til at bruge dette ekstra lag.

Husk lige!

Det er vigtig at huske at opgradere en server, når nye opdateringer er klar. Debian GNU/Linux er kendt for at gøre det smertefrit at opgradere. Du skal udføre to kommandoer: sudo apt-get update og sudo apt-get dist-upgrade. Den første opdaterer den interne database med de nyeste versionsnumre, mens den anden kommando finder ud af, hvilke softwarepakker som skal opgraderes (processen er at downloade og installere nye versioner).

Til Debian GNU/Linux (og afledte distributioner som Ubuntu Linux) findes der et rigtig smart lille program ved navn apticron. Efter installation afvikles programmet typisk en gang om dagen, og det tjekker, om der er opgraderinger, som du bør installere.

Er der opgradering til dig, sender apticron dig en e-mail. På den måde behøver du ikke at tjekke din server selv hele tiden, men får besked, når der skal gøres noget. Installationen af apticron sker med kommandoen sudo apt-get install apticron. Efter installationen skal du rette i filen /etc/apticron/ apticron.conf, hvor du skal indsætte din e-mail-adresse.

Det kan være en fordel, at uret på din server går rigtigt. Grunden er, at det kan være vigtigt, at tidspunkter i e-mails er helt korrekte. Internettet bruger et særligt system af tidsservere (og ikke tidsrøvere). For at bruge dem skal du installere pakken ntp med kommandoen sudo apt-get install ntp.

Dovecot, lad posten flyve

Dovecot er et stykke open source-software, som implementerer både pop og imap. Navnet er ganske sigende, da dovecot (eller dovecote) er en bygning til at huse duer – med andre ord er Dovecot en samling dueslag. Hovedudvikleren bag Dovecot er den finske programmør Timo Sirainen, og fokus er på korrekt og sikker implementering af diverse protokoller. Ud over pop og imap understøtter Dovecot også ssl/tls. Det vil sige, det er muligt at kommunikere med Dovecot over krypterede forbindelser.

Du kan være i den situation, at Dovecot ikke er installeret sammen med VBox.Adm. Heldigvis er Dovecot en standard-pakke i Debian GNU/Linux, så du kan hurtig rette op på den situation. Du kan med kommandoen sudo apt-get install dovecot-imapd dovecot-popd installere både imap- og pop-understøttelsen.

dovecot-sql.conf

driver = mysql

connect = host=localhost dbname=vboxadm

user=vboxadm password=qwerty

default_pass_scheme = PLAIN

password_query = SELECT CONCAT(m.local_part, ‘@’, d.name) AS user, m.password AS password FROM mailboxes AS m LEFT JOIN domains AS d ON m.domain_id = d.id WHERE m.local_part = ‘%n’ AND d.name = ‘%d’ AND m.is_active AND d.is_active

dovecot.conf – et udsnit

first_valid_uid = 105
first_valid_gid = 109

Ssl, en vigtig komponent

Som nævnt understøtter Dovecot brugen af ssl til at kryptere forbindelser mellem server og klienter. For at få det til at virke behøver du et ssl-certifikat. Køb enten et officielt eller generer et selv. Fordelen ved et hjemmelavet er, at det er gratis.

Men fordelen ved at købe et er, at du får et officielt certifikat, hvor dine brugere får sikkerhed for, at du og din server er dem, I udgiver jer for at være. Et certifikat behøver ikke at koste en formue – RapidSSL sælger certifikater så billigt som 49 dollars/år. For at komme i gang med bliver der genereret et ssl-certifikat under installationen af Debian-pakken.

Konfiguration

Med Dovecot installeret på din server skal du skrive konfigurationsfiler, som passer sammen med Postfix og VBox.Adm. Dovecots konfigurationsfiler finder du i folderen /etc/dovecot. Der er tale om to konfigurationsfiler, som du skal arbejde med. Med Vbox.adm får du skabeloner, som du kan tage udgangspunkt i. For at komme i gang, skal du kopiere skabelonerne til omtalte folder – kommandoerne cd /etc/dovecot ; sudo cp /usr/share/doc/vboxadm-common/examples/dovecot/* . gør tricket.

Filen dovecot-sql.conf indeholder information om adgangen til databasen som Vbox.Adm bruger i MySQL. I boksen dovecot-sql.conf finder du en opsætning, som passer med den generelle opsætning i denne serie.

Den primære konfigurationsfil for Dovecot er dovecot.conf. Du behøver ikke at rette meget i den, men du skal finde bruger-ID og gruppe-ID for brugeren vmail.

Eftersom brugeren vmail bruges til at afvikle dele af dit postsystem, skal Dovecot kende de numeriske værdier, som bruges internt i Linux. Du kan med kommandoen id vmail få både bruger-ID (uid) og gruppe-ID (gid). De to værdier skal du skrive i dovecot.conf i linjerne first_valid_uid og first_valid_gid. I boksen dovecot.conf – et udsnit finder du et eksempel på, hvordan de to linjer kan se ud. Har du et ssl-certifikat, skal du bruge linjerne, som begynder med ssl.

Skabelonen, som følger med Vbox.Adm, angiver, at postkasseformatet er Maildir. I Linux/UNIX findes der flere forskellige filformater til håndtering af postkasser. At bruge Maildir er ikke tosset, idet hver e-mail gemmes i en fil for sig.

Der findes andre (ældre) formater, hvor alle e-mails i en postkasse gemmes i en stor fil. Begrundelsen for det har typisk været, at du slipper for at bruge meget plads ved at have en masse små filer. Det er da også korrekt, at filsystemer til Linux og UNIX havde det problem tidligere. Men nyere filsystemer (herunder ext4, som stadig er det mest udbredte filsystem) kan optimeres til mange små filer.

Har du et lille antal brugere (10-15 stykker) med små e-mails (10.000-20.000 beskeder) er det nok ikke noget, du behøver at bruge meget tid på at tænke over (du kan læse mere om emnet i man page til ext4: Brug kommandoen man mke2fs, og begynd med option -T).

Oplysninger og postkasserne er gemt i MySQL og en gang imellem kan det være rart at tjekke direkte. Logger du på MySQL med kommando-linje-programmet mysql, kan du få en liste af alle postkasser med følgende SQL-forespørgsel: select local_part,domains.name,password from mailboxes,domains where domains.id=domain_id.

Når du har sat Dovecot op, skal du huske at genstarte Dovecot med kommandoen sudo /etc/init.d/dovecot restart. For at sikre dig, at alt er gjort rigtigt, er det en god ide at sende en e-mail til de postkasser, som du har oprettet. I boksen Send en test kan du se, hvordan du kan gøre det fra en kommando-linje på selve postserveren – fed skrift viser, hvad du skal skrive.

Thunderbird, dit e-mailprogram

Mozilla Thunderbird er en glimrende imap-klient. Programmet er open source-software og findes til de udbredte platforme som Windows, Mac OS X og Linux. Og naturligvis kan du bruge Thunderbird sammen med Dovedot og resten af dit posthus.

Du skal give dit postserver et navn på en navneserver, og det skal du bruge til at oprette forbindelse til din postkasse. Ved at bruge Vbox.Adm er det vigtigt at huske, at brugernavne (eller navne på postkasse) har form som en e-mail-adresse.

Filtre med Sieve

Arbejdsgangen med at modtage en e-mail er groft sagt, som følger: Postfix tager imod brevet og afgør, om det skal afleveres lokalt (i en postkasse) eller sendes videre til en anden postserver. Lokal aflevering betyder, at Postfix giver brevet videre til et program, som gemmer det i den korrekte postkasse.

Du kender uden tvivl til brugen af filtre i postprogrammer. Når postprogrammet læser brevene i indbakken, løbes en række regler igennem. Hvis en eller flere betingelser er opfyldt, udføres en handling. Et eksempel kan være, at alle breve fra dine gamle klassekammerater skal flyttes til en bestemt folder.

Ulempen med denne slags filtre er, at din computer skal bruge en masse tid på at filtrere e-mails. Endvidere er det ofte nødvendigt at hente alle nye e-mails over til klienten, og skal en del e-mails så flyttes til andre foldere, skal de sendes tilbage til serveren. Bruger du så mere end én computer til at læse e-mails, har du udfordringen med at holde dine filtre up to date på alle computere hele tiden.

Med Postfix/Dovecot er det muligt at filtrere og behandle brevene, inden de ender endeligt i en postkasse. Der findes et særligt postfiltersystem ved navn Sieve (si på engelsk). Ideen er, at du skriver dine filterregler som et lille program. Filterprogrammet udføres på serveren, hver gang der sker en lokal aflevering af en e-mail. Umiddelbart lyder Sieve som en kompleks opgave, men du kan skrive dine filterprogrammer direkte i Thunderbird og gemme dem på postserveren. Det kræver dog, at du installerer tilføjelsesmodulet Sieve til Thunderbird.

Det grundlæggende koncept i Sieve er, at du skriver ”hvis så”-regler. Betingelserne kan gå på alt i en e-mail, men det typiske er dog at bruge felter i hovedet eller emnet. I boksen Smid spam væk med Sieve kan du se en meget enkel regel. Betingelsen i reglen er, om feltet ’X-Spam-Flag’ findes og er sat til ’YES’.

Feltet bruges af Spam Assassin til at indikere, om en e-mail er spam eller ej. Mellem de krøllede parenteser finder du handlingen. I denne regel er handling at smide brevet væk (discard). Har du absolut tillid til Spam Assassins afgørelser, om et brev er spam eller ej, kan dette Sieve-filter spare dig for mange sletninger af uønskede e-mails. Ønsker du en mindre drastisk løsning, kan du flytte breve, som Spam Assassin mener, er spam til en særlig folder – boksen Flyt spam med Sieve viser, hvordan du kan bruge funktionen fileinto til at flytte breve.

Smid spam væk med Sieve

if header :contains “X-Spam-Flag” “YES” {
discard;
}

Flyt spam med Sieve

require “fileinto”;
if header :contains “X-Spam-Flag” “YES” {
fileinto “spam”;
}

Næste gang

I dette afsnit har du givet dine brugere adgang til deres postkasser. Med imap (eller pop) kan de vælge mellem mange forskellige postprogrammer, Mozilla Thunderbird, Microsoft Outlook og sandsynligvis din telefon.

Det er meget fint at kunne sende post til personer, men i et foreningsland som Danmark skriver de fleste af os sammen i grupper (gamle skolekammerater, fodboldholdet og så videre). At huske alle adresser hver gang til alle grupper bliver besværligt. Heldigvis findes en særlig software til den slags situationer: postlistesystemer. I næste afsnit stifter du bekendtskab med disse.

[themepacific_accordion]
[themepacific_accordion_section title="Fakta"]

Få mere at vide

[/themepacific_accordion_section]
[themepacific_accordion_section title="Fakta"]

Send en test

[/themepacific_accordion_section]
[/themepacific_accordion]