Dacă doriți să trimiteți sau să primiți un e-mail, ar trebui să aveți un server de e-mail. În această postare, vom discuta despre serverul de poștă Linux și cum funcționează SMTP (Simple Mail Transfer Protocol), precum și alte protocoale legate de poștă, cum ar fi Post Office Protocol (POP) și Internet Message Access Protocol (IMAP) și relația dintre ele.,
cuprins
Linux SMTP server
SMTP definește modul de a trimite e-mailuri de la o gazdă la alta; este, de asemenea, independent de sistem, ceea ce înseamnă că expeditorul și receptorul pot avea sisteme de operare diferite.SMTP necesită doar ca un server poate trimite text ASCII direct la un alt server, puteți face acest lucru prin conectarea la serverul de pe portul 25, care este portul SMTP standard.
cele mai multe distribuții Linux vin astăzi cu două dintre cele mai comune implementări ale SMTP, care sunt sendmail și Postfix.,sendmail este un server de mail celebru și gratuit, dar are un design puțin complex și mai puțin sigur.
postfixul a luat implementarea serverului de poștă cu un pas mai departe; l-au dezvoltat având în vedere securitatea.serviciul de mail de pe orice server de mail are trei componente:
Mail user agent (mua): această componentă pe care utilizatorul o vede și interacționează ca Thunderbird și Microsoft Outlook, acești agenți de utilizator sunt responsabili pentru citirea e-mailului și vă permit să compuneți e-mail.,
Mail transport agent (MTA): această componentă este responsabil pentru obtinerea e-mail de la un site la altul ca Sendmail și Postfix.
Mail delivery agent( MDA): această componentă este responsabilă pentru distribuirea mesajelor primite pe mașina locală către căsuța poștală de utilizator corespunzătoare, cum ar fi postfix-maildrop și Procmail.
Configurare server de e-mail
am ales serverul de poștă electronică Postfix, care este foarte popular și comun în rândul administratorilor de sistem de astăzi.
Postfix este serverul de mail implicit pe cele mai moderne distribuții Linux.,
în Primul rând, verificați dacă este instalat pe sistemul dvs. sau nu:
$ rpm -qa | grep postfix
Dacă nu este instalat, puteți instala Postfix mail server pe Red Hat bazate pe distributii de genul asta:
$ dnf -y install postfix
Apoi începe postfix servicii și activați-l pe sistem de pornire:
$ systemctl start postfix$ systemctl enable postfix
Pe distributii bazate pe Debian ca Ubuntu, puteți să-l instalați ca aceasta:
$ apt-get -y install postfix
Se va cere să selectați tipul de configurare a e-mail Postfix server în timpul procesului de instalare.,printre cele patru opțiuni fără configurare, site Internet, Internet cu smarthost, sistem prin satelit și numai Local, nu vom alege nicio opțiune de configurare.
Configurați serverul de poștă Linux
după instalarea serverului de poștă Postfix, va trebui să îl configurați; puteți găsi majoritatea fișierelor sale de configurare în directorul /etc/postfix/.
puteți găsi configurația principală pentru Postfix mail server în/etc/postfix / main.CF fișier.,
Acest fișier conține o mulțime de opțiuni, cum ar fi:
myhostname
puteți utiliza această opțiune pentru a specifica numele de gazdă al serverului de e-mail. Acesta este numele de gazdă pe Internet, pe care Postfix îl va primi prin e-mailuri.
nume ar putea fi ca mail.example.com, smtp.example.com.
myhostname = mail.example.com
mydomain
Această opțiune este e-mail domeniu care vă va fi de întreținere, cum ar fi example.com
sintaxa este ca aceasta:
mydomain = example.com
myorigin
Toate e-mailurile trimise de pe acest server de e-mail va arata ca si cum ar fi venit din această opțiune., Puteți seta acest lucru la valoarea $mydomain.
myorigin = $mydomain
puteți utiliza orice valoare opțiune, doar o precede cu un $ ca $mydomain.această opțiune listează domeniile pe care serverul Postfix le utilizează pentru e-mailurile primite.
Se poate lua valori astfel:
mydestination = $myhostname, localhost.$mydomain, $mydomain, mail.$mydomain, www.$mydomain
mail_spool_directory
Există două moduri de livrare pe care Postfix mail server pot folosi:
- Direct la cutia poștală a unui utilizator.
- într-un Director Central spool, în acest fel, e-mailul va fi în /var/spool/mail cu un fișier pentru fiecare utilizator.,
mail_spool_directory = /var/spool/mail
mynetworks
Această opțiune vă permite să configurați ce servere pot transmite prin Postfix server.
această opțiune ar trebui să ia adrese locale, cum ar fi script-uri de e-mail locale de pe serverul dvs. numai.în caz contrar, spammerii pot utiliza serverul dvs. de e-mail pentru a-și transmite mesajele și serverul de e-mail pe lista neagră și, ca urmare, nu veți putea primi multe e-mailuri.,
Această opțiune are următoarea sintaxă:
mynetworks = 127.0.0.0/8, 192.168.1.0/24
smtpd_banner
Această variabilă seturi mesajul serverul va trimite atunci când clientul după conectarea cu succes.
este mai bine să schimbați bannerul în ceva care nu oferă niciun indiciu asupra serverului pe care îl utilizați.
inet_protocols
această opțiune specifică versiunea de protocol IP utilizată pentru conexiunile serverului.,
inet_protocols = ipv4
Dacă modificați fișierele de configurare pentru Postfix mail server, aveți nevoie pentru a reîncărca de servicii:
$ systemctl reload postfix
atunci Când tastați orice configurație, puteți face o greșeală, puteți verifica pentru erori utilizând următoarea comandă:
$ postfix check
Acest instrument va ajuta să găsiți exact la linie și de eroare astfel încât să puteți repara.
verificarea cozii de e-mail
uneori cozile de e-mail sunt umplute cu mesaje. Acest lucru se întâmplă din mai multe motive, cum ar fi eșecul rețelei sau orice motiv care poate întârzia livrarea prin poștă.,pentru a verifica coada de e-mail de pe serverul dvs. de e-mail Linux, utilizați următoarea comandă:
$ mailq
această comandă arată coada de e-mail Postfix.dacă coada dvs. este umplută și mesajul durează câteva ore pentru procesare, atunci ar trebui să spălați coada de e-mail.
$ postfix flush
acum, dacă verificați coada de e-mail, ar trebui să o găsiți goală.
testați serverul de e-mail Linux
după configurarea corectă a serverului de e-mail Postfix, ar trebui să vă testați serverul de e-mail.,
primul pas este de a utiliza un agent local de utilizator mail ca mailx sau mail, care este un symlink la mailx.
încercați să trimiteți un e-mail către altcineva de pe același server, dacă funcționează, apoi trimiteți la un site la distanță.apoi încercați să primiți un e-mail de pe un site la distanță.dacă aveți probleme, verificați jurnalele. Fișierul jurnal pe distribuțiile bazate pe Red Hat în fișierul / var/log /maillog și pe distribuțiile bazate pe Debian în/var/log / mail.fișier jurnal sau așa cum este definit în configurația rsyslogd.,vă recomandăm să examinați serverul Linux syslog pentru o explicație detaliată despre jurnalele și modul de configurare a rsyslogd.dacă aveți în continuare probleme, încercați să verificați setările DNS și să verificați înregistrările MX folosind comenzi de rețea Linux.
cutii poștale securizate din spam folosind SpamAssassin
una dintre modalitățile de combatere a spamului este scanarea căsuțelor poștale de către un instrument, căutând anumite modele asociate cu spam-ul.una dintre cele mai bune soluții este SpamAssassin, care este open-source.,
puteți să-l instalați ca aceasta:
$ dnf -y install spamassassin
Apoi porni serviciul și activați-l la pornire:
$ systemctl start spamassassin$ systemctl enable spamassassin
după ce ați instalat, puteți verifica configurația în
/etc/mail/spamassassin/local.cf
fișierul.
SpamAssassin determină dacă un e-mail este spam sau nu pe baza rezultatului diferitelor scoruri script-uri.
dacă mesajul are un scor mai mare, înseamnă că există o posibilitate mai mare ca e-mailul să fie spam.,
în fișierul de configurare, parametrul required_hits 5 indică faptul că SpamAssassin va marca un e-mail ca spam dacă scorul său este de cinci sau mai mare.
opțiunea report_safe ia valorile 0, 1 sau 2. Dacă este setat la 0, înseamnă că e-mailul marcat ca spam este trimis așa cum este, modificând doar anteturile pentru a arăta că este spam.
dacă este nevoie de valoarea 1 sau 2, SpamAssassin generează un nou mesaj de raport și trimite mesajul destinatarului.,
valoarea 1 înseamnă că mesajul spam este codificat ca mesaj de conținut / rfc822, în timp ce dacă valoarea este 2, înseamnă că mesajul este codificat ca text/conținut simplu.
textul / plain este mai sigur, deoarece unii clienți de e-mail executa mesaj/rfc822 și ar putea infecta computerul client.acum trebuie să o integrăm în Postfix. Cel mai simplu mod de a face acest lucru este probabil folosind procmail.
va trebui să creați un fișier, numit
/etc/procmailrc
, și se adaugă următorul conținut:
:0 hbfw| /usr/bin/spamc
Apoi vom edita Postfix fișierul de configurare /etc/postfix/main.,cf și de a schimba
mailbox_command
mailbox_command = /usr/bin/procmail
în cele din Urmă, reporniți Postfix și SpamAssassin servicii:
$ systemctl restart postfix$ systemctl restart spamassassin
cu toate Acestea, SpamAssassin uneori nu recunoaște mesajele spam care au condus la umplut cutiile poștale cu mesaje spam.din fericire ,puteți filtra mesajele înainte de a intra pe serverul Postfix folosind liste de Blackhole în timp real (RBLs). Acest lucru va reduce sarcina pe serverul dvs. de e-mail și va menține serverul de e-mail curat.
deschideți fișierul de configurare al Postfix server / etc/postfix / main.,cf și de a schimba smtpd_recipient_restrictions opțiune și adăugați următoarele opțiuni, cum ar fi acest lucru:
Apoi reporniți serverul postfix:
$ systemctl restart postfix
Cele de mai sus au Punctat, sunt cele comune; puteți găsi mai multe liste pe web și încercați-le.
securizarea conexiunii SMTP
este mai bine să transferați traficul SMTP peste TLS pentru a-l proteja de atacul Man In the Middle (MITM).mai întâi, trebuie să generăm certificatul și cheia folosind comanda openssl:
apoi adăugați următoarea opțiune la fișierul de configurare Postfix /etc/postfix/main.,cf:
în cele din Urmă, reporniți postfix servicii:
$ systemctl restart postfix
Acum, trebuie să alegeți TLS pe client la conectarea la server.
veți primi un avertisment atunci când trimiteți un e-mail prima dată după modificarea setării, deoarece certificatul nu este semnat.
folosind Let ‘s Encrypt certificate
Let’ s Encrypt este un furnizor gratuit de certificate SSL care vă permite să criptați traficul.
în loc să utilizați certificate auto-semnate care vă enervează utilizatorii cu privire la încrederea în ele, puteți utiliza această soluție bună.,
în Primul rând, instalați letsencrypt:
$ yum install letsencrypt
Sau dacă utilizați distribuție bazată pe Debian, puteți utiliza următoarea comandă:
$ apt-get install letsencrypt
Apoi executați letsencrypt ca aceasta:
$ letsencrypt certonly --standalone -d yourdomain.com
ar trebui să înlocuiți yourdomain.com cu efective de domeniu.
după ce ați răspuns la întrebările solicitate despre e-mailul de contact, domeniul serverului de e-mail și licența, totul ar trebui să fie OK acum.,
certificatele vor fi în:
/etc/letsencrypt/live/yourdomain.com/
Un ultim lucru ce trebuie sa faci, care este de a face postfix utilizarea acestor certificate, puteți utiliza următoarele comenzi:
nu uitați să înlocuiți yourdomain.com cu efective de domeniu.
în cele din Urmă, reporniți serverul postfix:
$ systemctl restart postfix
POP3 și IMAP protocolul de bază
până acum am văzut cum SMTP server de mail trimite și primește e-mailuri fără probleme, dar ia în considerare următoarele situații:
- Utilizatorii au nevoie de copii locale de e-mail pentru vizualizare offline.,formatul de fișier
- mbox nu este acceptat. Formatul mbox este utilizat de mulți agenți de utilizator de e-mail, cum ar fi mailx și mutt.
- utilizatorii nu pot rămâne conectați la o rețea rapidă pentru a apuca o copie locală pentru a citi offline.
- unele servere de mail nu oferă acces la directoarele mosorului de e-mail partajate din motive de securitate.
pentru a gestiona aceste cazuri, ar trebui să utilizați protocoalele de acces la poștă.cele mai frecvente două protocoale populare de acces la poștă sunt Post Office Protocol (POP) și Internet Message Access Protocol (IMAP).,
ideea din spatele POP este foarte simplă: un server central de poștă Linux rămâne online tot timpul și primește și stochează e-mailuri pentru toți utilizatorii. Toate e-mailurile primite sunt în coadă pe server până când un utilizator le apucă.
când un utilizator dorește să trimită un e-mail, CLIENTUL de e-mail îl transmite prin serverul central de e-mail Linux prin SMTP în mod normal.rețineți că serverul SMTP și serverul POP pot fi pe același sistem fără nici o problemă. Majoritatea serverelor fac acest lucru astăzi.caracteristici precum păstrarea unei copii principale a e-mailului unui utilizator pe server lipseau, ceea ce a dus la dezvoltarea IMAP.,folosind IMAP, serverul de mail Linux va suporta trei moduri de acces:
- modul online este similar cu accesul direct la sistemul de fișiere la serverul de e-mail Linux.
- modul offline este similar cu modul în care funcționează POP, unde clientul este deconectat de la rețea, cu excepția cazului în care apucă un e-mail. În acest mod, serverul nu păstrează în mod normal o copie a e-mailului.
- modul deconectat funcționează permițând utilizatorilor să păstreze copii în cache ale e-mailurilor lor, iar serverul păstrează o copie a e-mailului.,există mai multe implementări pentru IMAP și POP; cea mai populară este serverul Dovecot, care oferă ambele protocoale.
POP3, POP3S, IMAP și IMAPS ascultă pe porturile 110, 995, 143 și, respectiv, 993.
instalarea Dovecot
cele mai multe distribuții Linux vin cu Dovecot preinstalat., Cu toate acestea, puteți instala Dovecot în Red Hat bazate pe distributii de genul asta:
$ dnf -y install dovecot
distributii bazate pe Debian oferi IMAP și POP3 funcționalitate în două pachete separate, le puteți instala ca aceasta:
$ apt-get -y install dovecot-imapd dovecot-pop3d
Se va cere să creați certificatele auto-semnat pentru utilizarea IMAP și POP3 peste SSL/TLS. Selectați Da și introduceți numele de gazdă pentru sistemul dvs. atunci când vi se solicită.,
Apoi, puteți rula de servicii și activați-l la pornire ca aceasta:
$ systemctl start dovecot$ systemctl enable dovecot
Configurare Dovecot
fișierul De configurare principal pentru Dovecot este
/etc/dovecot/dovecot.conf
fișierul.unele distribuții Linux pun configurația sub directorul
/etc/dovecot/conf.d/
și folosesc directiva include pentru a include setările din fișiere.
puteți utiliza următoarea listă de parametri pentru a configura Dovecot:
protocoale: protocoalele pe care doriți să le acceptați.
protocols = imap pop3 lmtp
lmtp înseamnă protocolul de transfer de e-mail local.,
asculta: adrese IP pentru a asculta pe.
listen = *, ::
asteriscul înseamnă toate ipv4 interfețe și :: înseamnă toate interfețele ipv6
userdb: baza de date de utilizator pentru autentificarea utilizatorilor.
userdb {driver = pam}
passdb: baza de date cu parole pentru autentificarea utilizatorilor.
passdb {driver = passwd}
mail_location: această intrare în /etc/dovecot/conf.d / 10-e-mail.conf file:
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Secure Dovecot
Dovecot vine cu certificate SSL generice și fișiere cheie., Uita-te la acest fișier:
/etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/pki/dovecot/certs/dovecot.pemssl_key = </etc/pki/dovecot/private/dovecot.pem
atunci Când un utilizator încearcă să se conecteze la server dovecot, se va afișa un avertisment pentru că certificatele nu sunt semnate, puteți achiziționa un certificat de la o autoritate de certificare, dacă vrei.
sau dacă mergeți cu certificatele Let ‘s Encrypt, le puteți indica în schimb:
ssl_cert = </etc/letsencrypt/live/yourdomain.com/fullchain.pemssl_key = </etc/letsencrypt/live/yourdomain.com/privkey.pem
nu uitați să deschideți porturile serverului dovecot în firewall-ul iptables adăugând reguli iptables pentru porturi 110, 995, 143, 993, 25.apoi salvați Regulile.,
Sau dacă utilizați firewalld, puteți face următoarele:
Și din nou, pentru depanare, puteți verifica fișierele log /var/log/messages, /var/log/maillog, și /var/log/mail.fișiere jurnal.serverul de mail Linux este unul dintre cele mai ușoare servere cu care să lucrați, în special serverul de poștă electronică Postfix.sper că veți găsi postul util și interesant. Continuă să te întorci.
Vă mulțumim.
Fondator al LikeGeeks. Lucrez ca administrator de sistem Linux din 2010., Sunt responsabil pentru întreținerea, securizarea și depanarea serverelor Linux pentru mai mulți clienți din întreaga lume. Îmi place să scriu scripturi shell și Python pentru a-mi automatiza munca.
Lasă un răspuns