Postfix is een populaire gratis en open-source software die fungeert als een mail transfer agent (MTA). De taak van Postfix is om e-mails te routeren en af te leveren. Naast het klassieke gebruik kan Postfix ook worden geconfigureerd om e-mails alleen door lokale applicaties te laten verzenden.
Deze toepassing van Postfix is een handige truc om in verschillende situaties in te zetten. Het kan bijvoorbeeld worden gebruikt bij het regelmatig verzenden van e-mailnotificaties, het werken met een externe e-mailprovider met beperkt uitgaand verkeer, enz. Vergeleken met een volwaardige SMTP server is Postfix een lichter alternatief dat tegelijkertijd de nodige functionaliteiten behoudt.
Bekijk in deze handleiding hoe u Postfix installeert en configureert als een send-only SMTP-server op Ubuntu.
Vereisten
Om deze handleiding te volgen, moet u aan de volgende vereisten voldoen:
-
U moet beschikken over een correct geconfigureerde Ubuntu-server met toegang tot een sudo non-root gebruiker.
-
U hebt ook een volledig geregistreerde domeinnaam nodig. Lees meer over domeinnamen in ons Een SSL-certificaat installeren van een commerciële certificeringsinstantie artikel.
-
Ten slotte hebt u een DNS-record nodig waarbij de domeinnaam naar het openbare IP-adres van de server verwijst.
Postfix installeren
Zodra aan de voorwaarden is voldaan, is de server klaar om Postfix te implementeren. De eenvoudigste manier om Postfix te installeren is door het mailutils-pakket te installeren. Dit is direct beschikbaar in de officiële Ubuntu-repositories.
Open eerst een terminal en update de APT-pakketdatabase:
|
1 |
sudo apt update |

Vervolgens kunt u Postfix installeren:
|
1 |
sudo apt install mailutils |

Tijdens het installatieproces verschijnt het volgende configuratievenster. De standaardoptie is Internet Site. Om de selectie te bevestigen, drukt u op TAB om de cursor naar de volgende sectie te verplaatsen. Druk vervolgens op Enter:

In de volgende stap wordt gevraagd naar de System mail name. Dit is de naam die bij de aanmaak aan de server is toegewezen. Zoals beschreven in het script: als het e-mailadres voor de lokale host 'foo@example.org' is, dan is de System mail name example.org:

Houd er rekening mee dat het configuratiescript ook op elk gewenst moment achteraf kan worden gestart met de volgende opdracht:
|
1 |
sudo dpkg-reconfigure postfix |
Postfix configureren
In deze stap wordt Postfix geconfigureerd om alleen e-mails te verzenden en te ontvangen van localhost. Hiervoor moet Postfix luisteren op de loopback-interface. Dit is de virtuele netwerkinterface die de server gebruikt voor interne communicatie. Open vervolgens het Postfix-configuratiebestand met de teksteditor van uw keuze:
|
1 |
sudo nano /etc/postfix/main.cf |
Wijzig de waarde van inet_interface naar loopback-only:

Een andere richtlijn die u moet wijzigen is mydestination. Deze definieert de lijst met domeinen die worden afgeleverd via het local_transport-transport voor e-mailbezorging. De standaardwaarde ziet er ongeveer zo uit:

Wijzig de waarde hiervan in het volgende:
|
1 |
mydestination = localhost.$mydomain, localhost, $myhostname |

Als uw domein eigenlijk een subdomein is en u wilt dat de e-mails eruitzien alsof ze vanaf het hoofddomein zijn verzonden, voeg dan de volgende richtlijn toe aan het einde van de Postfix-configuratie. Hiermee wordt het subdomein uit het e-mailadres verwijderd:
|
1 |
masquerade_domains = <main_domain> |

Start Postfix opnieuw op om de wijzigingen door te voeren:
|
1 |
sudo systemctl restart postfix |
De SMTP-server testen
Ervan uitgaande dat het configuratieproces succesvol is verlopen, is het tijd om dit te testen. Controleer hiervoor of Postfix een e-mail kan verzenden naar een extern e-mailaccount met behulp van de opdracht mail. Deze maakt deel uit van het mailutils-pakket:
|
1 |
echo "Test email body" | mail -s "Subject line" <email_address> |
Het bericht moet aankomen op het opgegeven e-mailadres. Op dit moment zijn alle verzonden e-mails onversleuteld. Serviceproviders zullen dergelijke e-mails over het algemeen als spam markeren, dus zorg ervoor dat u de spam-sectie controleert op de aankomst van de e-mail.
Als het mail -commando een fout meldt of de e-mail na langere tijd nog niet is aangekomen, controleer dan de Postfix-configuratie opnieuw en zorg ervoor dat de servernaam en hostnaam correct zijn ingesteld. Met deze configuratie lijken de e-mails te zijn verzonden vanaf het volgende adres:
|
1 |
<username>@<domain> |
Hier is de gebruikersnaam de gebruikersnaam van de servergebruiker die het mail -commando heeft uitgevoerd.
Systeeme-mail doorsturen
We hebben met succes geverifieerd dat de e-mailserver correct is geconfigureerd en functioneert. Nu moet deze worden geconfigureerd om e-mail door te sturen voor root. Alle door het systeem gegenereerde berichten die naar de server worden verzonden, worden doorgestuurd naar een extern e-mailadres. Voor e-mailontvangers bevat het /etc/aliases-bestand de lijst met alternatieve namen. Open het met de teksteditor van uw keuze:
|
1 |
sudo nano /etc/aliases |
Standaard ziet het er als volgt uit:

Voeg aan het einde van het bestand de volgende regel toe:
|
1 |
root: <email_address> |

Dit geeft aan dat de e-mails die naar root worden verzonden, worden doorgestuurd naar een e-mailadres. Voer de volgende opdracht uit om de wijziging door te voeren. Hiermee wordt de aliasdatabase opnieuw opgebouwd die door het mail -commando wordt gebruikt:
|
1 |
sudo newaliases |
![]()
Vervolgens moet u testen of de wijziging is geslaagd. Stuur een teste-mail naar root:
|
1 |
echo "Test root email body" | mail -s "Subject line" root |
De e-mail moet op het opgegeven e-mailadres aankomen. Vergeet niet de spammap te controleren, aangezien er nog geen versleuteling is geconfigureerd.
SMTP-versleuteling inschakelen
Het verzenden van e-mails in onversleuteld formaat is een risicovolle stap. Om de veiligheid te garanderen, is het vereist dat SMTP-versleuteling is ingeschakeld. Om dit te bereiken, vragen we een gratis TLS-certificaat aan bij Let’s Encrypt voor uw domein.
Voor Ubuntu is het de Certbot-tool die het werk doet. Gelukkig is deze direct beschikbaar in de officiële Ubuntu-repository. Installeer Certbot met de volgende opdracht:
|
1 |
sudo apt install certbot |

Ervan uitgaande dat de server UFW heeft geconfigureerd, is het noodzakelijk om poort 80 open te hebben zodat domeinverificatie kan plaatsvinden. Voer de volgende opdracht uit om dit in te schakelen:
|
1 |
sudo ufw allow 80 |

Voer nu Certbot uit om een certificaat te genereren. Dit geeft Certbot de opdracht om certificaten uit te geven met een 4096-bits RSA-sleutel. De verificatie vindt plaats via poort 80 (HTTP):
|
1 |
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d <domain> |
De uitvoer zal er ongeveer zo uitzien:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Opslaan foutopsporingslogboek logboek naar /var/log/letsencrypt/letsencrypt.log Plug-ins geselecteerd: Authenticator standalone, Installer Geen Verkrijgen een nieuw certificaat Uitvoeren de volgende uitdagingen: http-01 uitdaging voor '<domain>' Wachten op verificatie... Opruimen van uitdagingen BELANGRIJKE OPMERKINGEN: - Gefeliciteerd! Je certificaat en keten zijn been opgeslagen op: /etc/letsencrypt/live/<domein>/fullchain.pem Je sleutelbestand is been opgeslagen op: /etc/letsencrypt/live/<domein>/privkey.pem Je certificaat zal vervallen op 2020-07-11. Om te verkrijgen een nieuwe of aangepaste versie van dit certificaat in de toekomst, gewoon voer certbot opnieuw uit. Om niet--interactief te vernieuwen *alle* van je certificaten, voer "certbot renew" - Als je houdt van Certbot, alstublieft overweeg te steunen ons werk door: te doneren aan ISRG / Let's Encrypt: https://letsencrypt.org/donate te doneren aan EFF: https://eff.org/donate-le |
De sleutel wordt opgeslagen in de volgende map:
|
1 |
/etc/letsencrypt/live/<domein> |
Nu je certificaat is gegenereerd, open je het Postfix-configuratiebestand in een tekstverwerker:
|
1 |
sudo nano /etc/postfix/main.cf |
Zoek de sectie TLS parameters:

Wijzig daarna de waarde van de richtlijnen smtpd_tls_cert_file en smtpd_tls_key_file:

Sla vervolgens het bestand op en sluit het. Start Postfix opnieuw op om de wijzigingen door te voeren:
|
1 |
sudo systemctl restart postfix |
Stuur ten slotte nogmaals een test-e-mail naar een doel-e-mailadres:
|
1 |
echo "This is email body" | mail -s "Email subject line" <e-mail> |
De e-mail zou nu normaal moeten verschijnen, net als andere e-mails. Als je de technische informatie van de e-mail controleert, zal deze versleuteld verschijnen.
Laatste gedachten
Gefeliciteerd! Je hebt met succes een send-only e-mailserver geconfigureerd, aangedreven door Postfix. De e-mailtransacties zijn ook beveiligd met een geschikte coderingssleutel.
Voor meer manieren om e-mailoverdracht te optimaliseren, bekijk deze handleiding De beste manieren om de SMTP-server van Google te gebruiken.
Veel computerplezier!
Reacties
Nog geen reacties. Wees de eerste.