Eigen mailserver met Modoboa op Debian installeren

Gepubliceerd op Bijgewerkt op 5 min leestijd

De Modoboa-installer zet Postfix, Dovecot, webmail en SSL in één keer op. Zo installeert u uw eigen mailserver op Debian en stelt u de nodige DNS-records in.

Wilt u uw e-mail niet bij een gratis mailaanbieder onderbrengen, maar op een eigen server onder uw eigen domein? Modoboa is daarvoor een van de gemakkelijkste oplossingen. De meegeleverde installer zet Postfix, Dovecot, database, spamfilter, webmail en een beheerinterface in één keer op.

Deze handleiding beschrijft de installatie op Debian 12 en Debian 11. Debian 10 wordt niet meer ondersteund en hoort voor een nieuwe mailserver niet meer gebruikt te worden.

Vereisten

  • Een eigen VPS of rootserver met een verse Debian-installatie. Wij raden aan (geen verplichting, maar wel verstandig) een kleine server uitsluitend voor het mailverkeer te gebruiken, omdat hostnaam en reverse DNS op het maildomein worden aangepast.
  • Roottoegang via SSH.
  • Een eigen domein waarbij u de DNS-records zelf kunt instellen.
  • Een vast IPv4-adres waarvoor u een reverse-DNS-record kunt vastleggen.
  • De mailpoorten moeten bereikbaar zijn: 25 (SMTP), 587 en 465 (verzending door uw gebruikers), 143 en 993 (IMAP) en daarnaast 80 en 443 voor webmail en voor het uitgeven van het certificaat.

Belangrijk: voer de installatie uit op een vers opgezet systeem. Een al draaiende webserver of een aanwezige database laat de installer regelmatig afbreken.

Systeem voorbereiden

Breng eerst de pakketlijst en alle geïnstalleerde pakketten op de actuele stand:

apt update && apt upgrade -y

Installeer daarna de pakketten die de installer verwacht:

apt-get install sudo git python3 mariadb-server -y

Rond de inrichting van de database af en volg de vragen van de assistent. Kies daarbij een veilig wachtwoord voor de databasebeheerder:

sudo mysql_secure_installation

Hostnaam instellen

De server heeft een volledige hostnaam nodig die bij het latere maildomein past. Zonder deze stap mislukt de installatie:

hostnamectl set-hostname mail.<DOMEIN>.<EXTENSIE>

Zet de A-record voor precies deze naam bij voorkeur nu al in de DNS. De installer vraagt later een Let's Encrypt-certificaat aan, en dat lukt alleen wanneer de naam al naar het IP-adres van uw server wijst.

Modoboa-installer downloaden

cd /tmp
git clone https://github.com/modoboa/modoboa-installer
cd modoboa-installer

Configuratiebestand aanmaken en aanpassen

Laat de installer eerst alleen het configuratiebestand aanmaken en daarna stoppen:

python3 ./run.py --stop-after-configfile-check <DOMEIN>.<EXTENSIE>

Open het aangemaakte bestand:

nano installer.cfg

Pas de volgende secties aan. Daarmee krijgt de server een gratis SSL-certificaat van Let's Encrypt en verbindt hij met de lokale database:

[certificate]
generate = true
type = letsencrypt

[letsencrypt]
email = admin@<DOMEIN>.<EXTENSIE>

[database]
engine = mysql
host = 127.0.0.1
install = true

Vul bij het e-mailadres een adres in dat u werkelijk leest. Let's Encrypt stuurt daarnaartoe een waarschuwing wanneer een verlenging uitblijft.

Installatie starten

python3 ./run.py mail.<DOMEIN>.<EXTENSIE>

De installatie duurt enkele minuten. Gebruik die tijd om de DNS-records in te stellen.

DNS-records instellen

A-record en MX-record

De A-record verwijst naar het IP-adres van uw server, de MX-record vertelt de wereld welke host de mail voor uw domein aanneemt. De prioriteit "10" is de gebruikelijke waarde wanneer er maar één mailserver is:

1e record:
Subdomein: mail
Type: A (IPv4)
Doel: <Server-IP>
Het resultaat hoort er zo uit te zien: mail.<DOMEIN>.<EXTENSIE> IN A <Server-IP>

2e record:
(Subdomein: @)
Type: MX
Doel: mail.<DOMEIN>.<EXTENSIE>
Het resultaat hoort er zo uit te zien: @ IN MX 10 mail.<DOMEIN>.<EXTENSIE>

SPF, DKIM en DMARC

Zonder deze drie records belandt uw mail met grote waarschijnlijkheid in de spammap van de ontvangers. Grote aanbieders eisen ze inmiddels uitdrukkelijk.

SPF legt vast welke servers voor uw domein mogen versturen. Als TXT-record op het hoofddomein:

Type: TXT
Naam: @
Waarde: v=spf1 mx -all

DKIM ondertekent uw uitgaande mail cryptografisch. Modoboa kan de sleutels per domein zelf genereren. De publieke sleutel vindt u na de installatie in de beheerinterface, bij de instellingen van het betreffende domein. Die waarde zet u als TXT-record in de DNS.

DMARC vertelt de ontvangers hoe zij moeten omgaan met mail die SPF of DKIM niet doorstaat. Begin met een observerende instelling en scherp die later aan:

Type: TXT
Naam: _dmarc
Waarde: v=DMARC1; p=none; rua=mailto:postmaster@<DOMEIN>.<EXTENSIE>

Reverse DNS (PTR)

De PTR-record lost uw IP-adres terug op naar de hostnaam. Veel mailservers weigeren verbindingen zonder passende PTR-record botweg. Bij ons stelt u die zelf in het klantenpaneel in:

"Mijn diensten" -> "Server selecteren" -> "Op de knop Reverse DNS klikken" -> mail.<DOMEIN>.<EXTENSIE>

Belangrijk is dat PTR-record en hostnaam exact overeenkomen.

Eerste stappen na de installatie

Is de installatie geslaagd, herstart de server dan één keer:

reboot

Daarna bereikt u de beheerinterface op https://mail.<DOMEIN>.<EXTENSIE>. Meld u aan met het beheerdersaccount dat de installer heeft aangemaakt en wijzig allereerst het wachtwoord. Maak vervolgens uw domein en de gewenste mailboxen aan.

Test daarna in beide richtingen: stuur een bericht van uw nieuwe server naar een externe mailbox en een bericht van buitenaf naar uw nieuwe adres. Of SPF, DKIM, DMARC en PTR correct werken, controleert u het snelst met een van de vrij beschikbare mailtesters op het web.

Veelvoorkomende fouten

  • De installatie breekt meteen af: de hostnaam is geen volledige domeinnaam. Controleer hem met hostname -f.
  • Het certificaat wordt niet uitgegeven: de A-record voor mail.uwdomein wijst niet naar de server, of poort 80 is geblokkeerd. Let's Encrypt controleert het domein via poort 80.
  • Mail belandt in de spam: meestal ontbreekt de PTR-record, of SPF en DKIM zijn niet ingesteld. Controleer alle vier de records voordat u de server productief gebruikt.
  • Uitgaande mail wordt geweigerd: het IP-adres staat mogelijk op een blokkeerlijst. De meeste beheerders van zulke lijsten bieden een mogelijkheid om dat op te vragen en om verwijdering aan te vragen.
  • De installer meldt een fout bij de database: MariaDB is nog niet met mysql_secure_installation afgerond, of in het bestand installer.cfg klopt de sectie voor de database niet.
  • Na een herstart werkt niets meer: controleer de betrokken diensten met systemctl status postfix dovecot nginx.

Een eigen mailserver vraagt meer onderhoud dan andere diensten: updates, back-ups van de mailboxen en een oog op de bezorgbaarheid. Neemt u dat op u, dan krijgt u daarvoor volledige controle over uw communicatie terug.

Auteur: XEfnexX (pseudoniem)

Veelgestelde vragen

Welke Debian-versie heb ik nodig voor Modoboa?
Gebruik Debian 12 of Debian 11 in een verse installatie. Debian 10 wordt niet meer ondersteund en hoort voor een nieuwe mailserver niet meer ingezet te worden.
Waarom belandt mijn mail in de spammap?
In de meeste gevallen ontbreekt de reverse-DNS-record, of er zijn geen SPF-, DKIM- en DMARC-records ingesteld. Controleer alle vier de punten voordat u de server productief gebruikt.
Kan ik Modoboa installeren op een server met een bestaande website?
Dat raden wij af. De installer verwacht een vers systeem en breekt regelmatig af wanneer er al een webserver of een database draait.
Welke poorten moet ik openzetten?
Poort 25 voor het ontvangen van mail, 587 en 465 voor de verzending door uw gebruikers, 143 en 993 voor IMAP en daarnaast 80 en 443 voor webmail en voor het uitgeven van het SSL-certificaat.
Hoe stel ik de reverse-DNS-record in?
De PTR-record stelt u zelf in het klantenpaneel in onder Mijn diensten: server selecteren, Reverse DNS openen en daar de hostnaam van uw mailserver invullen.

Mailserver Modoboa Postfix Dovecot Debian SPF-DKIM-DMARC Reverse-DNS