Hoe Postfix te installeren en configureren op Ubuntu 22.04

Introductie

Postfix is een populaire open-source Mail Transfer Agent (MTA) die kan worden gebruikt om e-mail te routeren en af te leveren op een Linux-systeem. Naar schatting draait ongeveer 25% van de openbare mailservers op internet op Postfix.

In deze handleiding leer je hoe je Postfix installeert en configureert op een Ubuntu 22.04-server. Vervolgens test je of Postfix in staat is om e-mail correct te routeren door s-nail te installeren, een Mail User Agent (MUA), ook wel bekend als een e-mailclient.

Merk op dat het doel van deze tutorial is om je snel op weg te helpen met Postfix met alleen wat basisfunctionaliteit voor e-mail. Aan het einde van deze handleiding heb je geen volledig uitgeruste e-mailserver, maar wel enkele van de basiscomponenten van zo’n setup om je op weg te helpen.

Vereisten

Het opzetten en onderhouden van je eigen mailservers is ingewikkeld en tijdrovend. Voor de meeste gebruikers is het praktischer om in plaats daarvan te vertrouwen op een betaalde mailservice. Als je overweegt om je eigen mailserver te draaien, raden we je aan om dit artikel te lezen waarom je dit mogelijk niet wilt doen.

Als je er zeker van bent dat je deze handleiding wilt volgen om Postfix te installeren en configureren, dan moet je eerst het volgende hebben:

  • A server running Ubuntu 22.04 to function as your Postfix mail server. This server should have a non-root user with sudo privileges and a firewall configured with UFW. You can follow our Ubuntu 22.04 initial server setup guide to set this up.
  • A Fully Qualified Domain Name pointed at your Ubuntu 22.04 server. You can find help on setting up your domain name with DigitalOcean by following our Domains and DNS Networking documentation. Be aware that if you plan on accessing mail from an external location, you will need to make sure you have an MX record pointing to your mail server as well.

Merk op dat deze handleiding ervan uitgaat dat je een host configureert met de FQDN van mail.example.com. Waar nodig, zorg ervoor dat je example.com of mail.example.com wijzigt om overeen te komen met je eigen FQDN.

Stap 1 — Postfix installeren

Postfix is opgenomen in de standaard repositories van Ubuntu, dus je kunt het installeren met APT.

Om te beginnen, update je lokale apt pakketcache:

  1. sudo apt update

Vervolgens installeer je het postfix pakket met de volgende opdracht. Merk op dat we hier de DEBIAN_PRIORITY=laag omgevingsvariabele doorgeven aan deze installatieopdracht. Dit zal ervoor zorgen dat het installatieproces je zal vragen om enkele aanvullende opties te configureren:

  1. sudo DEBIAN_PRIORITY=low apt install postfix

Dit installatieproces opent een reeks interactieve prompts. Gebruik voor de doeleinden van deze handleiding de volgende informatie om je prompts in te vullen:

  • Algemeen type mailconfiguratie?: Kies hiervoor Internet Site, omdat dit overeenkomt met onze infrastructuurbehoeften.
  • Systeemmailnaam: Dit is het basisdomein dat wordt gebruikt om een geldig e-mailadres te construeren wanneer alleen het accountgedeelte van het adres wordt gegeven. Stel bijvoorbeeld dat de hostnaam van uw server mail.voorbeeld.com is. U wilt waarschijnlijk de systeemmailnaam instellen op voorbeeld.com, zodat Postfix het adres gebruiker1@voorbeeld.com zal gebruiken, gegeven de gebruikersnaam gebruiker1.
  • Root- en postmaster-mailontvanger: Dit is het Linux-account waarnaar e-mails geadresseerd aan root@ en postmaster@ worden doorgestuurd. Gebruik hiervoor uw primaire account. In dit voorbeeldgeval is dat sammy.
  • Andere bestemmingen om mail voor te accepteren: Dit definieert de mailbestemmingen die deze Postfix-instantie zal accepteren. Als u andere domeinen moet toevoegen waarvoor deze server verantwoordelijk is voor het ontvangen van e-mails, voeg deze dan hier toe. Anders is de standaardinstelling voldoende.
  • Forceer synchrone updates in mailwachtrij?: Aangezien u waarschijnlijk een gejournaliseerd bestandssysteem gebruikt, accepteer hier Nee.
  • Lokale netwerken: Dit is een lijst van de netwerken waarvoor uw mailserver is geconfigureerd om berichten door te sturen. De standaardinstelling werkt voor de meeste scenario’s. Als u ervoor kiest om deze te wijzigen, zorg er dan wel voor dat u zeer restrictief bent wat betreft het netwerkbereik.
  • Postvakgrootte limiet: Dit kan worden gebruikt om de grootte van berichten te beperken. Stel het in op 0 om elke groottebeperking uit te schakelen.
  • Lokaal adresextensiekarakter: Dit is het karakter dat kan worden gebruikt om het reguliere gedeelte van het adres te scheiden van een extensie (gebruikt om dynamische aliassen te maken). De standaard, +, zal werken voor deze handleiding.
  • Te gebruiken internetprotocollen: Kies of u het IP-versie wilt beperken die Postfix ondersteunt. Kies voor de doeleinden van deze handleiding alle.

Om duidelijk te zijn, dit zijn de instellingen die in deze gids worden gebruikt:

  • Algemeen type mailconfiguratie?: Internet Site
  • Systeemmailnaam: voorbeeld.com (niet mail.voorbeeld.com)
  • Root- en postmaster-mailontvanger: De gebruikersnaam van uw primaire Linux-account (sammy in onze voorbeelden)
  • Andere bestemmingen om mail voor te accepteren: $myhostname, voorbeeld.com, mail.voorbeeld.com, localhost.voorbeeld.com, localhost
  • Forceer synchrone updates op mailwachtrij?: Nee
  • Lokale netwerken: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Postvakgrootte limiet: 0
  • Lokaal adresextensiekarakter: +
  • Te gebruiken internetprotocollen: alle

Let op: Als je ooit terug moet gaan om deze instellingen te wijzigen, kun je dat doen door het volgende te typen:

  1. sudo dpkg-reconfigure postfix

De prompts worden vooraf ingevuld met je eerdere antwoorden.

Als je gevraagd wordt om services te herstarten, accepteer dan de standaardinstellingen en kies OK.

Zodra het installatieproces is voltooid, ben je klaar om een paar updates uit te voeren aan je Postfix-configuratie.

Stap 2 — Het wijzigen van de Postfix-configuratie

Nu kun je enkele instellingen aanpassen waar het installatieproces je niet om vroeg. Veel van de configuratie-instellingen van Postfix zijn gedefinieerd in het bestand /etc/postfix/main.cf. In plaats van dit bestand rechtstreeks te bewerken, kun je de postconf-opdracht van Postfix gebruiken om configuratie-instellingen op te vragen of in te stellen.

Begin met het instellen van de locatie voor de mailbox van je niet-root Ubuntu-gebruiker. In deze handleiding zullen we het Maildir-formaat gebruiken, waarbij berichten in afzonderlijke bestanden worden opgesplitst die vervolgens tussen mappen worden verplaatst op basis van gebruikersacties. De alternatieve optie die niet in deze handleiding wordt behandeld, is het mbox-formaat, waarbij alle berichten binnen één bestand worden opgeslagen.

Stel de variabele home_mailbox in op Maildir/. Later maak je een directorystructuur met die naam binnen de thuisdirectory van je gebruiker. Configureer home_mailbox door het volgende te typen:

  1. sudo postconf -e 'home_mailbox= Maildir/'

Stel vervolgens de locatie van de virtual_alias_maps tabel in, die willekeurige e-mailaccounts toewijst aan Linux-systeemaccounts. Voer het volgende commando uit, waarbij je de locatie van de tabel toewijst aan een hash-databasebestand met de naam /etc/postfix/virtual:

  1. sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

Nu je de locatie van het bestand met virtuele mappings hebt gedefinieerd in je main.cf-bestand, kun je het bestand zelf maken en beginnen met het toewijzen van e-mailaccounts aan gebruikersaccounts op je Linux-systeem. Maak het bestand met je voorkeurteksteditor; in dit voorbeeld zullen we nano gebruiken:

  1. sudo nano /etc/postfix/virtual

Vermeld alle adressen waarvoor je e-mail wilt accepteren, gevolgd door een spatie en de Linux-gebruiker waarnaar je die e-mail wilt laten bezorgen.

Bijvoorbeeld, als je e-mail wilt accepteren op contact@example.com en admin@example.com en die e-mails wilt laten bezorgen bij de sammy Linux-gebruiker, kun je je bestand zo instellen:

/etc/postfix/virtual
contact@example.com sammy
admin@example.com sammy

Nadat je alle adressen aan de juiste serveraccounts hebt toegewezen, sla je het bestand op en sluit je het af. Als je nano hebt gebruikt, doe je dit door op CTRL + X, Y, dan ENTER te drukken.

Pas de toewijzing toe door het volgende te typen:

  1. sudo postmap /etc/postfix/virtual

Herstart het Postfix-proces om er zeker van te zijn dat al je wijzigingen zijn toegepast:

  1. sudo systemctl restart postfix

Als u de vereiste Initial Server Setup-gids hebt gevolgd, hebt u een firewall geconfigureerd met UFW. Deze firewall blokkeert standaard externe verbindingen met services op uw server, tenzij die verbindingen expliciet zijn toegestaan. U moet dus een firewallregel toevoegen om een uitzondering toe te staan voor Postfix.

U kunt verbindingen met de service toestaan door het volgende in te typen:

  1. sudo ufw allow Postfix

Met dat is Postfix geconfigureerd en klaar om externe verbindingen te accepteren. Maar u bent nog niet klaar om het uit te testen met een mailclient. Voordat u een client kunt installeren en gebruiken om te interageren met de mail die naar uw server wordt gestuurd, moet u een paar wijzigingen aanbrengen in de setup van uw Ubuntu-server.

Stap 3 — De Mailclient Installeren en De Maildir-Structuur Initialiseren

Om te kunnen interageren met de mail die wordt bezorgd, zal deze stap u begeleiden bij het proces van het installeren van het s-nail-pakket. Dit is een functierijke variant van de BSD xmail-client die het Maildir-formaat correct kan verwerken.

Voordat u de client installeert, is het echter verstandig om ervoor te zorgen dat uw MAIL-omgevingsvariabele correct is ingesteld. s-nail zal deze variabele zoeken om te bepalen waar de mail voor uw gebruiker te vinden is.

Om ervoor te zorgen dat de MAIL-variabele is ingesteld, ongeacht hoe je toegang krijgt tot je account – via ssh, su, su -, of sudo, bijvoorbeeld – moet je de variabele instellen in het /etc/bash.bashrc-bestand en deze toevoegen aan een bestand binnen /etc/profile.d om ervoor te zorgen dat deze standaard is ingesteld voor alle gebruikers.

Om de variabele aan deze bestanden toe te voegen, typ:

  1. echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

Om de variabele in je huidige sessie te lezen, source het /etc/profile.d/mail.sh-bestand:

  1. source /etc/profile.d/mail.sh

Met dat gedaan, installeer de s-nail-e-mailclient met APT:

  1. sudo apt install s-nail

Voordat je de client uitvoert, zijn er een paar instellingen die je moet aanpassen. Open het /etc/s-nail.rc-bestand in je editor:

  1. sudo nano /etc/s-nail.rc

Onderaan het bestand voeg je de volgende opties toe:

/etc/s-nail.rc
. . .
set emptystart
set folder=Maildir
set record=+sent

Dit is wat deze regels doen:

  • set emptystart: maakt het mogelijk dat de client zelfs wordt geopend met een lege inbox
  • set folder=Maildir: stelt de Maildir-map in als de interne folder-variabele
  • set record=+sent: maakt een sent-mbox-bestand aan voor het opslaan van verzonden e-mails binnen de map die is ingesteld als de folder-variabele, in dit geval Maildir

Sla het bestand op en sluit het af wanneer je klaar bent. Je bent nu klaar om de Maildir-structuur van je systeem te initialiseren.

A quick way to create the Maildir structure within your home directory is to send yourself an email with the s-nail command. Because the sent file will only be available once the Maildir is created, you should disable writing to it for this initial email. Do this by passing the -Snorecord option.

Verstuur de e-mail door een tekenreeks naar het s-nail-commando te leiden. Pas het commando aan om je Linux-gebruiker als de ontvanger te markeren:

  1. echo 'init' | s-nail -s 'init' -Snorecord sammy

Opmerking: Je kunt het volgende antwoord krijgen:

Output
Can't canonicalize "/home/sammy/Maildir"

Dit is normaal en kan alleen verschijnen bij het verzenden van dit eerste bericht.

Je kunt controleren of de map is aangemaakt door te kijken naar je ~/Maildir map:

  1. ls -R ~/Maildir

Je zult zien dat de mappenstructuur is aangemaakt en dat er een nieuw berichtbestand in de ~/Maildir/new map staat:

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1650294586.Vfc01I7e11dM993645.mail.example.com /home/sammy/Maildir/tmp:

Nu de mappenstructuur is aangemaakt, ben je klaar om de s-nail client uit te proberen door het init bericht dat je hebt verzonden te bekijken en een bericht naar een extern e-mailadres te sturen.

Stap 4 — Testen van de Client

Om de client te openen, voer het s-nail commando uit:

  1. s-nail

In je console zie je een eenvoudige inbox met het init bericht in afwachting:

Output
s-nail version v14.9.15. Type `?' for help "/home/sammy/Maildir": 1 message 1 new >N 1 [email protected] 2022-04-18 15:09 14/452 init

Druk op ENTER om het bericht weer te geven:

Output
[-- Message 1 -- 14 lines, 452 bytes --]: Date: Mon, 18 Apr 2022 15:09:46 +0000 To: [email protected] Subject: init Message-Id: <20220418150946.EE6897E11A@@mail.example.com> From: [email protected] init

Je kunt terugkeren naar de lijst met berichten door h in te typen en vervolgens op ENTER te drukken:

  1. h
Output
>R 1 [email protected] 2022-04-18 15:09 14/452 init

Merk op dat het bericht nu de status R heeft, wat aangeeft dat het is gelezen.

Aangezien dit bericht niet erg nuttig is, kun je het verwijderen door op d te drukken en vervolgens op ENTER:

  1. d

Om terug te keren naar de terminal, typ q en druk vervolgens op ENTER:

  1. q

Als laatste test, controleer of s-nail in staat is om e-mailberichten correct te verzenden. Om dit te doen, kunt u de inhoud van een tekstbestand doorgeven aan het s-nail-proces, net zoals u deed met het init-bericht dat u in de vorige stap heeft verzonden.

Begin met het schrijven van een testbericht in een teksteditor:

  1. nano ~/test_message

Voer binnenin wat tekst in die u wilt verzenden:

~/test_message
Hello,

This is a test.  Please confirm receipt!

Sla het bestand op en sluit het nadat u uw bericht heeft geschreven.

Gebruik vervolgens het cat-commando om het bericht naar het s-nail-proces te leiden. U kunt dit doen met het volgende voorbeeld, dat deze opties gebruikt:

  • -s: Hiermee wordt de onderwerpregel van het e-mailbericht gedefinieerd
  • -r: Een optionele wijziging van het “Van:” veld van de e-mail. Standaard wordt de Linux-gebruiker waarmee u bent ingelogd gebruikt om dit veld in te vullen. De -r-optie stelt u in staat dit te overschrijven met een geldig adres, zoals een van die u heeft gedefinieerd in het bestand /etc/postfix/virtual. Ter illustratie gebruikt het volgende commando [email protected]

Zorg er ook voor dat u gebruiker@email.com wijzigt in een geldig e-mailadres waar u toegang toe heeft:

  1. cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] user@email.com

Navigeer vervolgens naar de inbox voor het e-mailadres waarnaar u het bericht hebt gestuurd. U ziet bijna onmiddellijk uw bericht daar wachten.

Opmerking: Als het bericht niet in uw inbox staat, is het mogelijk afgeleverd in uw Spam-map.

U kunt uw verzonden berichten bekijken binnen uw s-nail-client. Start de interactieve client opnieuw:

  1. s-nail

Vanuit de e-mailclient kunt u uw verzonden berichten bekijken door te typen:

  1. file +sent

U zult output zien zoals dit:

Output
+[/home/sammy/Maildir/]sent: 1 message 1 new ▸N 1 To [email protected] 2022-04-18 15:12 10/211 Test email subject line

U kunt verzonden e-mail beheren met dezelfde commando’s die u gebruikt voor inkomende e-mail.

Conclusie

U hebt nu Postfix geconfigureerd op uw Ubuntu 22.04-server. Het beheren van e-mailservers kan een lastige taak zijn voor nieuwe systeembeheerders, maar met deze configuratie zou u voldoende functionaliteit voor MTA-e-mail moeten hebben om uzelf op weg te helpen.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-22-04