een vorige versie van deze tutorial is geschreven door Justin Ellingwood
Introduction
Postfix is een populaire open-source Mail Transfer Agent (MTA) die kan worden gebruikt om e-mail te routeren en te leveren op een Linux-systeem. Geschat wordt dat ongeveer 25% van de openbare mailservers op het internet Postfix draaien.
in deze handleiding leert u hoe u Postfix op een Ubuntu 20.04-server installeert en configureert., Vervolgens test je of Postfix mail correct kan routeren door s-nail
te installeren, een Mail User Agent (MUA), ook bekend als een e-mailclient.
merk op dat het doel van deze tutorial is om u te helpen Postfix snel aan de gang te krijgen met slechts enkele kale e-mailfunctionaliteit. U zult niet een volledige featured e-mailserver tegen het einde van deze gids, maar u zult een aantal van de fundamentele componenten van een dergelijke setup om u te helpen aan de slag.
Prerequisites
om deze gids te volgen, hebt u het volgende nodig:
- een server waarop Ubuntu 20 wordt uitgevoerd.,04 om te functioneren als uw Postfix mail server. Deze server moet een niet-root gebruiker hebben met
sudo
privileges en een firewall geconfigureerd met UFW. U kunt onze Ubuntu 20.04 initial server setup guide volgen om dit in te stellen. - een volledig gekwalificeerde domeinnaam naar uw Ubuntu 20.04-server. U kunt hulp vinden bij het instellen van uw domeinnaam met DigitalOcean door onze documentatie over domeinen en DNS-netwerken te volgen. Wees ervan bewust dat als u van plan bent om toegang te krijgen tot e-mail vanaf een externe locatie, moet u ervoor zorgen dat u een MX-record hebt dat ook naar uw mailserver wijst.,
merk op dat deze tutorial ervan uitgaat dat u een host configureert met de FQDN van mail.example.com
. Indien nodig moet u example.com
of mail.example.com
wijzigen om uw eigen FQDN weer te geven.
Stap 1-Postfix installeren
Postfix is opgenomen in de standaard repositories van Ubuntu, dus u kunt het installeren met APT.
om te beginnen, update je lokale apt
pakketcache:
- sudo apt update
Installeer dan het postfix
pakket met het volgende commando., Merk op dat we hier de DEBIAN_PRIORITY=low
omgevingsvariabele doorgeven aan dit installatie Commando. Dit zal ervoor zorgen dat het installatie proces je vraagt om een aantal extra opties in te stellen:
- sudo DEBIAN_PRIORITY=low apt install postfix
Dit installatie proces zal een reeks interactieve prompts openen. Gebruik voor deze tutorial de volgende informatie om uw vragen in te vullen:
- Algemeen Type E-mailconfiguratie?: Kies hiervoor internetsite, omdat dit aansluit bij 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 opgegeven. Bijvoorbeeld, laten we zeggen dat de hostnaam van uw server
mail.example.com
is. U zult waarschijnlijk de systeemmailnaam willen instellen opexample.com
zodat, gegeven de gebruikersnaamuser1
, Postfix het adreszal gebruiken.
- root-en postmaster-e-mailontvanger: Dit is het Linux-account dat mail zal doorsturen die is geadresseerd aan
root@
enpostmaster@
., Gebruik hiervoor je primaire account. In dit voorbeeld geval, sammy. - andere bestemmingen om e-mail te accepteren: dit definieert de e-mailbestemmingen die deze postfix instantie zal accepteren. Als u andere domeinen wilt toevoegen die deze server verantwoordelijk zal zijn voor het ontvangen, voeg deze dan hier toe. Anders zal de standaard voldoende zijn.
- synchrone updates forceren in e-mailwachtrij?: Omdat je waarschijnlijk een journaled bestandssysteem gebruikt, accepteer hier geen.
- lokale netwerken: Dit is een lijst van de netwerken waarvoor uw mailserver is geconfigureerd om berichten door te geven., De standaard zal werken voor de meeste scenario ‘ s. Als u ervoor kiest om het te wijzigen, echter, zorg ervoor dat zeer restrictief met betrekking tot het netwerkbereik.
- postvakgrootte limiet: dit kan worden gebruikt om de grootte van berichten te beperken. Door het in te stellen op
0
schakelt elke groottebeperking uit. - lokaal adresextensie teken: dit is het teken dat gebruikt kan worden om het reguliere gedeelte van het adres te scheiden van een extensie (gebruikt om dynamische aliassen te maken). De standaard,
+
zal werken voor deze tutorial., - te gebruiken internetprotocollen: kies of u de IP-versie wilt beperken die Postfix ondersteunt. Voor de doeleinden van deze tutorial, kies Alles.
om expliciet te zijn, zijn dit de instellingen die in deze gids worden gebruikt:
Opmerking: Als u ooit wilt terugkeren om deze instellingen te wijzigen, kunt u dit doen door te typen:
- sudo dpkg-reconfigure postfix
De prompts zullen vooraf worden ingevuld met uw vorige antwoorden.
wanneer het installatie proces is voltooid, bent u klaar om een paar updates te maken voor uw postfix configuratie.,
Stap 2-Het wijzigen van de Postfix configuratie
nu kunt u een aantal instellingen aanpassen waar het pakket installatie proces u niet om gevraagd heeft. Veel van de instellingen van Postfix zijn gedefinieerd in het /etc/postfix/main.cf
bestand. In plaats van dit bestand direct te bewerken, kunt u Postfix ‘ s postconf
commando gebruiken om configuratie-instellingen op te vragen of in te stellen.
om te beginnen, stelt u de locatie in voor de mailbox van uw niet-root Ubuntu-gebruiker., In deze handleiding gebruiken we het Maildir-formaat, dat berichten scheidt in individuele bestanden die vervolgens worden verplaatst tussen mappen op basis van de actie van de gebruiker. De alternatieve optie die niet wordt behandeld in deze gids is de MBOX-formaat, die alle berichten in een enkel bestand opslaat.
Stel de variabele home_mailbox
in op Maildir/
. Later zal je een mapstructuur maken onder die naam in de persoonlijke map van je gebruiker., Configureer home_mailbox
door te typen:
- sudo postconf -e 'home_mailbox= Maildir/'
vervolgens stelt u de locatie in van de virtual_alias_maps
tabel, die willekeurige e-mailaccounts toewijst aan Linux-systeemaccounts. Voer het volgende commando uit, dat de tabellocatie toewijst aan een hash-databasebestand met de naam /etc/postfix/virtual
:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Nu u de locatie van het virtuele maps-bestand hebt gedefinieerd in uw main.cf
bestand, kunt u het bestand zelf aanmaken en beginnen met het toewijzen van e-mailaccounts aan gebruikersaccounts op uw Linux-systeem., Maak het bestand aan met de gewenste teksteditor; in dit voorbeeld gebruiken we nano
:
- sudo nano /etc/postfix/virtual
een lijst met adressen waarvoor u e-mail wilt accepteren, gevolgd door een witruimte en de Linux-gebruiker waar u die mail wilt ontvangen.,
bijvoorbeeld, als u wilt accepteren e-mail aan en
en zou graag de e-mails afgeleverd op de sammy Linux gebruiker, kunt u uw bestand als volgt aan:
[email protected] [email protected] sammy
Nadat u alles hebt toegewezen alle adressen op de juiste server-accounts, opslaan en sluit het bestand. Als u nano
gebruikt, doe dit door op CTRL + X
te drukken, Y
, dan ENTER
te drukken.,
Pas de toewijzing toe door te typen:
- sudo postmap /etc/postfix/virtual
Herstart het postfix-proces om er zeker van te zijn dat al uw wijzigingen zijn toegepast:
- sudo systemctl restart postfix
aangenomen dat u de eerste Serverinstellingshandleiding hebt gevolgd, hebt u een firewall ingesteld met ufw. Deze firewall blokkeert standaard externe verbindingen naar services op je server, tenzij deze verbindingen expliciet zijn toegestaan, dus je moet een firewallregel toevoegen om een uitzondering toe te staan voor Postfix.,
u kunt verbindingen met de service toestaan door te typen:
- sudo ufw allow Postfix
hiermee is Postfix geconfigureerd en klaar om externe verbindingen te accepteren. Echter, je bent nog niet klaar om het uit te testen met een e-mailclient. Voordat u een client kunt installeren en deze kunt gebruiken om te communiceren met de e-mail die op uw server wordt afgeleverd, moet u een paar wijzigingen aanbrengen in de instellingen van uw Ubuntu-server.,
Stap 3-het installeren van de mailclient en het initialiseren van de Maildir structuur
om te interageren met de mail die wordt afgeleverd, zal deze stap u door het proces van het installeren van het s-nail
pakket leiden. Dit is een feature-rijke 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 naar deze variabele Zoeken om uit te zoeken waar mail voor uw gebruiker te vinden is.
om ervoor Te zorgen dat de MAIL
variabele is ingesteld, ongeacht hoe u toegang tot uw account — of door het ssh
, su
, su -
of sudo
, bijvoorbeeld, moet u de variabele instellen in de /etc/bash.bashrc
bestand op te nemen en toe te voegen aan een bestand in /etc/profile.d
om te controleren of het is ingesteld voor alle gebruikers standaard.,
om de variabele aan deze bestanden toe te voegen, typ:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
om de variabele in uw huidige sessie te lezen, source the /etc/profile.d/mail.sh
file:
- source /etc/profile.d/mail.sh
met dat complete, installeer de s-nail
email client with Apt:
- sudo apt install s-nail
voordat u de client uitvoert, zijn er een paar instellingen die u moet aanpassen. Open het /etc/s-nail.rc
bestand in uw editor:
- sudo nano /etc/s-nail.rc
onderaan het bestand, voeg de volgende opties toe:
. . .set emptystartset folder=Maildirset record=+sent
Hier is wat deze regels doen:
-
set emptystart
: hiermee kan de client te openen, zelfs met een lege inbox -
set folder=Maildir
: hiermee stelt u deMaildir
map naar de internefolder
variabele -
set record=+sent
maakt eensent
mbox-bestand voor het opslaan van verzonden berichten in de map die is ingesteld als defolder
variabele, in dit gevalMaildir
Opslaan en sluit het bestand wanneer u klaar bent., Je bent nu klaar om de Maildir structuur van je systeem te initialiseren.
een snelle manier om de Maildir-structuur binnen uw persoonlijke map aan te maken is door uzelf een e-mail te sturen met het s-nail
Commando. Omdat het sent
bestand alleen beschikbaar zal zijn als de Maildir is aangemaakt, moet u het schrijven naar deze eerste e-mail uitschakelen. Doe dit door de optie -Snorecord
over te geven.
verzend de e-mail door een tekenreeks door te pipen naar het s-nail
Commando., Pas het commando aan om uw Linux gebruiker als ontvanger te markeren:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Opmerking: U kunt het volgende antwoord krijgen:
OutputCan't canonicalize "/home/sammy/Maildir"
Dit is normaal en kan alleen verschijnen bij het verzenden van dit eerste bericht.,
u kunt controleren of de map is aangemaakt door te zoeken naar uw ~/Maildir
Map:
- ls -R ~/Maildir
u zult zien dat de mapstructuur is aangemaakt en dat er een nieuw berichtbestand is in de ~/Maildir/new
Map:
nu de mapstructuur gemaakt, bent u klaar om de s-nail
client uit te testen door het init
bericht dat u verzonden hebt te bekijken en een bericht naar een extern e-mailadres te sturen.,
Stap 4 — het Testen van de Client
Om de client, voert de s-nail
commando:
- s-nail
Op de console, zie je een rudimentaire het postvak in met de init
message waiting:
Druk op de toets ENTER
voor weergave van het bericht:
U kunt teruggaan naar de berichtenlijst door het intypen van h
en vervolgens ENTER
:
- h
Output>R 1 [email protected] 2020-05-19 15:40 14/392 init
Merk op dat het bericht heeft nu een staat van R
, dat aangeeft dat het gelezen is.,
Omdat dit bericht is niet erg handig, je kunt deze verwijderen door te drukken op d
en vervolgens ENTER
:
- d
om terug Te gaan naar de terminal, type q
en vervolgens ENTER
:
- q
Als een laatste test, moet u controleren of s-nail
in staat is om correct verzenden van e-mailberichten. Om dit te doen, kunt u de inhoud van een tekstbestand doorsluizen naar het s-nail
proces, zoals u deed met het init
bericht dat u in de vorige stap stuurde.,
begin met het schrijven van een testbericht in een teksteditor:
- nano ~/test_message
voer binnen een tekst in die u wilt verzenden:
Hello,This is a test. Please confirm receipt!
sla het bestand op en sluit het na het schrijven van uw bericht.
gebruik dan hetcat
commando om het bericht door te sturen naar hets-nail
proces., U kunt dit doen met het volgende voorbeeld, dat de volgende opties gebruikt:
-
-s
: dit definieert de onderwerpregel van het e-mailbericht -
-r
: een optionele wijziging in het veld” van: “van de e-mail. Standaard zal de Linux gebruiker waarmee je ingelogd bent, gebruikt worden om dit veld in te vullen. Met de optie-r
kunt u dit overschrijven met een geldig adres, zoals een van de adressen die u hebt gedefinieerd in het/etc/postfix/virtual
bestand., Ter illustratie gebruikt het volgende commando
. zorg er ook voor dat u wijzigt naar een geldig e-mailadres waartoe u toegang hebt:
- cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] [email protected]
navigeer naar het e-mailadres waarnaar u het bericht hebt verzonden. U zult uw bericht daar bijna onmiddellijk zien wachten.
opmerking: als het bericht niet in uw postvak in staat is, kan het in uw spammap zijn afgeleverd.
u kunt uw Verzonden berichten bekijken binnen uws-nail
client., Start de interactieve client opnieuw:
- s-nail
vanuit de e-mailclient kunt u uw Verzonden berichten bekijken door te typen:
- file +sent
u ziet de uitvoer als volgt:
Output+sent: 1 message 1 new▸N 1 [email protected] 2020-05-19 15:47 12/297 Test email subject line
u kunt verzonden e-mail beheren met dezelfde commando ‘ s die u gebruikt voor inkomende e-mail.
conclusie
u hebt Postfix nu geconfigureerd op uw Ubuntu 20.04-server. Het beheren van e-mailservers kan een moeilijke taak voor nieuwe systeembeheerders, maar met deze configuratie, moet je genoeg MTA e-mail functionaliteit om jezelf te beginnen.