Ubuntu Mail Server via Azure

In Windows Azure maken we een Virtuele server gebaseerd op Azure en daarop gaan we een mailserver installeren. Als eerste voor deze test maak ik een Trial-account aan op WindowsAzure.com en eenmaal ingelogd krijg ik een overzicht van mijn account.

Virtuele machine

Via de + (NIEUW) button onderaan (verplaatst naar bovenaan) kies ik voor een nieuwe virtuele machine. Uit de getoonde opties kies ik bij ‘Compute’ voor een Ubuntu 14.04 LTS instance. Kies de gewenste opties en klik op ‘Maken’

azure02

De wizard in de portal maakt automatisch een Cloud Service en een Virtual Network aan waarmee de Ubuntu server verbonden wordt. Ook een zogenaamd ‘Endpoint‘ is aangemaakt voor SSH zodat we met Putty kunnen inloggen op het publieke IP adres van de Virtuele Cloud Service. Azure gebruikt een random poort die doorgezet wordt naar poort 22. In putty dient dus de random gegenereerde poort gebruikt te worden. Ook via de portal van Azure kunnen we een gebruiker resetten of toevoegen. Handig als je nog geen wachtwoord hebt opgegeven voor de Linux user…

putty01

Installatie mailserver

Als mailserver gaan we iRedMail gebruiken met als webclient RoundCube.  Meer info hierover is te vinden op http://www.iredmail.org waar ook de download links zijn te vinden. Om de packages voor de mailserver te installeren zijn de volgende commando’s:

sudo wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.0.tar.bz2

Uitpakken met

sudo tar jxvf iRedMail-0.9.0.tar.bz2

en installeren via:

cd iRedMail-0.9.0
sudo bash iRedMail.sh

iredmail01

Geef de locatie op voor de mailboxen
iredmail02

De webserver software die gebruikt wordt, in ons geval is dat Apache:
iredmail03

We zijn bekend met mySQL dus die kiezen we als backend storage:
iredmail04

Kies een wachtwoord voor de mySQL root gebruiker:
iredmail05

Vul het domein in waarmee de mailserver wordt geconfigureerd. Later kunnen er meer virtuele domains worden toegevoegd. Wat gemeld wordt is dat de feitelijke servernaam niet gebruikt mag worden. Het SSL-certificaat dat echter standaard wordt gebruikt voor de mailserver is wel gemaakt op deze naam, dus dat resulteert in een mismatch op het certificaat in de browser als we naar bv. https://mail.volumio.nl gaan.  Na de installatie van de mailserver gaan we daarom eerst een SSL Certificate maken… we gaan verder…
iredmail06

Zoals RFC5321 voor SMTP aanbeveelt wordt hier standaard de mailbox voor ‘postmaster’ aangemaakt. Kies het wachtwoord voor de postmaster. Dit is tevens het login-account voor de admin-console.
iredmail07

Voor de extra componenten kiezen we de voorgestelde instellingen…
iredmail08

En klaar is de installatie!
iredmail09

Wil je de Ubuntu firewall gebruiken en poorten openzetten zodat de gebruikers er straks bij kunnen? Ik heb hier voor (N)ee gekozen en later blijkt toch dat iptables ingesteld zijn. Je kunt dit controleren met het commando:

sudo iptables -L

iredmail10

SSL Certificate

Om de server met het juiste certificaat te laten werken maken we een nieuw certificaat met:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/volumio.key -out /etc/ssl/certs/volumio.pem

Deze gaan we later gebruiken in de configuratie.

Endpoints

Na het installeren nog een reboot geven en dan gaan we Endpoints toevoegen aan de Virtuele Server. In het Azure Management Console ga naar de eigenschappen van de Virtuele Server en voeg de volgende Endpoints toe:

endpoints3

 

Admin Console

Hierna kan de mailserver via een web-browser benaderd worden. De URL voor de admin-console is https://ipadres/iredmail

mail00

Webmail Client

en de URL voor de mail-client is https://ipadres/mail

mail01

Via de admin-console kan een nieuwe gebruiker aangemaakt worden:

mail02 mail03waarna deze gebruiker kan inloggen met een browser:

mail04

DNS-Records

We hebben in dit voorbeel het domein ‘volumio.nl’ gebruikt en om nu alle E-mail voor de gebruikers van dit domein op deze mailserver binnen te laten komen dient er in de DNS server van volumio.nl een record aangemaakt of aangepast te worden. Dit is het zogenaamde MX-record. Deze dient nu een verwijzing te hebben naar het IP-adres van deze server of, nog mooier, naar een A-record van bv. mail.volumio.nl die dan het IP-adres van de mailserver heeft. Het kan wel even duren voordat DNS-wijzigingen doorgevoerd zijn maar uiteindelijk kunnen we dan met de web-browser naar: https://mail.volumio.nl/mail

Een testmail vanaf hotmail naar nico@volumio.nl komt nu binnen:

mail05

*.local hostname

Indien er ergens op de wereld een uitgaande mailserver een bericht naar jouw mailserver wil sturen terwijl die hostname eindigt op ‘.local’ dan zal dit bericht niet toegestaan worden. Hier kan echter een uitzondering voor gemaakt worden door het bestand /etc/postfix/helo_access.pcre aan te passen en de volgende regel als commentaar te markeren (door er een # voor te zetten):

/(\.local)$/ REJECT ACCESS DENIED. Your email was rejected because the sending mail server does not identify itself correctly (${1})

Plaintext authentication

Indien je door wat voor reden dan ook, wilt aanmelden met ongecodeerde gebruikersnaam/wachtwoord, hetgeen niet aanbevolen is, dan kun je dit doen door de plaintext_authentication instelling aan te passen in /etc/dovecot/dovecot.conf

Wijzig de instellingen zodanig dat het er alsvolgt uit ziet:

disable_plaintext_auth=no
ssl=yes

Hierna kan een POP3/IMAP client zoals bv. MS-Outlook een verbinding maken met de mailserver. Althans…

Outlook geeft 504 5.5.2 error

Dit gebeurt wanneer de computer met Outlook probeert te valideren met een hostname die niet een FQDN is. Dus, ‘computernaam’ i.p.v. ‘computernaam.domain.nl’. Om dit toch toe te laten halen we de voorwaarde ‘reject_non_fqdn_helo_hostname‘ uit de regel met smtpd_helo_restrictions in het /etc/postfix/main.cf bestand.

Outlook met IMAP

imap-outlook

Outlook met POP3

pop3-outlook

Zowel voor IMAP als voor POP3 geldt dat we hiervoor SSL gebruiken. Ga naar de ‘Meer instellingen…‘  in kies in het tabblad ‘Advanced‘ voor SSL bij de inkomende e-mail en voor ‘Automatisch’ bij de uitgaande e-mail. Tevens dient de ‘Server voor uitgaande e-mail’ het vinkje geplaatst te worden voor verificatie. (Dezelfde instellingen gebruiken als voor mijn inkomende e-mail).

pop3-outlook-adv

outlook-adv

Als het dan goed is zal Outlook een testbericht versturen.

outlook-test
outlook2