forfatteren valgt Gratis og Åpen Kildekode-Fondet til å motta en gave som en del av å Skrive for Donasjoner program.
Innledning
Postfix er en mail transfer agent (MTA), et program som brukes til å sende og motta e-post. Det kan være konfigurert slik at den kan brukes til å sende e-post ved lokal applikasjon bare., Dette er nyttig i situasjoner når du trenger å jevnlig sende e-meldinger fra appene dine eller rett og slett har mye av utgående trafikk som en tredjeparts e-tjenesteleverandøren vil ikke tillate. Det er også et lettere alternativ til å kjøre en full-blåst SMTP-server, og samtidig beholde den nødvendige funksjonaliteten.
I denne opplæringen, vil du installere og konfigurere Postfix som en send-bare SMTP server. Du vil også be om gratis TLS-sertifikater fra La oss Kryptere for domenet, og du vil kryptere utgående e-postmeldinger ved hjelp av dem.
Forutsetninger
- En Ubuntu-18.,04 server satt opp med den Første Server Oppsett med Ubuntu 18.04, inkludert opprette en sudo ikke-root-brukeren.
- Et helt domene som er registrert. I denne veiledningen bruker
your_domain
hele. Du kan kjøpe et domenenavn på Namecheap, få en gratis med på Freenom, eller du kan bruke domene registrar av ditt valg. - En DNS-post med
your_domain
peker til serveren din er offentlig IP-adresse. Du kan følge denne introduksjonen til DigitalOcean DNS for informasjon om hvordan å legge dem til.,
Merk: Din-serverens vertsnavn og Dråpestørrelse navn må matche your_domain
, fordi DigitalOcean angir automatisk PTR-records for Dråpe ‘ s IP-adresse i henhold til sitt navn.
Du kan kontrollere serverens vertsnavn ved å skrive hostname
ved ledeteksten. Utdataene bør samsvare med navnet du ga Dråpe da den ble opprettet.
Trinn 1 — Installere Postfix
I dette trinnet, vil du installere Postfix., Den raskeste måten er å installere mailutils
pakken, som bunter Postfix med noen ekstra programmer som du vil bruke til å teste sending av e-post.
Først, oppdater pakke database:
- sudo apt update
Så, installere Postfix ved å kjøre følgende kommando:
- sudo apt install mailutils
Nær slutten av installasjonen, vil du bli presentert med Postfix configuration-vinduet:
standard er alternativet Internet Site
., Det er anbefalt alternativ for din bruk tilfelle, så trykk på TAB
og deretter ENTER
. Hvis du bare vil se beskrivelse av tekst, trykker du på TAB
for å velge OK
, deretter ENTER
.,
Hvis den ikke vises automatisk, kan du kjøre følgende kommando for å starte det:
- sudo dpkg-reconfigure postfix
Etter det, vil du få en annen konfigurasjon be om Systemet post navn:
System-post navn må være det samme som navnet som du har gitt din server når du oppretter det. Når du er ferdig, trykker du på TAB
, etterfulgt av ENTER
.
Du har nå installert Postfix og er klar for å begynne å konfigurere den.,
Trinn 2 — Konfigurering av Postfix
I dette trinnet, vil du konfigurere Postfix for å sende og motta e-postmeldinger bare fra serveren der det kjører på, som er fra localhost
.
For at det skal skje, Postfix må være konfigurert til å bare lytte på loopback-grensesnittet, virtual network interface som bruker serveren for å kommunisere internt. For å gjøre endringer, vil du trenger for å redigere den viktigste Postfix konfigurasjon fil som heter main.cf
, lagret under etc/postfix
.,
Åpne den for redigering ved hjelp av din favoritt tekst editoren:
- sudo nano /etc/postfix/main.cf
Finn følgende linjer:
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .
Angi verdien for inet_interfaces
innstilling til loopback-only
:
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .
en Annen direktiv du trenger å endre er mydestination
, som brukes til å spesifisere listen over domener som er levert via local_transport
transport levering av e-post., Standard verdier er lik disse:
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .
Endre linjen til å se ut som dette:
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .
Hvis domenet ditt er faktisk et underdomene, og at du ønsker e-postmeldinger til å se ut som om de ble sendt fra hoved domene, kan du legge til følgende linje til slutten av main.cf
:
...masquerade_domains = your_main_domain
Den valgfrie masquerade_domains
– innstillingen angir for hvilke domener underdomenet del vil bli strippet av e-postadressen.
Når du er ferdig kan du lagre og lukk filen.
Merk: Hvis du skal arrangere flere domener på en enkelt server, andre domener kan også sendes til Postfix bruke mydestination
direktiv.
Deretter starter Postfix ved å kjøre følgende kommando:
- sudo systemctl restart postfix
Du har konfigurert Postfix for å bare sende e-post fra serveren din., Du vil nå teste det ved å sende et eksempel melding til en e-postadresse.
Trinn 3 — Testing SMTP-Server
I dette trinnet, vil du teste om Postfix kan sende e-post til en ekstern e-postkonto ved hjelp av mail
– kommandoen, som er en del av mailutils
pakken som du har installert, i første trinn.
Hvis du vil sende en test-e-post, kan du kjøre følgende kommando:
- echo "This is the body of the email" | mail -s "This is the subject line" your_email_address
Du kan endre kroppen og emnet for e-posten til din smak., Husk å bytt your_email_address
med en gyldig e-postadresse som du kan få tilgang til.
Nå, sjekke e-postadressen som du sendte denne meldingen. Du bør se meldingen i innboksen din. Hvis den ikke det, sjekk din spam mappe. På dette punktet, alle e-poster du sender er ikke kryptert, noe som gjør tjenesteleverandører tror det er sannsynlig spam. Du vil sette opp kryptering senere, i trinn 5.,
Hvis du får en feilmelding fra mail
– kommandoen, eller hvis du ikke har mottatt en melding etter lengre perioder av gangen, kan du kontrollere at Postfix konfigurasjonen du har redigert, er gyldig og at det er din server navn og vertsnavnet er satt til ditt domene.
Merk at med denne konfigurasjonen, adressen i From
feltet for test-e-post du sender, vil være i form av your_user_name@your_domain
, der your_user_name
er brukernavnet til serveren bruker du kjørte kommandoen as.,
Du har nå sendt en e-post fra din server og bekreftet at det er mottatt. I neste trinn vil du sette opp videresending av e-post for root
.
Trinn 4 — Videresending System Post
I dette trinnet, vil du sette opp videresending av e-post for brukeren root
, slik at systemet genererte meldinger som er sendt til den på din server få videresendt til en ekstern e-postadresse.
/etc/aliases
fil som inneholder en liste over alternative navn for e-postmottakere., Åpne den for redigering:
- sudo nano /etc/aliases
I standard form, det ser ut som dette:
# See man 5 aliases for formatpostmaster: root
Den eneste direktiv presentere angir at systemet er generert e-post som er sendt til root
.
Legg til følgende linje til slutten av filen:
...root: your_email_address
Med denne linjen, kan du angi at e-post sendt til root
ende opp med å bli videresendt til en e-postadresse. Husk å bytt your_email_address
med din personlige e-postadresse., Når du er ferdig kan du lagre og lukk filen.
For at endringen skal tre i kraft, kan du kjøre følgende kommando:
- sudo newaliases
å Kjøre newaliases
vil bygge opp en database av aliaser at mail
kommandoen bruker, som er tatt fra config-filen du nettopp redigert.
Test som sender e-post til root
fungerer ved å kjøre:
- echo "This is the body of the email" | mail -s "This is the subject line" root
skal Du motta en e-post til din e-post adresse. Hvis den ikke det, sjekk din spam mappe.,
I dette trinnet, blir du har satt opp videresending av systemet genererte meldinger til din e-post adresse. Nå vil du aktiverer kryptering av meldinger, slik at alle e-poster serveren sender er immune mot inngrep i transitt og vil bli sett på som mer legitim.
Trinn 5 — Aktivere SMTP-Kryptering
vil Du nå aktivere SMTP-kryptering ved å be om en gratis TLS-sertifikat fra La oss Kryptere for domenet (med Certbot) og konfigurering av Postfix for å bruke den når du sender meldinger.
Ubuntu inkluderer Certbot i deres standard pakke i depotet, men det kan skje at det er ute av dato., I stedet, du vil legge til den offisielle depotet ved å kjøre følgende kommando:
- sudo add-apt-repository ppa:certbot/certbot
Trykk ENTER
når du blir bedt om å godta. Oppdater deretter din server pakke manager cache:
- sudo apt update
til Slutt, må du installere den nyeste versjonen av Certbot:
- sudo apt install certbot -y
Som en del av den første server oppsett i forutsetninger, har du installert ufw
, ukomplisert brannmur. Trenger du å konfigurere den slik at den tillater HTTP-port 80
, slik at domain verification kan bli fullført., Kjør følgende kommando for å aktivere den:
- sudo ufw allow 80
output vil se ut som dette:
OutputRule addedRule added (v6)
Nå at porten er åpen, kan du kjøre Certbot for å få et sertifikat:
- sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain
Denne kommandoen bestillinger Certbot til å utstede sertifikater med en RSA-nøkkel størrelse på 4096 bits, for å kjøre en midlertidig frittstående web-server (--standalone
) for bekreftelse, og for å sjekke via port 80
(--preferred-challenges http
)., Husk å bytt your_domain
med domenet ditt før du kjører kommandoen og skriv inn din e-postadresse når du blir bedt om det.
output vil være lik dette:
OutputSaving 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 står i notene, sertifikatet og den private nøkkelen filen ble lagret under /etc/letsencrypt/live/your_domain
.
Nå som du har sertifikat, åpne main.cf
for å redigere:
- sudo nano /etc/postfix/main.cf
Finn følgende avsnitt:
Endre det til å se ut som denne, og erstatter your_domain
med domenet ditt, der det er nødvendig, som vil oppdatere din TLS-innstillingene for Postfix:
Når du er ferdig, kan du lagre og lukk filen.
Bruke endringene, ved å starte Postfiks:
- sudo systemctl restart postfix
Nå, kan du prøve å sende en e-post på nytt:
- echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address
Så, sjekke e-postadressen som du har oppgitt. Det er mulig at du vil se meldingen i innboksen din umiddelbart, fordi e-postleverandører er mye mer sannsynlig å markere ukryptert meldinger som spam.,
Du kan se teknisk info om e-postmelding i ditt kunden for å se at meldingen faktisk er kryptert.
Konklusjon
Du har nå en send-kun e-post server, drevet av Postfix. Å kryptere alle utgående meldinger er et godt første skritt til e-postleverandører ikke merke meldinger som spam direkte. Hvis du gjør dette i en utvikling scenario, da dette tiltaket bør være nok.,
Imidlertid, hvis din bruk tilfellet er å sende e-post til potensielle brukere av siden (slik som en bekreftelse på e-post for en oppslagstavle sign-up), bør du se til å sette opp SPF-poster, slik at serveren din er e-post som er enda mer sannsynlig å bli sett på som legitim.