Configurația de bază a postfixului

Configurația de bază Postfx

Postfix are câteva sute de parametri de configurare instalate în fișierul principal.cf. Din fericire, toți parametrii au valori implicite semnificative. În majoritatea cazurilor, va trebui să specificați doar doi sau trei parametri înainte de a putea începe să jucați cu sistemul de e-mail. Iată o scurtă introducere a sintaxei:

Fișierele de configurare Postfix

Textul ulterior implică faptul că ați instalat deja Postfix prin compilarea dvs. de la codul sursă (așa cum este descris în fișierul INSTALL) sau prin instalarea de la binarele terminate.

Acest document descrie configurația de bază a Postfix. Informații despre configurarea Postfix pentru a lucra în condiții specifice, cum ar fi: pe nodul de poștă electronică, în spatele firewall-ului, pe clientul dial-up pot fi găsite în fișierul STANDARD_CONFIGURATION_README. Dar nu faceți clic pe link până când nu vă stăpâniți materialul furnizat mai jos.

În primul rând, suntem interesați de parametrii care determină informațiile de identificare și rolul mașinii în rețea.

Ce nume de domeniu trebuie să utilizez în e-mailurile trimise?

Pentru domeniile care primesc corespondență

De la care clienții să înainteze (releu) scrisori

Unde să trimiteți (retransmite) scrisori

Metoda de livrare: directă sau indirectă

Mulți alți parametri de configurare își mostenesc valorile de la cele de mai sus.

Următorul parametru interesant controlează cantitatea de e-mail trimisă postmasterului local:

Care sunt problemele postmasterului?

Procesele Postfix sunt daemonii care rulează în fundal. Ei înregistrează informații despre probleme și activitatea normală în sistemul syslog. Iată câteva aspecte care trebuie luate în considerare:

Ce ar trebui să știi despre logarea lui Postfix

Dacă mașina dvs. are cerințe de securitate specifice, atunci probabil că doriți ca Postfix să funcționeze într-un mediu chroot (de la CHANGE ROOT, un mediu de root modificat al sistemului de fișiere).

Rularea daemonilor Postfix în mediul chroot

Dacă rulați Postfix pe o interfață de rețea virtuală sau pe alte servere de poștă electronică pe interfețe virtuale funcționează pe mașină, atunci ar trebui să acordați atenție și următorilor parametri:

Numele gazdei (numele gazdei)

Numele meu de domeniu (nume de domeniu)

În mod implicit, fișierele de configurare Postfix sunt localizate în / etc / postfix (în FreeBSD - în / usr / local / etc / postfix). Cele două fișiere importante sunt main.cf și master.cf. Aceste fișiere trebuie să fie deținute de root. Eliberarea permisiunilor către orice alt utilizator de a scrie la main.cf și master.cf (sau la dosarele lor părinte) înseamnă acordarea autorității superutilizatorilor.

În /etc/postfix/main.cf trebuie să setați valorile unui număr de parametri de configurare. Acești parametri seamănă cu variabilele shell, dar există două diferențe importante. În primul rând, Postfix nu știe despre citate în înțelegerea shell-ului UNIX.

Atribuiți o valoare parametrului de configurare după cum urmează:
/etc/postfix/main.cf:
parametru = valoare

și folosiți valoarea parametrului, adăugând caracterul "$" înaintea numelui său:
/etc/postfix/main.cf:
other_parameter = $ parametru

Puteți utiliza parametrul $ (parametru $) înainte de al atribui o valoare (aceasta este a doua diferență majoră de la variabilele shell UNIX). Limba de configurare Postfix utilizează evaluarea leneșă și nu privește valorile parametrilor până când acestea sunt necesare în timpul executării.

Dacă ați făcut modificări în fișierele main.cf sau master.cf, executați comanda
# postfix reload

Acest lucru ar trebui făcut în numele rădăcinii, astfel încât un Postfix de lucru "a preluat" modificările de configurație:
Ce nume de domeniu trebuie să utilizez în e-mailurile trimise?

Parametrul myorigin specifică numele de domeniu utilizat în e-mailurile trimise de la această mașină. În mod implicit, numele mașinii locale este $ myhostname. Valoarea implicită pentru numele meu este numele gazdei. În cazul în care Postfix nu rulează pe un site foarte mic, probabil că doriți să setați valoarea parametrului $ myorigin myDomain, care conține în mod implicit domeniul numele complet al mașinii.

Exemple (specificați numai unul dintre următoarele):
/etc/postfix/main.cf:
myorigin = $ myhostname (implicit: trimite scrisori de la "user @ $ myhostname")
myorigin = $ mydomain (poate preferabil: "user @ $ mydomain")
Pentru domeniile care primesc corespondență

Puteți specifica unul sau mai multe domenii, "/ file name" și / sau tabelul de căutare "type: table (type: table)" (de exemplu, hash, sau virgule. "/ nume fișier" se înlocuiește cu conținutul fișierului; "tip: table (type: table)" face o interogare în baza de date, doar verificând prezența domeniului, rezultatul căutării este ignorat.

IMPORTANT: Dacă gazda dvs. este serverul de poștă electronică pentru întregul domeniu, trebuie să includeți și $ mydomain în mine.

Exemplul 1: Valoarea implicită.
/etc/postfix/main.cf:
mydestination = $ myhostname localhost. $ mydomain localhost

Exemplul 2: Serverul de mail pentru întregul domeniu.
/etc/postfix/main.cf:
mydestination = $ myhostname localhost. $ mydomain localhost $ mydomain

Exemplul 3: O gazdă cu mai multe înregistrări DNS A.
/etc/postfix/main.cf:
mydestination = $ myhostname localhost. $ mydomain localhost
www. $ mydomain ftp. $ mydomain

Avertisment: Pentru a evita buclele de livrare a poștei, trebuie să specificați toate numele mașinilor, inclusiv $ myhostname și localhost $ Mydomain.
De la care clienții să înainteze (releu) scrisori

IMPORTANT: dacă aparatul dvs. este conectat la rețeaua de zonă extinsă, setările parametrului mynetworks, în mod implicit, pot fi nesigure.

Puteți specifica care rețele aveți încredere în fișierul principal.cf sau dați lui Postfix ocazia de a face acest lucru. Implicit, Postfix face lucrul pentru dvs. Rezultatul depinde de valoarea parametrului mynetworks_style.

Specificați "mynetworks_style = gazdă" dacă Postfix trebuie să trimită mail numai de la gazda locală.

Specificați "mynetworks_style = subnet" (implicit) dacă Postfix trebuie să redirecționeze poșta de la clienții SMTP de la subrețelele IP la care aparține mașina locală. Pe Linux, aceasta funcționează corect numai pentru interfețele configurate cu comanda "ifconfig".

Specificați "mynetworks_style = class" dacă Postfix trebuie să redirecționeze poșta de la clienții SMTP care se află pe aceeași rețea IP A / B / C la mașina locală. Nu configurați Postfix în acest mod atunci când rulează pe o mașină cu o conexiune dialup, deoarece Postfix va "încredința" întreaga rețea a furnizorului dvs. de servicii de internet. În schimb, specificați lista mynetworks, așa cum este descris mai jos.

Alternativ, puteți să specificați manual lista de rețele mynetworks, ceea ce face ca Postfix să ignore parametrul mynetworks_style. Pentru a specifica o listă de rețele de încredere, specificați blocurile de rețea în format CIDR (rețea / mască), de exemplu:
/etc/postfix/main.cf:
mynetworks = 168.100.189.0/28, 127.0.0.0/8

De asemenea, puteți specifica calea absolută a fișierului cu lista de rețele de încredere, în loc să le listați direct în fișierul principal.cf.
Unde să trimiteți (retransmite) scrisori

În mod implicit, Postfix încearcă să trimită e-mail direct la Internet. În funcție de mediul în care funcționează serverul dvs. de poștă electronică, acest lucru poate sau nu poate fi posibil. De exemplu, mașina dvs. poate fi deconectată de la Internet în timpul orelor nelucrătoare, poate fi închisă de firewall, ISP poate interzice trimiterea directă a mesajelor la Internet. În astfel de cazuri, trebuie să configurați Postfix pentru a redirecționa mesaje printr-un alt server de transmitere.

Exemple (specificați numai unul dintre următoarele):
/etc/postfix/main.cf:
relayhost = (implicit: trimite direct la Internet)
relayhost = $ mydomain (transmite prin serverul de mail local)
relayhost = [mail. $ mydomain] (înainte prin serverul de mail local)
relayhost = [mail.isp.tld] (înainte prin serverul de poștă al furnizorului)

Opțiunea inclusă în paranteze pătrate [] determină ca Postfix să nu caute înregistrări DNS MX. Nu vă faceți griji dacă nu înțelegeți ce înseamnă acest lucru (fie citiți despre DNS, fie ciocanul pe setarea MTA - viața voastră va deveni mai calmă). Asigurați-vă că numele gazdei releu pe care ați primit-o de la ISP pe care l-ați specificat în paranteze [].

STANDARD_CONFIGURATION_README fișier Puteți găsi mai multe exemple și sfaturi pentru configurarea Postfix „în spatele unui paravan de protecție“ și / sau dial-up de rețea.
Care sunt problemele postmasterului?

Rulați comanda "newaliases" după modificarea fișierului de alias. Fișierul dvs. de alias poate fi localizat într-un alt loc decât / etc / aliases. Utilizați comanda "postconf alias_maps" pentru ao găsi.

Postfix raportează probleme cu aliasul postmaster. Poate că doriți să limitați gama de probleme pe care sunteți informat. Mecanismul de alertă postmaster este configurabil. În mod implicit, veți fi raportate numai despre problemele grave (resurse, software):

Setările implicite:
/etc/postfix/main.cf:
notify_classes = resursă, software

Unele servere de poștă electronică sunt conectate la Internet prin NAT (Network Adress Translator) sau server proxy (proxy). Acest lucru înseamnă că sistemele de pe Internet deschid o conexiune la proxy sau NAT și nu se conectează direct la serverul de poștă electronică. Proxy-ul sau NAT, la rândul său, se conectează la serverul de mail țintă, dar Postfix nu știe despre el.

Procesele Postfix sunt daemonii care rulează în fundal. Ei înregistrează informații despre probleme și activitatea normală în sistemul syslog. Procesul syslogd sortează mesajele după tip și importanță și le adaugă în fișierele de jurnale. Tipurile de evenimente logate, niveluri de severitate și nume de fișier jurnal sunt de obicei specificate în fișierul /etc/syslog.conf. Cel puțin, aveți nevoie de ceva de genul:
/etc/syslog.conf:
mail.err / dev / consola
mail.debug / var / log / maillog

După modificarea fișierului syslog.conf, trimiteți semnalul "HUP" la procesul syslogd.

IMPORTANT: multe implementări syslogd nu își creează propriile fișiere de jurnal, trebuie să creați manual fișierele necesare înainte de a reintroduce syslogd.

IMPORTANT: pe Linux, trebuie să specificați caracterul "-" înainte de numele fișierului, adică - / var / log / maillog, altfel procesul syslogd va consuma mai multe resurse decât Postfix.

Vor exista câteva probleme, dar este o practică bună să începeți fiecare noapte (înainte de a roti fișierele jurnal):
# check postfix
# egrep # '(respingere | avertisment | eroare | fatal | panică): #' / some / log / file

Prima linie (verificarea postfix) obligă Postfix să raporteze proprietarii / permisiunile incorecte.

Cea de-a doua linie caută rapoartele despre problemele din sistemul de poștă electronică și, de asemenea, vă spune cât de eficient sunt mesajele de expediere a mesajelor și blocarea e-mailurilor nedorite. Această operație poate genera o cantitate suficientă de informații voluminoase, astfel încât poate fi necesară o prelucrare suplimentară pentru a exclude extrasul.

Fișierul DEBUG_README descrie valoarea nivelului de avertizare și așa mai departe. în revistele Postfix.
Rularea daemonilor Postfix în mediul chroot

Daemonii Postfix pot fi configurați (utilizând fișierul master.cf) pentru a rula în mediul chroot. Procesele funcționează cu privilegii reduse fixe, accesul acestora la sistemul de fișiere este limitat la directoarele de coadă Postfix (/ var / spool / postfix). Aceasta creează o barieră serioasă împotriva intruziunilor. Bariera nu este "absolută" (mediul chroot limitează doar accesul la sistemul de fișiere), dar fiecare element de protecție este util.

Cu excepția daemonilor Postfix care livrează e-mail local, fiecare proces Postfix poate rula într-un mediu chroot.

Implicit, /etc/postfix/master.cf îi spune lui Postfix să nu pornească procesele în mediul chroot. Pentru a rula daemonii Postfix într-un mediu chroot, editați /etc/postfix/master.cf urmând instrucțiunile din fișier. Când ați terminat, executați comanda "postfix reload" pentru ca modificările să aibă efect.

Trebuie să vă amintiți că daemoanii din mediul chroot definesc toate căile relative la directorul de coadă Postfix (/ var / spool / postfix). Pentru un mediu chroot de succes, majoritatea sistemelor UNIX necesită transferarea unor fișiere sau dispozitive către chroot. În directorul de exemple / chroot-setup al distribuției sursă există o serie de scripturi care vă vor ajuta să configurați mediul chroot al Postfix pe diferite sisteme de operare.

În plus, va trebui aproape sigur să configurați syslogd pentru a asculta socket-ul din directorul de coadă Postfix. Exemple de opțiuni de linie de comandă pentru syslogd care permit acest lucru să se întâmple în unele sisteme:

FreeBSD: syslogd -l / var / spool / postfix / var / execuție / jurnal

Linux, OpenBSD: syslogd -a / var / spool / postfix / dev / log
Numele gazdei (numele gazdei)

Parametrul myhostname specifică numele de domeniu complet calificat (FQDN) pe care rulează Postfix. $ myhostname este prezent în mulți alți parametri de configurare Postfix, ca valoare implicită.

În mod implicit, numele meu de domeniu este setat la numele mașinii locale. Dacă numele mașinii dvs. nu este specificat în FQDN sau dacă executați postfix pe interfața virtuală, trebuie să specificați numele de domeniu complet (FQDN) pe care sistemul de poștă electronică trebuie să îl utilizeze.

Alternativ, dacă specificați valoarea domeniului meu în fișierul principal.cf, Postfix utilizează această valoare pentru a genera numele de domeniu complet (FQDN) al mașinii pentru parametrul myhostname.

Exemple (specificați numai unul dintre următoarele):
/etc/postfix/main.cf:
myhostname = host.local.domain (numele mașinii nu este FQDN)
myhostname = host.virtual.domain (interfață virtuală)
myhostname = virtual.domain (interfață virtuală)
Numele meu de domeniu (nume de domeniu)

Parametrul mydomain specifică domeniul părinte $ myhostname. În mod implicit, devine valoarea prin tăierea primei părți a valorii $ myhostname (cu excepția cazului în care rezultatul este domeniul de nivel superior).

În schimb, dacă specificați valoarea domeniului mydomain în main.cf, Postfix îl va utiliza pentru a genera numele de domeniu complet (FQDN) al mașinii pentru parametrul myhostname.

Implicit, Postfix ascultă pe toate interfețele active. Dacă rulați servere de mail pe interfețe virtuale, trebuie să specificați pe care interfețe să așteptați conexiunile.

IMPORTANT: Dacă rulați un server de mail pe interfețe virtuale, trebuie să specificați valorile exacte inet_interfaces pentru MTA (agent de transfer de E-mail - agent poștale), care primește e-mail pentru mașina locală: MTA nu ar trebui să asculte interfețe virtuale, sau în cazul căderii sale se va produce bucla de e-mail.

Exemplu: setările implicite.
/etc/postfix/main.cf:
inet_interfaces = toate

Exemplu: O gazdă cu unul sau mai multe servere de mail. Pentru fiecare instanță Postfix, specificați numai una dintre următoarele:
/etc/postfix/main.cf:
inet_interfaces = virtual.host.tld (Postfix virtual)
inet_interfaces = $ myhostname localhost. (Postfix non-virtual)

Notă: trebuie să opriți și să porniți Postfix după modificarea acestui parametru.