Jul 17, 2015

Kako Postfix prima mejlove

Kada poruka uđe u mail sistem, prva stanica je incoming queue. Mejlovi sa mreže ulaze u Postfix preko smtpd ili qmqpd servera. Ovi serveri uklanjaju SMTP ili QMQP enkapsulaciju protokola, sprovodi osnovnu proveru da zaštiti Postfix i predaje pošiljaoca, primaoce i sadržaj mejla cleanup serveru. smtpd server  može da se podesi da blokira neželjenu poštu.

Lokalni podnesci su primljeni prko Postfix sendmail kompatibilne komande i prosleđeni su u redu maildrop queue od strane privilegovane postdrop-a komande. Ovaj postupak funkcioniše  i dok Postfix nije pokrenut. Lokalni pickup server skuplja lokalne podneske, sprovodi osnovne provere i prosleđuje pošiljaoca, primaoca i sadržaj poruke cleanup serveru.

Mejlovi iz internih izvora se direktno prosleđuju cleanup serveru. Ovo uključuje mejlove koji se prosleđuju od local delivery agenta, mejlovi koji se vraćaju pošiljaocu od strane bounce servera i postmaster obaveštenja vezana za probleme sa Postfixom.

cleanup server sprovodi završnu fazu provere pre nego što mejl bude u redu za čekanje. On dodaje nedostajuće From i druge elemente zaglavlja i transformiše adrese. Opciono, cleanup server može da se konfiguriše da radi provere sadržaja. cleanup server stavlja rezultat kao jedan fajl u redu incoming queue i obaveštava menađžera o dolasku novog mejla.

trivial-rewrite server prepravlja adrese u standardnom formatu user@full.qualified.domain.



Jul 16, 2015

Postfix u lokalnoj mreži

Ovde je opisano LAN okruženje sa jednim glavnim mejl serverom i više drugih sistema koji šalju i primaju mejlove. Kao i obično, uzećemo  za domen example.com. Svi sistemi su konfigurisani da šalju mejlove kao user@example.com i svi sistemi primaju mejlove kao user@hostname.example.com. Glavni server takođe prima mejlova za user@example.com. Ova mašina će se zvati mailhost.example.com.

Nedostatak je što kada se šalju mejlovi kao user@example.com mejlovi za root i ostali sistemski nalozi se šalju u glavni/centralni server.

Prvo da pokažemo konfiguraciju za spordne servere. Serveri šalju mejlove kao user@example.com, a krajnja destinacija su za mejlove user@hostname.example.com.

1 /etc/postfix/main.cf:
2     myorigin = $mydomain
3     mynetworks = 127.0.0.0/8 10.0.0.0/24
4     relay_domains =
5     # Optional: forward all non-local mail to mailhost
6     #relayhost = $mydomain

Linija 2 obezbeđuje da se mejlovi šalju kao user@example.com.

Linija 3 definiše autorizovane mreže

Linija 4 obezbeđuje da ovaj server ne prosleđuje mejlove sa mreža koje nisu autorizovane.

Linija 6 je potrebno ako ne postoji direktna internet konekcije.


Sledeće ćemo prezentovati konfiguraciju glavnog servera. Ova mašina šalje mejlova kao user@example.com i krajnja je destinacija za user@example.com.

 1 DNS:
 2     example.com    IN    MX  10 mailhost.example.com.
 3
 4 /etc/postfix/main.cf:
 5     myorigin = $mydomain
 6     mydestination = $myhostname localhost.$mydomain localhost $mydomain
 7     mynetworks = 127.0.0.0/8 10.0.0.0/24
 8     relay_domains =
 9     # Optional: forward all non-local mail to firewall
10     #relayhost = [firewall.example.com]

Linija 2: Mejlovi koji se šalju za domen example.com treba poslati na mailhost.example.com.  Ne zaboravite da dodate . na kraju MX zapisa.

Linija 5: Mašina šalje mejlova kao user@example.com.

Linija 6: Ovaj host je krajnja destinacija za mejlove sa domenom example.com i za mejlove sa imenom ove mašine.

Linija 7: Definiše pouzdane autorizovane mreže

Linija 8 Ovaj host ne prosleđuje mejlove iz nepouzdanih mreža

Linija 10. Ovo je neophodno samo kada mailhost prosleđuje spoljne mejlove preko mejla na firewall-u. Zagrade [] sprečavaju Postfix da proverava MX rekord.

U okruženjima kao što su ova, korisnici pristupaju svom mailbox-u na jedan od sledećih načina:

  • preko NFS ili ekvivalentno
  • preko POP ili IMAP-a
  • poštansko sanduče je na preferiranoj mašini korisnika

U poslednjem slučaju svaki korisnik ima alias na glavnom serveru kojim se prosleđuje mejl ka preferiranim mašinama:
/etc/aliases:
    joe:    joe@joes.preferred.machine
    jane:   jane@janes.preferred.machine
Na nekim sistemima alias baza nije u /etc/aliases. Da biste saznali lokaciju izvršite komandu postconf alias_maps.
Izvršite komandu newaliases svaki put kada promenite alias bazu.

Postfix bez klijenata

Postfix bez klijenata je mašina koja može samo da šalje mejlove. Ona ne dobija mejlove iz mreže i ne dostavlja mejlove lokalno. Postfix bez klijenata obično se koristi POP, IMAP ili NFS za pristup poštanskom sandučetu.

U ovom primeru pretpostavljamo da je internet domen example.com i da je naziv mašine hostname.example.com.  Kao i obično, ovde su prikazani parametri koji nemaju podrazumevane vrednosti.

1 /etc/postfix/main.cf:
2     myhostname = hostname.example.com
3     myorigin = $mydomain
4     relayhost = $mydomain
5     inet_interfaces = loopback-only
6     mydestination =

Linija 2 opstavlja hostname mašine u slučaju da ime mašine nije u FQDN 
formatu. Koristite komandu postconf -d myhostname da saznate ime mašine. 
Linija 2 obezbeđuje i podrazumevanu vrednost za parametar mydomain, 
što je ovde example.com.
Linija 3 obezbeđuje da se mejl šalje kao user@example.com umesto da je 
user@hostname.example.com.
Linija 4 Prosleđuje svu poštu serveru koji je odgovoran za example.com 
domen. Ovde stavite hostname ako nemate MX rekord u DNS-u za dati domen.

Linija 5 ne prihvate mejlove sa mreže.

Linija 6 brani lokalnu isporuku mejlova. Svi mejlovi idu ka serveru 
definisanom u liniji 4.