de auteur heeft het gratis en Open Source fonds geselecteerd om een donatie te ontvangen als onderdeel van het Schrijf voor donaties-programma.

Inleiding

Postfix is een mail transfer agent (MTA), een toepassing die wordt gebruikt om e-mail te verzenden en te ontvangen. Het kan zo worden geconfigureerd dat het kan worden gebruikt om e-mails te verzenden door alleen lokale toepassing., Dit is handig in situaties waarin u regelmatig e-mailberichten vanuit uw apps moet verzenden of gewoon veel uitgaand verkeer moet hebben dat een e-mailprovider van derden niet toestaat. Het is ook een lichter alternatief voor het draaien van een full-blown SMTP-server, met behoud van de vereiste functionaliteit.

in deze tutorial installeert en configureert u Postfix als een send-only SMTP-server. U zult ook gratis TLS-certificaten aanvragen bij Let ‘ s Encrypt voor uw domein en de uitgaande e-mails versleutelen met behulp van deze.

vereisten

  • Eén Ubuntu 18.,04 server ingesteld met de initiële Server Setup met Ubuntu 18.04, inclusief het maken van een sudo niet-root gebruiker.
  • een volledig geregistreerde domeinnaam. Deze tutorial zal your_domain gebruiken. U kunt een domeinnaam kopen op Namecheap, krijgen een gratis op Freenom, of gebruik maken van de domeinnaam registrar van uw keuze.
  • Een DNS-record met your_domain wijst naar het publieke IP-adres van uw server. U kunt deze inleiding tot DigitalOcean DNS volgen voor details over hoe u ze kunt toevoegen.,

opmerking: de hostnaam van uw server en de naam van uw druppel moeten overeenkomen met your_domain, omdat DigitalOcean automatisch PTR-records voor het IP-adres van de druppel instelt op basis van de naam.

u kunt de hostnaam van de server verifiëren door hostname achter de opdrachtprompt te typen. De uitvoer moet overeenkomen met de naam die u de druppel gaf toen het werd gemaakt.

Stap 1-Postfix installeren

in deze stap installeert u Postfix., De snelste manier is om het mailutils pakket te installeren, dat Postfix bundelt met een paar aanvullende programma ‘ s die je zult gebruiken om het verzenden van e-mail te testen.

eerst de pakketdatabase bijwerken:

  • sudo apt update

daarna installeer Postfix door het volgende commando uit te voeren:

  • sudo apt install mailutils

aan het einde van het installatieproces wordt u het postfix-configuratievenster getoond:

de standaardoptie is Internet Site., Dat is de aanbevolen optie voor uw use case, dus druk op TAB, en dan ENTER. Als u alleen de beschrijvingstekst ziet, drukt u op TAB om OK te selecteren, en vervolgens ENTER.,

als het niet automatisch wordt weergegeven, voer dan het volgende commando uit om het te starten:

  • sudo dpkg-reconfigure postfix

daarna krijgt u een andere configuratieprompt met betrekking tot de systeemmailnaam:

De systeemmailnaam moet dezelfde zijn als de naam die u aan uw server hebt toegewezen toen u het aanmaakte. Als u klaar bent, drukt u op TAB, gevolgd door ENTER.

U hebt Postfix nu geïnstalleerd en bent klaar om het te configureren.,

Stap 2-Postfix configureren

in deze stap configureert u Postfix om alleen e—mails te verzenden en ontvangen van de server waarop het draait-dat wil zeggen vanaf localhost.

om dat te laten gebeuren, moet Postfix geconfigureerd worden om alleen te luisteren op de loopback interface, de virtuele netwerk interface die de server gebruikt om intern te communiceren. Om de wijzigingen aan te brengen, moet u het hoofd postfix configuratie bestand genaamd main.cf bewerken, opgeslagen onder etc/postfix.,

Openen voor bewerken met je favoriete tekst editor:

  • sudo nano /etc/postfix/main.cf

Zoek de volgende regels:

/etc/postfix/main.cf
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .

Stel de waarde in van de inet_interfaces omgeving om loopback-only:

/etc/postfix/main.cf
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .

een Andere richtlijn die je nodig hebt om te wijzigen is mydestination, die wordt gebruikt voor het opgeven van de lijst van domeinen die worden geleverd via de local_transport mail delivery vervoer., Standaard zijn de waarden vergelijkbaar met deze:

/etc/postfix/main.cf
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .

Verander de regel om er als volgt uit te zien:

/etc/postfix/main.cf
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .

als uw domein eigenlijk een subdomein is, en u wilt de e-mailberichten om eruit te zien alsof ze vanuit het hoofddomein zijn verzonden, kunt u de volgende regel toevoegen aan het einde van main.cf:

/etc/Postfix/main.,cf
...masquerade_domains = your_main_domain

De optionele masquerade_domains instelling geeft aan voor welke domeinen het subdomein deel zal worden verwijderd in het e-mailadres.

sla het bestand op en sluit het.

Opmerking: Als u meerdere domeinen host op een enkele server, kunnen de andere domeinen ook worden doorgegeven aan Postfix met behulp van demydestination richtlijn.

herstart Postfix vervolgens door het volgende commando uit te voeren:

  • sudo systemctl restart postfix

u hebt Postfix geconfigureerd om alleen e-mails van uw server te verzenden., Je test het nu door een voorbeeldbericht naar een e-mailadres te sturen.

Stap 3-testen van de SMTP-Server

in deze stap test U of Postfix e-mails naar een extern e-mailaccount kan verzenden met behulp van het mail commando, dat deel uitmaakt van het mailutils pakket dat u in de eerste stap hebt geïnstalleerd.

om een test-e-mail te verzenden, voer je het volgende commando uit:

  • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

je kunt de inhoud en het onderwerp van de e-mail naar wens wijzigen., Vergeet niet om your_email_address te vervangen door een geldig e-mailadres dat u kunt openen.

Controleer nu het e-mailadres waarnaar u dit bericht hebt verzonden. U zou het bericht in uw postvak IN moeten zien. Als het er niet is, controleer uw spam folder. Op dit punt, alle e-mails die u verzendt zijn niet-versleuteld, waardoor serviceproviders denken dat het waarschijnlijk spam. Je zal de encryptie later instellen, in Stap 5.,

Als u een fout ontvangt van het mail commando, of als u na langere tijd geen bericht hebt ontvangen, controleer dan of de Postfix configuratie die u hebt bewerkt geldig is en of de naam en hostnaam van uw server zijn ingesteld op uw domein.

merk op dat met deze configuratie het adres in het From veld voor de test e-mails die u verzendt de vorm zal hebben van your_user_name@your_domain, waarbij your_user_name de gebruikersnaam is van de servergebruiker die u de opdracht hebt gegeven.,

u hebt nu een e-mail van uw server verzonden en geverifieerd dat deze met succes is ontvangen. In de volgende stap, zal u e-mail forwarding instellen voor root.

Stap 4 – doorsturen van Systeemmail

In deze stap stelt u e-mail doorsturen in voor gebruiker root, zodat door het systeem gegenereerde berichten die op uw server worden verzonden, worden doorgestuurd naar een extern e-mailadres.

het/etc/aliases bestand bevat een lijst met alternatieve namen voor e-mailontvangers., Open het voor bewerken:

  • sudo nano /etc/aliases

In zijn standaard staat ziet het er als volgt uit:

/etc/aliassen
# See man 5 aliases for formatpostmaster: root

de enige aanwezige richtlijn specificeert dat systeem gegenereerde e-mails worden verzonden naar root.

voeg de volgende regel toe aan het einde van het bestand:

/etc/aliassen
...root: your_email_address

Met deze regel geeft u aan dat e-mails die naar root worden verzonden, naar een e-mailadres worden doorgestuurd. Vergeet niet om your_email_address te vervangen door uw persoonlijke e-mailadres., Als je klaar bent, sla het bestand op en sluit het.

om de wijziging door te voeren, voer je het volgende commando uit:

  • sudo newaliases

het uitvoeren van newaliases zal een database van aliassen opbouwen die het commando mail gebruikt, die zijn overgenomen uit het config bestand dat je zojuist hebt bewerkt.

Test of het verzenden van e-mails naar root werkt door het uitvoeren van:

  • echo "This is the body of the email" | mail -s "This is the subject line" root

u moet de e-mail op uw e-mailadres ontvangen. Als het er niet is, controleer uw spam folder.,

in deze stap hebt u systeemgegenereerde berichten naar uw e-mailadres doorgestuurd. U schakelt nu berichtenversleuteling in, zodat alle e-mails die uw server verstuurt immuun zijn voor manipulatie tijdens het transport en als meer legitiem worden beschouwd.

Stap 5-SMTP-encryptie inschakelen

U schakelt nu SMTP-encryptie in door een gratis TLS-certificaat aan te vragen bij Let ‘ s Encrypt voor uw domein (met Certbot) en Postfix te configureren om het te gebruiken bij het verzenden van berichten.

Ubuntu bevat Certbot in hun standaard pakketrepository, maar het kan gebeuren dat het verouderd is., In plaats daarvan voeg je de officiële repository toe door het volgende commando uit te voeren:

  • sudo add-apt-repository ppa:certbot/certbot

druk op ENTER wanneer gevraagd wordt om te accepteren. Vervolgens de pakketbeheer cache van uw server bijwerken:

  • sudo apt update

tot slot installeert u de nieuwste versie van Certbot:

  • sudo apt install certbot -y

als onderdeel van de initiële serverinstellingen installeerde u ufw, de ongecompliceerde firewall. U moet het configureren om de HTTP-poort 80 toe te staan, zodat domeinverificatie kan worden voltooid., Voer het volgende commando uit te schakelen:

  • sudo ufw allow 80

De uitvoer ziet er als volgt uit:

Output
Rule addedRule added (v6)

Nu dat de poort open is, lopen Certbot tot het verkrijgen van een certificaat:

  • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

Dit commando bestellingen Certbot voor de uitgifte van certificaten met een RSA-sleutel grootte van 4096 bits, voor het uitvoeren van een tijdelijke zelfstandige web server (--standalone) voor verificatie, en te controleren via poort 80 (--preferred-challenges http)., Vergeet niet om your_domain te vervangen door uw domein voordat u het commando uitvoert, en voer uw e-mailadres in wanneer daarom wordt gevraagd.

De uitvoer zal vergelijkbaar zijn met deze:

Output
Saving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator standalone, Installer NoneObtaining a new certificatePerforming the following challenges:http-01 challenge for `your_domain`Waiting for verification...Cleaning up challengesIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

zoals geschreven in de notes, zijn uw certificaat en privésleutel bestand opgeslagen onder /etc/letsencrypt/live/your_domain.

nu u uw certificaat hebt, open main.cf Voor het bewerken:

  • sudo nano /etc/postfix/main.cf

Zoek de volgende sectie:

/etc/postfix/main.,CF

Wijzig het om er zo uit te zien, vervang your_domain waar nodig door uw domein, wat uw TLS-instellingen voor Postfix zal bijwerken:

/etc/postfix/main.cf

Als u klaar bent, slaat u het bestand op en sluit het.

Pas de wijzigingen toe door Postfix opnieuw op te starten:

  • sudo systemctl restart postfix

Probeer nu opnieuw een e-mail te versturen:

  • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

controleer dan het e-mailadres dat u hebt opgegeven. Het is mogelijk dat u het bericht onmiddellijk in uw postvak IN ziet, omdat e-mailproviders veel meer kans hebben om niet-versleutelde berichten als spam te markeren.,

u kunt de technische informatie over het e-mailbericht in uw client controleren om te zien dat het bericht inderdaad versleuteld is.

conclusie

u hebt nu een e-mailserver met alleen verzenden, aangedreven door Postfix. Het versleutelen van alle uitgaande berichten is een goede eerste stap om e-mail providers niet markeren uw berichten als spam regelrecht. Als je dit doet in een ontwikkelingsscenario, dan moet deze maatregel voldoende zijn.,

echter, als uw use case is om e-mails te sturen naar potentiële gebruikers van de site (zoals bevestigingsmails voor een message board sign-up), moet u kijken naar het opzetten van SPF records, zodat de e-mails van uw server Nog meer kans om te worden gezien als legitiem.

Articles

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *