Eigen mailserver met Modoboa op Debian installeren
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_installationafgerond, 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?
Waarom belandt mijn mail in de spammap?
Kan ik Modoboa installeren op een server met een bestaande website?
Welke poorten moet ik openzetten?
Hoe stel ik de reverse-DNS-record in?
2023-2026 KernelHost GmbH. Alle rechten voorbehouden. Deze handleiding is auteursrechtelijk beschermd. Publicatie op andere websites, geheel, gedeeltelijk of in bewerkte vorm, is zonder onze schriftelijke toestemming niet toegestaan. Citeren met bronvermelding en link is uitdrukkelijk welkom.

