Iedereen heeft tegenwoordig een e-mailadres bij Gmail, Hotmail of zijn internetprovider. Maar vertrouwt u uw e-mailprovider wel? Irriteren de advertenties in webinterfaces? Of wil u meer controle over het spamfilter? Er zijn talloze redenen te bedenken om niet tevreden te zijn met uw huidige e-mailoplossing. De oplossing: zelf een mailserver installeren. De beste manier om dat te doen is door een virtuele server in een datacenter te huren. Maar u kunt ook uw eigen mailserver inrichten. In dit artikel bouwen we verder op onze reeks over een Linux-server met Ubuntu 10.04. Als basis installeren we Postfix en Dovecot. Hierna gebruiken we SquirrelMail voor een webinterface van uw e-mail en SpamAssassin om spam te weren. We gaan er wel vanuit dat u al een eigen domeinnaam hebt die verwijst naar uw server, zodat u een profes­sioneel e-mailadres hebt zoals voornaam@achternaam.nl.

1. Voorwaarden

We werken met Ubuntu Server 10.04. Intussen is er een nieuwe versie uit (10.10), maar wij gebruiken nog 10.04 omdat dit een LTS-versie is (Long Term Support), met vijf jaar ondersteuning. Om een zo hoog mogelijke beschikbaarheid te garanderen, installeren we de server niet thuis, maar op een virtuele server in een datacenter. Daardoor heeft de server ook een vast IP-adres en kunnen we eenvoudig een domeinnaam hiernaar laten verwijzen, zoals voorbeeld.nl. Vraag ook aan uw DNS-beheerder om een MX-record voor uw domeinnaam naar uw mailserver te laten verwijzen.

© PXimport

2. Installeer Postfix

Postfix installeren gaat eenvoudig. Typ gewoon het commando sudo apt-get install postfix in op uw Ubuntu-server. Naast de installatie voert dit commando ook onmiddellijk de basisconfiguratie van Postfix uit, u moet dan ook twee vragen beantwoorden. Kies in het eerste venster als type Internetsite. Daarna vult u de volledige domeinnaam van uw mailserver in. Voor het e-mailadres koen@voorbeeld.nl is dit dus voorbeeld.nl. De Postfix-server wordt hierna opgestart.

© PXimport

3. Configureer Postfix

Start de configuratie opnieuw met: sudo dpkg-reconfigure postfix. U krijgt eerst dezelfde twee vragen, die u bevestigt met Enter. In het derde venster vult u uw gebruikersnaam in om mail van de rootgebruiker naar uw mailbox om te leiden. Vul daarna het domein in waarvoor de server e-mail moet verwerken: voorbeeld.nl, localhost.localdomain, localhost. In het venster erna kiest u Nee. Daarna accepteert u de standaardwaarde zodat Postfix geen mail doorstuurt, de waarde 0 voor de postvakgrootte, de standaardwaarde + en alle om zowel IPv4 als IPv6 te gebruiken.

© PXimport

4. Certificaat aanmaken

We versturen de mail via onze Ubuntu-server op een veilige, versleutelde manier, namelijk via TLS. Hiervoor moet u een sleutel en certificaat voor uw server aanmaken. Een 2048bit-sleutel zonder wachtwoord aanmaken gaat met het commando sudo openssl genrsa -out server.key 2048. Daarna maken we een 'Certificate Signing Request' aan met het commando sudo openssl req -new -key server.key -out server.csr. Vul uw gegevens in. Vul op het einde niets in voor challenge password en company name: u kunt daar gewoon op Enter drukken.

© PXimport

5. Certificaat ondertekenen

U kunt uw certificaat tegen vergoeding laten ondertekenen. Dat kost echter geld en is enkel belangrijk om de identiteit van uw website te bewijzen aan bezoekers. Omdat we het certificaat voor onze eigen mailserver gebruiken ondertekenen wij het zelf. Dat kan met het volgende commando: sudo openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt. Kopieer tot slot de sleutel en het certificaat (5 jaar geldig) naar de juiste plaats met de volgende commando's:

sudo cp server.crt /etc/ssl/certs/ en sudo cp server.key /etc/ssl/private/

© PXimport

6. Configureer TLS

Laat Postfix TLS gebruiken en de sleutel en het certificaat vinden met:

sudo postconf -e 'smtpd_tls_auth_only = no' && sudo postconf -e 'smtp_use_tls = yes' && sudo ­postconf -e 'smtp_tls_note_starttls_­offer = yes' && sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key' && sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt' && sudo postconf -e 'smtpd_tls_loglevel = 1' && sudo postconf -e 'smtpd_tls_received_header = yes' && sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s' && sudo postconf -e 'tls_random_source = dev:/dev/urandom'

© PXimport

SMTP-versleuteling

We stellen SMTP-AUTH in, zodat u zich eerst met uw e-mailclient bij de mailserver moet identificeren voor u e-mail kunt zenden. TLS wordt gebruikt om deze authenticatie te versleutelen. Om dit te configureren, moeten we weer een serie commando's ingeven:

sudo postconf -e 'smtpd_sasl_type = dovecot' && sudo postconf -e 'smtpd_sasl_path = private/auth-client' && sudo postconf -e 'smtpd_sasl_local_domain =' && sudo postconf -e 'smtpd_sasl_­security_options = noanonymous' && sudo postconf -e 'broken_sasl_auth_clients = yes' && sudo postconf -e 'smtpd_sasl_auth_­enable = yes' && sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_­destination'

 

© PXimport

Dovecot

De SMTP-AUTH-ondersteuning van Postfix is gebaseerd op SASL (Simple Authentication and Security Layer). We installeren Dovecot SASL met het commando sudo apt-get install dovecot-common. Open daarna het configuratie­bestand met het commando sudo nano /etc/dovecot/dovecot.conf en zoek naar de sectie auth default. Verander daarin de regel mechanisms = plain naar mechanisms = plain login. De subsectie socket listen daaronder moet eruitzien zoals in de scherm­afbeelding. Sla het bestand hierna op. Open nu /etc/default/dovecot en wijzig daarin #ENABLED=0 naar ENABLED=1.

7. Mailbox

De configuratie van Dovecot vereist nog enkele aanpassingen. Eerst het mailboxformaat: we definiëren dat uw mail in de map Maildir binnen uw gebruikersmap terechtkomt. Open /etc/dovecot/dovecot.conf en voeg de regel mail_location = maildir:~/Maildir toe. Daarna laten we Postfix zijn mails ook hier afleveren met het commando sudo postconf -e 'home_mailbox = Maildir/'. Om onze wijzigingen tot nu toe in de configuratie van beide programma's door te voeren, herstarten we ze met de commando's:

sudo /etc/init.d/postfix restart en sudo /etc/init.d/dovecot restart

© PXimport

8. Test

Om te testen of anderen mails naar onze server kunnen sturen, gebruiken we even geen mailclient maar PuTTY. Open PuTTY, vul de domeinnaam van uw mailserver in (voorbeeld.nl), kies als verbindingstype Telnet, als poort 25 en klik op OK. Als u de boodschap 220 voorbeeld.nl ESMTP Postfix (Ubuntu) te zien krijgt, is het een goed teken. Voer nu ehlo voorbeeld.nl in, u krijgt enkele statusregels. Hiertussen moeten zeker de volgende te vinden zijn: 250-STARTTLS, 250-AUTH PLAIN LOGIN, 250-AUTH=PLAIN LOGIN en 250 8BITMIME. Als dit klopt, stop dan de verbinding met het commando quit.

© PXimport

9. IMAP en POP3

Mensen kunnen mailen naar de mailserver, maar u moet deze mails wel kunnen ontvangen. We installeren IMAP- en POP3-support van Dovecot met sudo apt-get install dovecot-imapd dovecot-pop3d. Kijk of in het bestand /etc/dovecot/dovecot.conf de regel protocols = imap imaps pop3 pop3s staat. IMAPS staat voor IMAP over een TLS-verbinding, POP3S doet hetzelfde voor POP3. We moeten Dovecot hiervoor nog configureren, voeg het volgende aan het configuratiebestand toe: ssl_cert_file = /etc/ssl/certs/server.crt en ssl_key_file = /etc/ssl/private/server.key. Herstart hierna Dovecot.

© PXimport

Inkomende mail

Voeg in Windows Live Mail een e-mailaccount toe en vul daar uw e-mailadres en eventueel uw wachtwoord in. Vink ook Serverinstellingen voor e-mailaccount handmatig configureren aan en klik op Volgende. Nu kiest u als servertype voor POP3 of IMAP (onze mailserver ondersteunt beide) en vinkt u Voor deze server is een beveiligde verbinding (SSL) nodig aan.

 

© PXimport

Uitgaande mail

Ook bij de uitgaande server vult u de juiste domeinnaam in en vinkt u de opties voor SSL en verificatie aan. Klik op Volgende. Daarna krijgt u de waarschuwing dat het SSL-certificaat niet door Windows wordt vertrouwd, maar dat komt omdat u het zelf ondertekend hebt. U kunt dus gerust op Ja klikken om toch met de server te verbinden en het certificaat te vertrouwen. Als u daarna uw mail binnenhaalt, moet u uw wachtwoord ingeven indien u dit tijdens het configureren van het account niet hebt laten opslaan.

10. Webmail

Proficiat, u hebt nu een werkende mailserver! In principe kan de workshop hier dus stoppen. Maar als u een webinterface gewend bent, wilt u vast niet al uw mail met Windows Live Mail lezen. Gelukkig kunt u onder Linux ook een webmailsysteem installeren. Als u onze vorige workshops gevolgd hebt, hebt u al een LAMP-systeem en gebruikt u uw Ubuntu-server als webserver. In één van de directory's op uw webserver kunt u een webmailsysteem installeren. Wij installeren SquirrelMail met sudo apt-get install squirrelmail squirrelmail-secure-login.

© PXimport

11. SquirrelMail configureren

SquirrelMail heeft een eenvoudig configuratiemenu. U start het op met sudo squirrelmail-­configure. Hier kunt u menu-opties kiezen door de juiste letters of cijfers in te typen. U kunt de inhoud van het hele menu bekijken, maar gewoonlijk hoeft u bitter weinig aan te passen. Controleer in menu 2 (Server Settings) wel of bij IMAP Settings localhost:143 staat en bij SMTP Settings localhost:25. Keer terug naar het hoofdmenu met R en schakel in menu 4 (General Options) optie 11 (Allow server-side sorting) in door 11 en dan Y in te typen. Sluit af met Q en sla wijzigingen op.

© PXimport

12. Apache configureren

Configureer nu Apache voor Squirrel­Mail. Kopieer de configuratie van Squirrel­Mail naar de instellingenmap van Apache: sudo cp /etc/squirrelmail/apache.conf/etc/­apache2/sites­available/squirrelmail. Open dit bestand met sudo nano /etc/apache2/sites-available/squirrelmail en haal de hekjes (#) voor alle regels vanaf weg om versleuteling via SSL te ondersteunen. Schakel SquirrelMail in met sudo a2ensite squirrelmail, daarna de SSL-module van Apache: sudo a2enmod ssl en de standaardconfiguratie voor SSL: sudo a2ensite default-ssl. In het configuratiebestand /etc/apache2/sites-available/default-ssl vult u het juiste certificaat en de sleutel in. Herstart tot slot Apache met sudo /etc/init.d/apache2 restart.

© PXimport

13. Aanmelden

U kunt nu de webmailinterface vanuit uw browser openen. Ga naar https://voorbeeld.nl/­squirrelmail. De eerste keer dat u dit doet, krijgt u een waarschuwing dat het certificaat niet vertrouwd is. Verzeker u ervan dat de gegevens overeenkomen met wat u zelf tijdens het aanmaken hebt ingegeven, en accepteer het certificaat. Omdat we ook het pakket squirrelmail-secure-login geïnstalleerd hebben, wordt u automatisch doorverwezen naar de veilige https-versie van SquirrelMail als u enkel http intypt. Vul de gebruikersnaam en wachtwoord van uw Ubuntu-server in en klik op Login.

© PXimport

14. Verzenden en ontvangen

De webinterface van SquirrelMail legt zichzelf wel uit. Wanneer u ingelogd bent, krijgt u uw inbox te zien en kunt u een e-mail lezen door erop te klikken. Bij elke mail hebt u knopjes om op de e-mail te reageren, hem door te sturen of te verwijderen, en er zijn zelfs opties om een printversie of de volledige mailheader van de e-mail te bekijken. Klikt u links op Check mail, dan verschijnen nieuwe e-mails in uw inbox. Naast de inbox hebt u ook folders voor Drafts (concepten), verzonden e-mails en een prullenbak. Klikt u op Compose, dan kunt u een e-mail opstellen.

© PXimport

15. Opties

Bij Options kunt u de instellingen van SquirrelMail wijzigen. Onder Personal Information kunt u een handtekening (signature) instellen, en u configureert hier hoe e-mails waarop u antwoordt eruitzien. In Message Highlighting kunt u e-mails die aan bepaalde voorwaarden voldoen in een andere kleur weergeven om ze te laten opvallen, in Index Order geeft u op in welk volgorde en met welke kolommen e-mails in uw inbox getoond worden, in Folder Preferences stelt u het gedrag van mappen in en in Display Preferences is het uiterlijk van de webinterface volledig aan te passen.

© PXimport

16. Stop spam

Een goede mailserver kan niet zonder anti-spamoplossing, een goed spamfilter voor Linux is SpamAssassin. Installeer het met sudo apt-get install spamassassin. SpamAssassin geeft alle inkomende e-mails een score van 0 tot 5: hoe hoger, hoe groter de kans dat het spam is. U configureert SpamAssassin­ in het bestand /etc/spamassassin/local.cf. De belangrijkste optie is required_score, waarmee u aangeeft hoe hoog de score van een e-mail moet zijn voor deze als spam wordt beschouwd. Standaard staat dit op 5, maar 3.5 is een veilige waarde. Verwijder ook het hekje (#) voor de regel.

© PXimport

17. Duid spam aan

Geef ook aan wat er met spam moet gebeuren. U kunt deze berichten door de server laten verwijderen, maar veiliger is het om ze in uw inbox te laten staan, met een toevoeging aan het onderwerp. Dat doet u door in het configuratiebestand de regel report_safe 0 te zetten en rewrite_header Subject ***SPAM***. Verwijder ook het hekje voor de regels. Open nu /etc/default/spamassassin en wijzig daarin ENABLED=0 naar ENABLED=1 en voeg de regel SAHOME="/var/lib/spamassassin/" toe. Sla de wijzigingen op en start Spam­Assassin met sudo /etc/init.d/spamassassin start.

© PXimport

18. Filter

Tot slot maken we Postfix duidelijk dat het SpamAssassin als filter moet gebruiken. Open /etc/postfix/master.cf. Op de regel die begint met smtp inet voegt u aan het einde achter smtpd een spatie en -o content_filter=spamassassin toe. Helemaal aan het einde van het bestand voegt u de regels spamassassin­ unix - n n - - pipe en flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient} toe. Tot slot maakt u nog de gebruiker spamd en bijbehorende map: sudo ­groupadd spamd && sudo useradd -g spamd -s /bin/false -d /var/lib/spamassassin spamd && sudo mkdir /var/lib/spamassassin && sudo chown spamd:spamd /var/lib/spamassassin. Herstart daarna Postfix met sudo /etc/init.d/postfix restart.

© PXimport

19. Test

Test nu hoe uw mailserver reageert op spam. Dit kan door een spammail die u op een ander adres ontvangen hebt, door te sturen naar uw e-mailadres op uw eigen server. Controleer of er ***SPAM*** aan het onderwerp wordt toegevoegd en kijk in de e-mailheaders na welke score er verschijnt in de header X-Spam-Status. Controleer ook of mails die geen spam zijn, nog wel aankomen. Als er iets misgaat, zoek dan naar een foutmelding in /var/log/mail.log. Als het werkt, kunt u een filter instellen zodat alle e-mails met ***SPAM*** in het onderwerp, automatisch naar een spammap verplaatst worden.

© PXimport

20. Meer gebruikers

U hoeft u natuurlijk niet te beperken tot één e-mailgebruiker. Nu u uw eigen mailserver hebt, kunt u gerust aan iedereen van uw familie een eigen e-mailadres geven, zeker als u uw familienaam als domeinnaam hebt kunnen registreren. Wilt u bijvoorbeeld een e-mailadres bob@voorbeeld.nl aanmaken, dan maakt u een nieuwe gebruiker bob aan met het commando sudo useradd -m bob en kies daarna een wachtwoord voor de gebruiker met sudo passwd bob. Vanaf nu kunt u met deze combinatie van gebruikersnaam en wachtwoord ook e-mailen en webmail gebruiken.

© PXimport

21. Flexibel

Deze workshop was ingewikkelder dan de vorige twee, maar u hebt nu wel een eigen mailserver inclusief webinterface en spamfilter. Let wel op: u bent nu ook zelf verantwoordelijk voor de werking van uw mailserver. Als u iets fout doet en niet onmiddellijk weet hoe u dit moet oplossen, dan loopt u ook het risico dat uw e-mailadres lange tijd niet meer werkt. Wees dus voorzichtig met aanpassingen. Als u weet wat u doet, kunt u de basisconfiguratie van dit artikel nog uitbreiden met heel wat andere functies, zoals een virusscanner, plug-ins voor SquirrelMail, enzovoort.

© PXimport

Deel dit artikel
Voeg toe aan favorieten