forfatteren valgte gratis og Open Source-fonden til at modtage en donation som en del af Writerite for DOnations-programmet.

introduktion

Postfi.er en mail transfer agent (MTA), et program, der bruges til at sende og modtage e-mail. Det kan konfigureres, så det kun kan bruges til at sende e-mails med lokal applikation., Dette er nyttigt i situationer, hvor du regelmæssigt skal sende e-mail-meddelelser fra dine apps eller blot have en masse udgående trafik, som en tredjeparts e-mail-tjenesteudbyder ikke tillader. Det er også et lettere alternativ til at køre en fuldblæst SMTP-server, samtidig med at den nødvendige funktionalitet bevares.

i denne vejledning installerer og konfigurerer du Postfi.som en send-only SMTP-server. Du vil også anmode om gratis TLS-certifikater fra Lad os kryptere for dit domæne og kryptere de udgående e-mails ved hjælp af dem.

Forudsætninger

  • En Ubuntu 18.,04 server konfigureret med den indledende serveropsætning med Ubuntu 18.04, herunder oprettelse af en sudo-ikke-root-bruger.
  • et fuldt registreret domænenavn. Denne vejledning vil bruge your_domain hele vejen igennem. Du kan købe et domænenavn på Namecheap, få en gratis på Freenom eller bruge domæneregistratoren efter eget valg.
  • en DNS-post med your_domain, der peger på din servers offentlige IP-adresse. Du kan følge denne introduktion til DigitalOcean DNS for detaljer om, hvordan du tilføjer dem.,

Bemærk: Din serverens værtsnavn, og din Dråbe ‘ s navn skal stemme overens your_domain, fordi DigitalOcean indstiller automatisk PTR records for Dråben IP-adresse, der i henhold til sit navn.

Du kan bekræfte serverens værtsnavn ved at skrive hostname ved kommandoprompten. Udgangen skal matche det navn, du gav dråben, da den blev oprettet.

Trin 1 — installation af Postfi.

i dette trin installerer du Postfi.., Den hurtigste måde er at installere mailutils – pakken, som bundter Postfi.med et par supplerende programmer, som du vil bruge til at teste afsendelse af e-mail.

for det Første, opdatere pakkedatabasen:

  • sudo apt update

Så, installere Postfix ved at køre følgende kommando:

  • sudo apt install mailutils

i slutningen af installationen, vil du blive præsenteret med Postfix-konfiguration, vindue:

standard indstilling er Internet Site., Det er den anbefalede indstilling for din brug tilfældet, så tryk på TAB og derefter ENTER. Hvis du kun ser beskrivelsesteksten, skal du trykke på TAB for at vælge OK, derefter ENTER.,

Hvis det ikke vises automatisk, skal du køre følgende kommando til at starte den:

  • sudo dpkg-reconfigure postfix

Efter at du vil få en anden konfiguration bede om Systemet mail navn:

Det System, mail, navn skal være det samme som det navn, du har tildelt til serveren, når du opretter det. Når du er færdig, skal du trykke på TAB, efterfulgt af ENTER.

Du har nu installeret Postfi.og er klar til at begynde at konfigurere det.,

Trin 2 — Konfiguration af Postfix

I dette trin, vil du konfigurere Postfix til at sende og modtage e-mails, kun fra den server, det kører på, der er, fra localhost.

for at det skal ske, skal Postfi.konfigureres til kun at lytte på loopback-grænsefladen, den virtuelle netværksgrænseflade, som serveren bruger til at kommunikere internt. For at foretage ændringerne skal du redigere den vigtigste postfi. – konfigurationsfil kaldet main.cf, gemt under etc/postfix.,

Åbne den til redigering ved hjælp af din foretrukne teksteditor:

  • sudo nano /etc/postfix/main.cf

Find følgende linjer:

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

Angiv værdien af inet_interfaces indstilling til loopback-only:

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

et Andet direktiv, du bliver nødt til at ændre, er mydestination, som bruges til at angive en liste over domæner, der er leveret via local_transport e-mail for levering af transport., Som standard, er de værdier, der svarer til disse:

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

Ændre linjen til at se ud som dette:

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

Hvis dit domæne er faktisk et underdomæne, og du gerne vil e-mail-beskeder til at se ud, som om de er sendt fra den primære domæne, kan du tilføje den følgende linje til slutningen af main.cf:

/etc/postfix/main.,CF
...masquerade_domains = your_main_domain

den valgfriemasquerade_domains indstilling angiver for hvilke domæner underdomænedelen vil blive fjernet i e-mail-adressen.

Når du er færdig, skal du gemme og lukke filen.Bemærk: Hvis du hoster flere domæner på en enkelt server, kan de andre domæner også overføres til Postfi.ved hjælp af mydestination direktivet.genstart derefter Postfi.ved at køre følgende kommando:

  • sudo systemctl restart postfix

Du har konfigureret Postfi. til kun at sende e-mails fra din server., Du vil nu teste det ved at sende et eksempel besked til en e-mail-adresse.

Trin 3 — Test af SMTP-Server

I dette trin, vil du teste, om Postfix kan sende e-mails til en ekstern e-mail-konto ved hjælp af mail kommando, som er en del af mailutils pakke, der er installeret i det første trin.

for at sende en test-e-mail skal du køre følgende kommando:

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

Du kan ændre e-mailens krop og emne efter din smag., Husk at erstatte your_email_address med en gyldig e-mail-adresse, som du kan få adgang til.kontroller nu den e-mail-adresse, som du sendte denne meddelelse til. Du skal se meddelelsen i din indbakke. Hvis den ikke er der, skal du tjekke din spam-mappe. På dette tidspunkt er alle e-mails, du sender, ikke krypteret, hvilket får tjenesteudbydere til at tro, at det sandsynligvis er spam. Du vil oprette kryptering senere, i trin 5.,

Hvis du modtager en fejl fra kommandoen mail, eller du ikke har modtaget en besked efter længere tid, skal du kontrollere, at Postfi. – konfigurationen, du redigerede, er gyldig, og at din servers navn og værtsnavn er indstillet til dit domæne.

Bemærk, at med denne konfiguration, adressen i From område for test-e-mails, du sender, vil være i form af your_user_name@your_domain, hvor your_user_name er navnet på den server bruger du kørte kommando.,

du har nu sendt en e-mail fra din server og bekræftet, at den er modtaget. I det næste trin opretter du videresendelse af e-mail til root.

Trin 4 — For Systemarding System Mail

i dette trin konfigurerer du videresendelse af e-mail til bruger root, så systemgenererede meddelelser, der sendes til den på din server, videresendes til en ekstern e-mail-adresse.

/etc/aliases filen indeholder en liste over alternative navne til e-mail-modtagere., Åbne den til redigering:

  • sudo nano /etc/aliases

I sin standard tilstand, det ser ud som dette:

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

Den eneste direktiv nuværende tidspunkt angiver, at systemet genererede e-mails er sendt til root.

du Tilføje følgende linje til slutningen af filen:

/etc/alias
...root: your_email_address

Med denne linje, skal du angive, at e-mails, der sendes til root ender med at blive sendt til en e-mail-adresse. Husk at erstatte your_email_address med din personlige e-mailadresse., Når du er færdig, skal du gemme og lukke filen.

For at anvende ændringerne, skal du køre følgende kommando:

  • sudo newaliases

Kører newaliases vil opbygge en database over kaldenavne, at mail kommando bruger, der er taget fra den config fil, du lige har redigeret.

Test, at afsendelse af e-mails til root fungerer ved at køre:

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

Du skal modtage e-mailen på din e-mail-adresse. Hvis den ikke er der, skal du tjekke din spam-mappe.,

i dette trin har du konfigureret videresendelsessystemgenererede meddelelser til din e-mail-adresse. Du aktiverer nu meddelelseskryptering, så alle e-mails, som din server sender, er immun mod manipulation i transit og vil blive betragtet som mere legitime.

Trin 5 — Aktivere SMTP-Kryptering

Du vil nu aktivere SMTP-kryptering ved at anmode om et gratis TLS-certifikat fra Lad os Kryptere for dit domæne (ved hjælp af Certbot) og konfigurering af Postfix til at bruge den, når du sender beskeder.Ubuntu indeholder Certbot i deres standardpakke repository, men det kan ske, at det er forældet., I stedet, du vil tilføje den officielle repository ved at køre følgende kommando:

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

Tryk ENTER, når du bliver bedt om at acceptere. Derefter opdatere din server ‘ s package manager cache:

  • sudo apt update

Endelig, skal du installere den nyeste version af Certbot:

  • sudo apt install certbot -y

Som en del af den oprindelige server setup i de forudsætninger, du har installeret ufw, ukompliceret firewall. Du skal konfigurere den til at tillade HTTP-porten 80, så domæneverifikation kan afsluttes., Kør følgende kommando for at aktivere det:

  • sudo ufw allow 80

resultatet vil se ud som dette:

Output
Rule addedRule added (v6)

Nu, at porten er åben, skal du køre Certbot til at få et certifikat:

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

Denne kommando ordrer Certbot til at udstede certifikater med en RSA-nøgle størrelsen af 4096 bits, til at køre en midlertidig standalone web server (--standalone) til verifikation, og check via port 80 (--preferred-challenges http)., Husk at erstatte your_domain med dit domæne, før du kører kommandoen, og indtast din e-mail-adresse når du bliver bedt om.

udgangen vil svare til dette:

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

Som skrevet i noterne blev dit certifikat og din private nøglefil gemt under/etc/letsencrypt/live/your_domain.

Nu, hvor du har dit certifikat, skal du åbne main.cf for at redigere:

  • sudo nano /etc/postfix/main.cf

Find de følgende afsnit:

/etc/postfix/main.,cf

Ændre det til at se ud som dette, udskiftning your_domain med dit domæne, hvor det er nødvendigt, som vil opdatere din TLS-indstillingerne for Postfix:

/etc/postfix/main.cf

Når du er færdig, skal du gemme og lukke filen.

Anvende ændringerne ved at genstarte Postfix:

  • sudo systemctl restart postfix

Nu, prøv at sende en e-mail igen:

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

Så, tjekke e-mail adresse, du har angivet. Det er muligt, at du straks ser meddelelsen i din indbakke, fordi e-mail-udbydere er meget mere tilbøjelige til at markere ikke-krypterede meddelelser som spam.,

Du kan kontrollere de tekniske oplysninger om e-mail-meddelelsen i din klient for at se, at meddelelsen faktisk er krypteret.

konklusion

du har nu en send-only e-mail-server, drevet af Postfi.. Kryptering af alle udgående meddelelser er et godt første skridt til e-mail-udbydere, der ikke markerer dine meddelelser som spam direkte. Hvis du gør dette i et udviklingsscenarie, skal denne foranstaltning være nok.,

Hvis din brugssag imidlertid er at sende e-mails til potentielle brugere af siteebstedet (såsom bekræftelses-e-mails til en tilmelding til opslagstavle), skal du undersøge opsætning af SPF-poster, så din servers e-mails er endnu mere tilbøjelige til at blive betragtet som legitime.

Articles

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *