autorul a selectat Fondul gratuit și Open Source pentru a primi o donație ca parte a programului Write for DOnations.Postfix este un agent de transfer de e-mail (MTA), o aplicație utilizată pentru a trimite și primi e-mail. Poate fi configurat astfel încât să poată fi utilizat pentru a trimite e-mailuri numai prin aplicație locală., Acest lucru este util în situațiile în care trebuie să trimiteți în mod regulat notificări prin e-mail din aplicațiile dvs. sau pur și simplu să aveți mult trafic de ieșire pe care un furnizor de servicii de e-mail terță parte nu îl va permite. Este, de asemenea, o alternativă mai ușoară la rularea unui server SMTP complet, păstrând în același timp funcționalitatea necesară.
În acest tutorial, veți instala și configura Postfix ca server SMTP doar pentru trimitere. De asemenea, veți solicita certificate TLS gratuite de la Let ‘ s Encrypt pentru domeniul dvs. și veți cripta e-mailurile de ieșire folosind-le.
cerințe preliminare
- un Ubuntu 18.,04 server configurat cu configurarea inițială a serverului cu Ubuntu 18.04, inclusiv crearea unui utilizator sudo non-root.
- un nume de domeniu complet înregistrat. Acest tutorial va folosi
your_domain
pe tot parcursul. Puteți achiziționa un nume de domeniu pe Namecheap, puteți obține unul gratuit pe Freenom sau puteți utiliza registratorul de domeniu la alegere. - o înregistrare DNS A cu
your_domain
indicând adresa IP publică a serverului dvs. Puteți urmări această introducere în DigitalOcean DNS pentru detalii despre cum să le adăugați.,
notă: numele de gazdă al serverului și numele picăturii trebuie să corespundă your_domain
, deoarece DigitalOcean setează automat înregistrările PTR pentru adresa IP a picăturii în funcție de numele acesteia.
puteți verifica numele de gazdă al serverului tastând hostname
la promptul de comandă. Rezultatul ar trebui să se potrivească cu numele pe care l-ați dat picăturii când a fost creat.
Pasul 1 — Instalarea Postfix
în acest pas, veți instala Postfix., Cel mai rapid mod este de a instala mailutils
pachet, care pachete Postfix cu câteva programe suplimentare pe care le veți folosi pentru a testa trimiterea de e-mail.
în Primul rând, actualizarea pachetului de date:
- sudo apt update
Apoi, instalați Postfix prin rularea următoarea comandă:
- sudo apt install mailutils
Aproape de sfârșitul procesului de instalare, vă vor fi prezentate cu Postfix fereastra de configurare:
opțiunea implicită este Internet Site
., Care este opțiunea recomandată pentru cazul dumneavoastră de utilizare, astfel încât apăsați TAB
, apoi ENTER
. Dacă ai vedea descrierea de text, apăsați TAB
pentru a selecta OK
, apoi ENTER
.,
Dacă nu apare automat, executați următoarea comandă pentru a începe:
- sudo dpkg-reconfigure postfix
După aceea, veți obține o altă configurație prompt cu privire la Sistemul de e-mail nume:
Sistemul e-mail numele trebuie să fie identic cu numele atribuit la server-ul dvs. atunci când au fost creați. După ce ați terminat, apăsați TAB
, urmată de ENTER
.
acum ați instalat Postfix și sunteți gata să începeți configurarea acestuia.,
Pasul 2 — Configurarea Postfix
În acest pas, veți configura Postfix pentru a trimite și primi e-mailuri numai de la serverul pe care se execută pe—care este, de localhost
.pentru ca acest lucru să se întâmple, Postfix trebuie să fie configurat pentru a asculta numai pe interfața loopback, interfața de rețea virtuală pe care serverul o folosește pentru a comunica intern. Pentru a face modificări, va trebui să editați fișierul principal de configurare Postfix fișier numit main.cf
, stocate sub etc/postfix
.,
Deschide pentru editare folosind editorul de text preferat:
- sudo nano /etc/postfix/main.cf
Găsi următoarele linii:
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .
Setați valoarea de inet_interfaces
setare pentru a loopback-only
:
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .
o Altă directivă va trebui să modificați este mydestination
, care este folosit pentru a specifica o listă de domenii care sunt livrate prin intermediul local_transport
livrare e-mail de transport., În mod implicit, valorile sunt similare cu acestea:
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .
Schimba linia pentru a arata ca acest lucru:
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .
Dacă domeniul dvs. este de fapt un subdomeniu, și ai vrea mesajele de e-mail pentru a arata ca în cazul în care acestea au fost trimise de pe domeniul principal, puteți să adăugați următoarea linie la sfârșitul main.cf
:
...masquerade_domains = your_main_domain
opțional masquerade_domains
setare specifică pentru care domenii subdomeniu parte va fi dezbrăcat în adresa de e-mail.când ați terminat, salvați și închideți fișierul.
Notă: dacă găzduiți mai multe domenii pe un singur server, celelalte domenii pot fi, de asemenea, transmise către Postfix folosind directiva mydestination
.
apoi, reporniți Postfix rulând următoarea comandă:
- sudo systemctl restart postfix
ați configurat Postfix să trimită doar e-mailuri de pe serverul dvs., Acum îl veți testa trimițând un exemplu de mesaj la o adresă de e-mail.
Pas 3 — Testarea Serverului SMTP
În acest pas, veți testa dacă Postfix poate trimite e-mailuri de la o sursă externă de cont de e-mail folosind mail
comandă, care este parte din mailutils
pachet care ați instalat-o în prima etapă.pentru a trimite un e-mail de test, executați următoarea comandă:
- echo "This is the body of the email" | mail -s "This is the subject line" your_email_address
puteți schimba corpul și subiectul e-mailului după bunul plac., Nu uitați să înlocuiți your_email_address
cu o adresă de e-mail validă pe care o puteți accesa.
acum, verificați adresa de e-mail la care ați trimis acest mesaj. Ar trebui să vedeți mesajul în căsuța de e-mail. Dacă nu este acolo, verificați folderul spam. În acest moment, toate e-mailurile pe care le trimiteți sunt necriptate, ceea ce face ca furnizorii de servicii să creadă că este probabil spam. Veți configura criptarea mai târziu, la Pasul 5.,
Dacă primiți o eroare de mail
comanda, sau nu ai primit un mesaj după perioade prelungite de timp, verificați că Postfix configuration ai editat este valabil și că numele serverului și numele de gazdă sunt stabilite pentru domeniul tău.
Rețineți că, cu această configurație, adresa în From
teren pentru test e-mailurile pe care le trimiteți vor fi în formă de your_user_name@your_domain
, unde your_user_name
este numele de utilizator pentru serverul de ai fugit la comanda.,
acum ați trimis un e-mail de la serverul dvs. și ați verificat că a fost primit cu succes. În pasul următor, veți configura redirecționarea e-mailurilor pentru root
.
Step 4 — Forwarding System Mail
În acest pas, veți configura redirecționarea e-mailului pentru utilizatorul root
, astfel încât mesajele generate de sistem trimise pe serverul dvs. să fie redirecționate către o adresă de e-mail externă.
fișierul /etc/aliases
conține o listă de nume alternative pentru destinatarii de e-mail., Deschide pentru editare:
- sudo nano /etc/aliases
În starea implicită, se pare ca acest lucru:
# See man 5 aliases for formatpostmaster: root
numai prezenta directivă precizează că sistemul a generat e-mailuri sunt trimise la root
.
Adăugați următoarea linie la sfârșitul fișierului:
...root: your_email_address
Cu această linie, puteți specifica faptul că e-mailurile trimise la root
sfârși prin a fi transmis la o adresă de e-mail. Nu uitați să înlocuiți your_email_address
cu adresa dvs. de e-mail personală., Când ați terminat, salvați și închideți fișierul.
Pentru ca modificarea să aibă efect, executați următoarea comandă:
- sudo newaliases
Execută newaliases
va construi o bază de date de pseudonime că mail
comandă utilizează, care sunt luate din fișierul de configurare ai editat.
Test care trimit e-mailuri la root
lucrări de funcționare:
- echo "This is the body of the email" | mail -s "This is the subject line" root
ar trebui să primiți un e-mail la adresa de e-mail. Dacă nu este acolo, verificați folderul spam.,
în acest pas, ați configurat redirecționarea mesajelor generate de sistem către adresa dvs. de e-mail. Acum veți activa criptarea mesajelor, astfel încât toate e-mailurile trimise de serverul dvs. să fie imune la manipularea în tranzit și vor fi considerate mai legitime.
Pasul 5-Activarea criptării SMTP
acum veți activa criptarea SMTP solicitând un certificat TLS gratuit de la Let ‘ s Encrypt pentru domeniul dvs. (folosind Certbot) și configurarea Postfix pentru a-l utiliza la trimiterea mesajelor.
Ubuntu include Certbot în pachet default depozit, dar se poate întâmpla ca e de actualitate., În schimb, veți adăuga depozitul oficial prin rularea următoarea comandă:
- sudo add-apt-repository ppa:certbot/certbot
Apăsați ENTER
atunci când vi se solicită să accepte. Apoi, actualizați serverul de package manager cache:
- sudo apt update
în cele din Urmă, instalați cea mai recentă versiune de Certbot:
- sudo apt install certbot -y
Ca parte a inițială server setup în premise, ai instalat ufw
, necomplicate firewall. Va trebui să îl configurați pentru a permite portul HTTP 80
, astfel încât verificarea domeniului să poată fi finalizată., Executați următoarea comandă pentru a activa aceasta:
- sudo ufw allow 80
ieșire va arata astfel:
OutputRule addedRule added (v6)
Acum, că portul este deschis, rula Certbot pentru a obține un certificat de:
- sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain
Această comandă Certbot să emită certificate cu o cheie RSA dimensiunea 4096 biți, pentru a rula un temporare standalone server web (--standalone
) pentru verificare, și să verifice, prin intermediul portului 80
(--preferred-challenges http
)., Nu uitați să înlocuiți your_domain
cu domeniul dvs. înainte de a executa comanda și introduceți adresa dvs. de e-mail când vi se solicită.
rezultatul va fi similar cu acesta:
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
Cum este scris în note, certificatul și cheia privată fișier a fost salvat de sub /etc/letsencrypt/live/your_domain
.
Acum, că aveți certificat, deschide main.cf
pentru editare:
- sudo nano /etc/postfix/main.cf
Găsi următoarele secțiuni:
se Modifica pentru a arata ca acest lucru, înlocuind your_domain
cu dvs. de domeniu în cazul în care este necesar, care va actualiza setările TLS pentru Postfix:
Odată ce ați terminat, salvați și închideți fișierul.
Aplicați modificările prin repornirea Postfix:
- sudo systemctl restart postfix
Acum, încercați să trimiteți un e-mail din nou:
- echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address
Apoi, verificați adresa de e-mail furnizate. Este posibil să vedeți imediat mesajul în căsuța de e-mail, deoarece furnizorii de e-mail au mult mai multe șanse să marcheze mesajele necriptate ca spam.,
puteți verifica informațiile tehnice despre mesajul de e-mail din clientul dvs. pentru a vedea că mesajul este într-adevăr criptat.
concluzie
acum aveți un server de e-mail doar pentru trimitere, alimentat de Postfix. Criptarea tuturor mesajelor trimise este un prim pas bun pentru furnizorii de e-mail care nu vă marchează mesajele ca spam. Dacă faceți acest lucru într-un scenariu de dezvoltare, atunci această măsură ar trebui să fie suficientă.,cu toate acestea, dacă cazul dvs. de utilizare este de a trimite e-mailuri potențialilor utilizatori ai site-ului (cum ar fi e-mailurile de confirmare pentru înscrierea pe un panou de mesaje), ar trebui să analizați configurarea înregistrărilor SPF, astfel încât e-mailurile serverului dvs. să fie și mai probabil considerate legitime.