Placering

Du er her: Forside / Artikler / Postfix, spamfilter og sikker webmail

Postfix, spamfilter og sikker webmail

Forfatter: Carsten Boysen Jensen

Version 2.5 - 9. april 2009

Kort beskrivelse

Denne artikel beskriver hvordan man sætter en mailserver op med sikker webmail og spamfilter på et system, som kører Debian (eksternt link) GNU/Linux og bruger Maildir (eksternt link) til email

Indhold

Introduktion

Denne artikel beskriver hvordan man sætter en mailserver op med webmail og spamfilter og bruger Maildir-formattet til email Der gives flere løsnings-modeller.

Det er helt enkelt dokumentation af de ting, jeg prøvede, da jeg ledte efter en løsning til sikker webmail. Og der er også andre måder at gøre det på.

Systemet der bruges i denne artikel er Debian GNU/Linux, men det virker sikkert også på andre systemer.

Opsætningen er testet på Debian GNU/Linux 4.0 (etch) og Debian GNU/Linux 3.1 (sarge).

Filtrering efter modtagelsen er efter min mening den mest pålidelige metode at forhindre spam på. Men der er andre muligheder, for alle tre nedenfor beskrevne gælder at de som regel bliver eksekveret så snart email rammer serveren og så mister brugeren legitim email uden nogensinde at få det at vide.

De tre metoder kan kombineres. Med lidt arbejde kan man f.eks. bruge Greylisting udelukkende hvis afsender er i DNSBL og/eller hvis SPF siger, at afsender ikke er gyldig afsender. Det ville forhindre en del af problemerne, men det kan ikke skjule at alle tre metoder er forkerte. Jeg anbefaler derfor, at man giver brugerne så meget kontrol over deres email som overhovedet muligt. Lav automatisering af sorteringen, men lad brugeren om at definere hvad brugeren synes er spam. Og undgå for alt i verden at slette email automatisk, før brugeren har haft noget at skulle sige først.

Informer i det mindste brugeren om hvordan email bliver håndteret på din server. Det er det mest høflige og så kan du samtidig forklare brugeren hvordan han undgår spam helt fra starten. Lad det så være helt op til brugeren, hvordan brugeren bruger sin konto.

Revisions-historie

Revision v2.5 - 9. april 2009
Tilføjede løsning på Dovecots problem med SpamBayes.
Ændrede licens fra GPL til X11.
Revision v2.3 - 6. januar 2008
Lagde Maildir-sektionen ind under IMAP-opsætning for bedre oversigt.
Rettede en alvorlig fejl i Procmail-eksemplet, som gør at email går tabt. Jeg beklager meget, hvis det er sket for nogen.
Tilføjede lidt mere information i introduktionen om andre værktøjer til forhindring af SPAM.
Ellers mest kosmetiske ændringer, tilføjelse af initialords-beskrivelser og et par links.
Revision v1.9 - 14. november 2007
Skiftede licens fra GNU FDL til GNU GPL af grunde beskrevet i Nyheder, 14. november 2007 - Licens-skifte.
Ændrede titlen igen og flyttede artiklen til anden kategori. Grunden er beskrevet i Nyheder, 14. november 2007 - Artikler og HOW-TO'er lagt sammen.
Revision v1.7 - 8. august 2007
Rettede en stak stavefejl.
Revision v1.6 - 28. juli 2007
Rettede en lille fejl i webserver-setup.
Revision v1.5 - 13. juli 2007
Tilføjede flere instruktioner for Binc IMAP.
Tilføjede flere instruktioner og rettelser for Maildir-oprettelse.
Tilføjede nogle tips for IlohaMail.
Ændrede titlen på dette dokument.
Revision v1.1 - 11. juli 2007
Rettede lille fejl i Binc IMAP opsætningen.
Revision v1.0 - 8. juli 2007
Første udgave.
Copyright (c) 2009 Carsten Boysen Jensen

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

Feedback

Du er velkommen til at skrive til mig, hvis du har spørgsmål eller rettelser til dette dokument. Konstruktiv kritik er altid velkommen.

Opsætning af Postfix

Først skal vi ha' en mailserver installeret. Det er meget individuelt, hvad man foretrækker. Og i sidste ende er det op til en selv at vælge, hvad man har brug for. Mit råd vil være at prøve forskellige og så vælge den, du synes bedst om. Og bliv så god til at konfigurere den. Det er også det bedste sikkerhedsråd, da ingen server er sikker hvis den er sat forkert op.

Jeg vil i det følgende bruge Postfix (eksternt link), men alle mailservere, der kan bruge Maildir, kan bruges.

Postfix er designet med sikkerhed som et af hovedområderne. Det betyder ikke andet, end at den per design skulle være sværere at udnytte til angreb. Og det er så også alt, hvad det betyder. Hvis den sættes usikkert op, så er designet ligegyldigt.

Hvis du ikke allerede har gjort det, skal du nu installere Postfix: (som root)

apt-get install postfix

Du vil blive stillet et par spørgsmål. Det kan være en fordel at køre dpkg-reconfigure postfix som root, da det giver dig lidt flere spørgsmål og flere muligheder.

Så skal Postfix opsættes til at levere til Maildir. Det gøres ved at tilføje følgende i '/etc/postfix/main.cf': (som root)

home_maildir = Maildir/

Husk at reloade Postfix, når du har redigeret konfigurationsfilen: (som root)

/etc/init.d/postfix reload
Postfix Tips

Hvis du bruger serveren som relay for dit interne netværk, kan det være en fordel at skjule interne værtsnavne for omverdenen. Det gøres nemmest ved at tilføje følgende til '/etc/postfix/main.cf':

masquerade_domains = example.com

Du kan tilføje flere domænenavne adskilt med mellemrum. Derefter vil al post fra subdomæner se ud til at komme fra hoveddomænet, som sædvanligvis er serveren selv.

Hvis serveren skal være vært for flere domæner, så kan Postfix Virtual Domain Hosting HOWTO (eksternt link) med fordel læses.

Du kan nu gå til Opsætning af IMAP-server.

Opsætning af IMAP-server

Der er flere muligheder at vælge mellem, når man vil installere en IMAP-server. Som med så meget andet i denne verden, så er valget op til dig.

Binc IMAP

Binc IMAP (eksternt link) er en godt designet, mudulær IMAP server til Maildir. Målene er at være sikker, stabil og hurtig, dog skal den være nem at vedligeholde.

Installer Binc IMAP: (som root)

apt-get install bincimap-run

Dette installere et par programmer, som Binc IMAP bruger. Desuden opretter det service for sikker IMAP gennem port 993.

Da vi installere det hele på den samme maskine, er der ingen grund til bruge den krypterede forbindelse i forbindelse med webmail, så vi åbner for den ukrypterede del: (som root)

ln -s /etc/bincimap/bincimap /var/service/bincimap

Da vi ikke har brug for sikker IMAP i dette setup, lukker vi for det, sådan her: (som root)

rm /var/service/bincimaps

Tillad indlogning med plain auth uden SSL, ellers kan du ikke logge ind uden SSL, rediger '/etc/bincimap/bincimap.conf': (som root)

Authentication {
        allow plain auth in non ssl = "yes",

Så skal Maildir oprettes for hver bruger på systemet.

Kør følgende som bruger:

mkdir ~/Maildir
mkdir ~/Maildir/new
mkdir ~/Maildir/cur
mkdir ~/Maildir/tmp
mkdir ~/Maildir/.Spam
mkdir ~/Maildir/.Spam/new
mkdir ~/Maildir/.Spam/cur
mkdir ~/Maildir/.Spam/tmp
mkdir ~/Maildir/.MaybeSpam
mkdir ~/Maildir/.MaybeSpam/new
mkdir ~/Maildir/.MaybeSpam/cur
mkdir ~/Maildir/.MaybeSpam/tmp

Specielle mapper brugt af IlohaMail og SquirrelMail:

mkdir ~/Maildir/.Sent
mkdir ~/Maildir/.Sent/new
mkdir ~/Maildir/.Sent/cur
mkdir ~/Maildir/.Sent/tmp
mkdir ~/Maildir/.Trash
mkdir ~/Maildir/.Trash/new
mkdir ~/Maildir/.Trash/cur
mkdir ~/Maildir/.Trash/tmp

Speciel mapper kun brugt af SquirrelMail:

mkdir ~/Maildir/.Drafts
mkdir ~/Maildir/.Drafts/new
mkdir ~/Maildir/.Drafts/cur
mkdir ~/Maildir/.Drafts/tmp

For at mapperne kan ses i webmail-interfacet, skal vi tilmelde dem til IMAP-serveren.

Kør følgende, som bruger:

echo 'INBOX' >> ~/Maildir/.bincimap-subscribed
echo 'INBOX/Spam' >> ~/Maildir/.bincimap-subscribed
echo 'INBOX/MaybeSpam' >> ~/Maildir/.bincimap-subscribed
echo 'INBOX/Sent' >> ~/Maildir/.bincimap-subscribed
echo 'INBOX/Trash' >> ~/Maildir/.bincimap-subscribed

Hvis du vælger SquirrelMail:

echo 'INBOX/Drafts' >> ~/Maildir/.bincimap-subscribed

For at undgå at skulle gøre dette hver gang, du opretter en ny bruger, så opret mapperne på samme måde i '/etc/skel', som root.

Så skal brugerne kunne logge ind. Da Binc IMAP bruger programmet CheckPW (eksternt link) til at autorisere brugere, skal dette nu sættes op. CheckPW bruger filen '~/Maildir/.password' til kodeord. Derfor skal vi nu for hver enkelt bruger oprette denne fil, som bruger:

echo mailpass > ~/Maildir/.password

mailpass er kodeordet. Kodeords-filen skal have præcis følgende rettigheder -rw-------, og være ejet af brugeren selv, ellers virker det ikke. Det gør vi således, som bruger:

chmod 600 ~/Maildir/.password
chown bruger ~/Maildir/.password
chgrp bruger ~/Maildir/.password

Du kan nu fortsætte til Opsætning af Procmail.

Courier-IMAP

Courier-IMAP (eksternt link) er en hurtig, skalerbar IMAP-server designet til store opsætninger, som f.eks. email service udbydere.

Installer Courier-IMAP: (som root)

apt-get install courier-imap

Nu skal Courier-IMAP sikres mod ekstern tilgang. Dette gøres i '/etc/courier/imapd', som root:

ADDRESS=127.0.0.1

Standard indstillingen er, at Courier-IMAP modtager forespørgsler fra alle, hvilket ikke er nødvendigt i denne opsætning.

Genstart nu Courier-IMAP, som root:

/etc/init.d/courier-imap restart

Nu skal du oprette Maildir for hver bruger på systemet. Dette gøres med programmet "maildirmake", som kommer sammen med serveren, som bruger:

maildirmake ~/Maildir
maildirmake ~/Maildir/.Spam
maildirmake ~/Maildir/.MaybeSpam

Specielle mapper brugt af IlohaMail og SquirrelMail:

maildirmake ~/Maildir/.Sent
maildirmake ~/Maildir/.Trash

Speciel mappe kun brugt af SquirrelMail:

maildirmake ~/Maildir/.Drafts

Så skal vi tilmelde mapperne i IMAP-serveren, så de kan ses i webmail. Kør følgende som bruger:

echo 'INBOX.Spam' >> ~/Maildir/courierimapsubscribed
echo 'INBOX.MaybeSpam' >> ~/Maildir/courierimapsubscribed
echo 'INBOX.Sent' >> ~/Maildir/courierimapsubscribed
echo 'INBOX.Trash' >> ~/Maildir/courierimapsubscribed

Hvis du vælger SquirrelMail:

echo 'INBOX.Drafts' >> ~/Maildir/courierimapsubscribed

For at undgå at skulle gøre dette hver gang, du opretter en ny bruger, så opret mapperne på samme måde i '/etc/skel', som root.

Du kan nu fortsætte til Opsætning af Procmail.

Dovecot IMAP

Dovecot IMAP (eksternt link) er designet primært med sikkerhed for øje.

Installer Dovecot IMAP: (som root)

apt-get install dovecot-imapd

Rediger så '/etc/dovecot/dovecot.conf' som root.

Først skal vi aktivere IMAP-serveren ved at redigere standard-linierne:

# Protocols we want to be serving:
# imap imaps pop3 pop3s
protocols = imap

Så skal Dovecot vide, hvor den finder postbakkerne:

# Hvis du bruger Debian sarge:
default_mail_env = maildir:/home/%u/Maildir

# Hvis du bruger Debian etch:
mail_location = maildir:/home/%u/Maildir

Så skal Dovecot kun lytte på localhost:

listen = 127.0.0.1:143

Genstart serveren, som root:

/etc/init.d/dovecot stop
/etc/init.d/dovecot start

Nu skal Maildir oprettes for hver enkelt bruger, som bruger:

mkdir ~/Maildir
mkdir ~/Maildir/new
mkdir ~/Maildir/cur
mkdir ~/Maildir/tmp
mkdir ~/Maildir/.INBOX.Spam
mkdir ~/Maildir/.INBOX.Spam/new
mkdir ~/Maildir/.INBOX.Spam/cur
mkdir ~/Maildir/.INBOX.Spam/tmp
mkdir ~/Maildir/.INBOX.MaybeSpam
mkdir ~/Maildir/.INBOX.MaybeSpam/new
mkdir ~/Maildir/.INBOX.MaybeSpam/cur
mkdir ~/Maildir/.INBOX.MaybeSpam/tmp

Specielle mapper brugt af IlohaMail og SquirrelMail:

mkdir ~/Maildir/.INBOX.Sent
mkdir ~/Maildir/.INBOX.Sent/new
mkdir ~/Maildir/.INBOX.Sent/cur
mkdir ~/Maildir/.INBOX.Sent/tmp
mkdir ~/Maildir/.INBOX.Trash
mkdir ~/Maildir/.INBOX.Trash/new
mkdir ~/Maildir/.INBOX.Trash/cur
mkdir ~/Maildir/.INBOX.Trash/tmp

Speciel mapper kun brugt af SquirrelMail:

mkdir ~/Maildir/.INBOX.Drafts
mkdir ~/Maildir/.INBOX.Drafts/new
mkdir ~/Maildir/.INBOX.Drafts/cur
mkdir ~/Maildir/.INBOX.Drafts/tmp

Så skal mapperne tilmeldes IMAP-severen, så de kan ses i webmail, som bruger:

echo 'INBOX.Spam' >> ~/Maildir/subscriptions
echo 'INBOX.MaybeSpam' >> ~/Maildir/subscriptions
echo 'INBOX.Sent' >> ~/Maildir/subscriptions
echo 'INBOX.Trash' >> ~/Maildir/subscriptions

Hvis du vælger SquirrelMail:

echo 'INBOX.Drafts' >> ~/Maildir/subscriptions

For at undgå at skulle gøre dette hver gang, du opretter en ny bruger, så opret mapperne på samme måde i '/etc/skel', som root.

Bemærk dog, at Dovecot IMAP har problemer med mail-headers, der indsættes efter Dovecot første gang har set mailen. Det viser sig ved at dele af headeren kommer med i selve beskeden næste gang, du ser mailen. Så hvis du vælger Dovecot, vil jeg anbefale at vælge SpamBayes og lignende programmer fra. Du kan også slette index-filerne i din Maildir-mappe efter hver kørsel af SpamBayes-træning eller helt deaktivere dovecots brug af index i '/etc/dovecot/dovecot.conf':


mail_location = maildir:~/Maildir:INDEX=MEMORY

Du kan nu fortsætte til Opsætning af Procmail.


Opsætning af Procmail

Nu skal vi bruge et bindeled mellem mailserver og vores postbakker.

Procmail (eksternt link) har til formål at levere emails til brugerne fra serveren. Fordelen ved det er, at man samtidig kan køre email gennem forskellige filtre.

Procmail er sikkert allerede installeret, men ellers gøres det således som root:

apt-get install procmail

Dernæst skal Procmail ha' besked om, hvor email skal leveres. Opret eller åben '~/.procmailrc'. Gør dette for hver bruger på systemet og som brugeren selv. Her er et eksempel:

# PATH that may be useful for the filters
PATH=/usr/bin:/usr/local/bin:.

# Home directory
HOME=/home/bruger

# The directory to save all mails to
MAILDIR=$HOME/Maildir/
# The default if no match in rules
DEFAULT=$MAILDIR

Den afsluttende '/' fortæller Procmail, at det er en Maildir-postbakke.

For at få Postfix til at levere emails med Procmail, ret følgende i '/etc/postfix/main.cf' som root:

mailbox_command = procmail -a "$EXTENSION"

Du kan nu fortsætte til Opsætning af spamfilter.


Opsætning af spamfilter

Der er virkelig mange måder at filtrere spam på. I det følgende vil jeg gennemgå 2 metoder. For begge løsninger gælder, at de virker og at de er nemme at automatisere. Det eneste brugerne skal gøre er at markere emails som læst. Emails i spam-mappen bliver trænet som spam og emails i indbakken bliver trænet som ham (god email).

I valg af disse to indgik, at det skulle være nemt for brugerne at kategorisere email til træning. Det vil sige at løsninger, der kræver, at brugerne sender email til specielle adresser og/eller flytter email til specielle mapper for træning blev valgt fra. Desuden blev løsninger som ikke selv holder styr på trænede emails valgt fra.

SpamAssassin

SpamAssassin (eksternt link) er en af de gamle drenge, når vi snakker spamfiltre. Den bruger en masse gamle, prøvede og kendte betoder til at klassificere email. Bl.a. Blacklister, ord tit fundet i spam og Bayesian filter. Bayesian filtret i SpamAssassin er meget længe om at blive trænet op, så i lang tid vil en del spam ryge forbi SpamAssassin og ende i din indbakke.

Installer SpamAssassin: (som root)

apt-get install spamassassin spamc

Da SpamAssassin traditionelt har været et meget tungt program at bruge på hver eneste indkommende email, har folkene bag udviklet en server-klient udgave, hvor spamc er klienten og spamd serveren. Dette formindsker markant hvor mange ressourcer SpamAssassin bruger.

Sæt nu spamd til at starte ved hver opstart. Rediger '/etc/default/spamassassin' som root:

ENABLED=1

Så skal vi ha' SpamAssassin til at bruge Bayesian filter. Tilføj følgende i '/etc/spamassassin/local.cf': (som root)

#bayes
use_bayes 1
use_bayes_rules 1

Så skal spamd startes: (som root)

/etc/init.d/spamassassin start

I det følgende vil vi bruge spamc. Tilføj følgende til hver enkelt brugers '~/.procmailrc': (som bruger)

# Tjek hver email og beregner spam-graden
:0fw
| spamc

# Hvis spam-grad over 5 (standard), er det spam
# og emailen bliver mærket med spam-flag
:0
* ^X-Spam-Flag: Yes
${MAILDIR}/.Spam/

# Hvis spam-grad er 1 eller mere er det muligvis også spam
:0
* ^X-Spam-Level: \*
${MAILDIR}/.MaybeSpam/

Bemærk: Hvis du valgte Dovecot IMAP, så husk at bruge .INBOX.Spam og .INBOX.MaybeSpam i det ovenstående.

SpamAssassin træning

Så mangler vi kun at træne filtret hver nat. Til det formål skal vi oprette følgende script. Det kan placeres i hver bruges hjemmemappe eller i '/usr/local/bin':

#!/bin/sh

# SpamLearn
# Register spam from read maildir-folder
sa-learn --spam ~/Maildir/.Spam/cur

# Register HAM from read maildir-folder
sa-learn --ham ~/Maildir/cur

Bemærk: Hvis du valgte Dovecot IMAP, så husk at bruge .INBOX.Spam i det ovenstående.

Gør scriptet eksekverbart:

chmod +x spamlearn

Nu skal der for hver bruger køres crontab -e, med følgende indhold: (som bruger)

21 2 * * * /usr/local/bin/spamlearn > /dev/null

Hver email bliver kun trænet en gang. SpamAssassin husker om og hvordan hver email blev trænet.

Jeg anbefaler at du variere tidspunktet, så du får fordelt brugerne med godt mellemrum rent tidsmæssigt, så systemet mærker så lidt til det som muligt, især hvis du har mange brugere.

Du kan nu fortsætte til Opsætning af webserver med SSL.

SpamBayes

SpamBayes (eksternt link) er et Bayesian spam filter (eksternt link), som meget hurtigt bliver meget effektivt. Når SpamBayes er usikker på om en email er spam eller ej, så markerer den den som unsure. Så i starten ville de fleste emails blive markeret som unsure. Men det er meget bedre end bare at lade spam komme ind i indbakken, som andre filtre gør.

Linux Journal (eksternt link) offentliggjorde An Introduction to the Spambayes Project (eksternt link) i 2003 som giver god information om projektet.

Installer SpamBayes: (som root)

apt-get install spambayes

Opret så den database, som SpamBayes bruger til at teste dine indkommende emails: (som bruger)

/usr/bin/sb_filter.py -d $HOME/.hammiedb -n

Gør dette for alle brugere på systemet.

Tilføj så følgende til '~/.procmailrc' for hver bruger: (som bruger)

# Tjek om emailen er spam,ham eller unsure
:0fw:hamlock
| /usr/bin/sb_filter.py -d $HOME/.hammiedb

# Er den spam, skal den i spam-mappen
:0
* ^X-Spambayes-Classification: spam
${MAILDIR}/.Spam/

# Er den unsure, skal den i maybe-spam-mappen
:0
* ^X-Spambayes-Classification: unsure
${MAILDIR}/.MaybeSpam/

Bemærk: Hvis du valgte Dovecot IMAP, så husk at bruge .INBOX.Spam og .INBOX.MaybeSpam i det ovenstående.

SpamBayes træning

Da SpamBayes som alle andre Bayesian-filtre skal trænes, sætter vi et lille crontab-job op til at køre hver dag kl. 2:21. Det træner alle læste email i din indbakke og i spam-bakken. Hver email bliver kun trænet én gang. Tilføj følgende til hver enkelt brugers crontab: (kør crontab -e som bruger)

21 2 * * * /usr/bin/sb_mboxtrain.py -q -d $HOME/.hammiedb -g \
$HOME/Maildir -s $HOME/Maildir/.Spam

Bemærk: Hvis du valgte Dovecot IMAP, så husk at bruge .INBOX.Spam i det ovenstående.

Jeg anbefaler at du variere tidspunktet, så du fordeler brugerne med godt mellemrum rent tidsmæssigt, så systemet mærker så lidt til det som muligt, især hvis du har mange brugere.

Du kan nu fortsætte til Opsætning af webserver med SSL.


Opsætning af webserver med SSL

For at bruge webmail skal man bruge en webserver.

Men lad os først oprette det SSL certifikat, som vi skal bruge til at kryptere forbindelsen til vores webmail. Det gøres med OpenSSL (eksternt link). Hvis du ikke allerede har programmet installeret, gør det nu: (som root)

apt-get install openssl ca-certificates

I dette eksempel placerer vi SSL-certifikatet i '/etc/ssl', men det kan placeres hvor du har lyst, så længe din webserver kan læse det. Opret nu selve certifikatet: (som root)

openssl req -new -x509 -keyout /etc/ssl/server.pem -out /etc/ssl/server.pem \
-days 3650 -nodes

Besvar et par spørgsmål, husk at Common Name skal være domænenavnet, der bruges til webmail. Certificatet er gyldigt i 10 år (3650 dage).

Apache2

Installer Apache2 (eksternt link): (som root)

apt-get install apache2-mpm-prefork

Da IlohaMail og SquirrelMail er skrevet i PHP (eksternt link), skal du også installere PHP: (som root)

apt-get install libapache2-mod-php4

Aktiver så SSL-modulet i Apache2 med a2enmod: (som root)

a2enmod ssl

Så skal Apache2 lytte på port 443. Tilføj Listen 443 til '/etc/apache2/ports.conf': (som root)

echo "Listen 443" >> /etc/apache2/ports.conf

Så skal vi oprette en konfigurations-fil til SSL, det gør vi ved at kopiere den eksisterende opsætning: (som root)

cp /etc/apache2/sites-available/default \
/etc/apache2/sites-available/default-ssl

Rediger nu '/etc/apache2/sites-available/default-ssl' for at indstille SSL: (som root)

NameVirtualHost *:443
<VirtualHost *:443>
        SSLEngine On
        SSLCertificateFile /etc/ssl/server.pem
        ...
</VirtualHost>

Aktiver så SSL-konfigurationen: (som root)

a2ensite default-ssl

Glem ikke at genstarte Apache2: (som root)

/etc/init.d/apache2 restart

Du kan nu fortsætte til Opsætning af webmail.

Lighttpd

Installer Lighttpd (eksternt link): (som root)

apt-get install lighttpd

Da IlohaMail og SquirrelMail er skrevet i PHP, skal du også installere PHP: (som root)

apt-get install php4-cgi

Lighttpd bruger FastCGI (eksternt link) til PHP. I Debian er FastCGI allerede sat op til PHP, så vi skal bare aktivere modulet i Lighttpd: (som root)

/usr/sbin/lighty-enable-mod fastcgi

Så skal vi aktivere SSL-modulet: (som root)

/usr/sbin/lighty-enable-mod ssl

Rediger '/etc/lighttpd/conf-available/10-ssl.conf': (som root)

#### SSL engine
$SERVER["socket"] == "0.0.0.0:443" {
        ssl.engine = "enable"
        ssl.pemfile = "/etc/ssl/server.pem"
}

Husk at genstarte Lighttpd: (som root)

/etc/init.d/ligttpd restart

Du kan nu fortsætte til Opsætning af webmail.


Opsætning af webmail

IlohaMail

IlohaMail (eksternt link) er den lille og lette, som ikke forsøger at være mere end en simpel webmail til den gennemsnitlige bruger.

Installer IlohaMail: (som root)

apt-get install ilohamail

Under installationen vil et par spørgsmål blive stillet, herunder hvilken webserver, du bruger. Vælger du Apache, vil installationen oprette et alias til IlohaMail i Apaches konfiguration, hvilket overflødiggær det symbolske link, vi sætter sidst i dette afsnit.

Ret konfigurationsfilerne '/etc/IlohaMail/conf.php' og '/etc/IlohaMail/login.php' (som root). De forskellige muligheder er ret godt beskrevet i filerne, så jeg vil lade dig selv finde ud af det.

Hvis du vil bruge Kalender, skal du dog bruge MySQL som BACKEND i '/etc/IlohaMail/conf.php' og oprette database m.m. Du kan installere databasen til IlohaMail således:

mysql -u root -p databasename < /usr/share/doc/ilohamail/sql

Det kræver en fungerende MySQL-server og at databasen til IlohaMail er oprettet, inklusiv bruger med alle rettigheder til databasen.

Hvis du vil tillade dine brugere at rette farverne på deres webmail-sider, skal du kommentere med '//' i '/usr/share/IlohaMail/source/themes/default/info.inc' og '/usr/share/IlohaMail/source/themes/default/override.inc'.

Nu skal IlohaMail gøres tilgængelig med browsere: (som root)

ln -s /usr/share/IlohaMail/source /var/www/webmail

Du kan nu tilgå din webmail på: https://localhost/webmail/

SquirrelMail

SquirrelMail (eksternt link) er den lidt større, som vil være en standard email-klient. SquirrelMail kan udbygges med plugins fra hjemmesiden, hvis man vil ha' den til at kunne mere eller vil justere lidt på dens opførsel.

Installer SquirrelMail: (som root)

apt-get install squirrelmail-locales squirrelmail

Konfigurér SquirrelMail ved at køre følgende: (som root)

/usr/sbin/squirrelmail-configure

Bemærk: Hvis du vælger Binc IMAP, skal du ændre navne for de mapper, som SquirrelMail bruger under Folder Defaults, fra dette:

...
3. Trash Folder         : INBOX.Trash
4. Sent Folder          : INBOX.Sent
5. Drafts Folder        : INBOX.Drafts
...

Til dette:

...
3. Trash Folder:        : INBOX/Trash
4. Sent Folder          : INBOX/Sent
5. Drafts Folder        : INBOX/Drafts
...

Ellers vil SquirrelMail komme med fejlmeldinger.

Hvis du vil installere plugins fra nettet, skal de placeres i '/usr/share/squirrelmail/plugins/'. Husk at konfigurere Squirrelmail igen bagefter.

Nu skal SquirrelMail gøres tilgængelig med browsere: (som root)

ln -s /usr/share/squirrelmail /var/www/webmail

Du kan nu tilgå din webmail på: https://localhost/webmail/

Indholdet blev sidst ændret den 17. maj 2009 kl. 20:50 (CEST)