Jul 19, 2015

Kontrola prosleđivanja i kontrola pristupa u Postfixu

Postfix omogućava da se access liste primene na svaku fazu u SMTP komunikaciji.

Primer jednostavnih restriktivnih lista:
/etc/postfix/main.cf:
    # Dozvoli samo konekcije sa pouzdanih mreža
    smtpd_client_restrictions = permit_mynetworks, reject

    # Ne komuniciraj sa mejl sistemima koji ne znaju svoj hostname.
    # Sa Postfix < 2.3, koristiti reject_unknown_hostname.
    smtpd_helo_restrictions = reject_unknown_helo_hostname

    # Ne prihvataj mejlove sa domena koji ne postoje.
    smtpd_sender_restrictions = reject_unknown_sender_domain

    # Kontrola prosleđivanja (Postfix 2.10 i veće): lokalni klijenti i autentifikovani klijenti mogu navesti bilo koji odlazni domein.
    smtpd_relay_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination

    # Kontrola spama: isključi lokalne klijente i authentifikovane klijente is DNSBL lookupsa
    smtpd_recipient_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        # reject_unauth_destination is not needed here if the mail
        # relay policy is specified under smtpd_relay_restrictions
        # (available with Postfix 2.10 and later).
        reject_unauth_destination
        reject_rbl_client zen.spamhaus.org,
        reject_rhsbl_reverse_client dbl.spamhaus.org,
        reject_rhsbl_helo dbl.spamhaus.org,
        reject_rhsbl_sender dbl.spamhaus.org

    # Blokiraj klijente koji prebrzo započnu komunikaciju.
    smtpd_data_restrictions = reject_unauth_pipelining

    # Enforce mail volume quota via policy service callouts.
    smtpd_end_of_data_restrictions = check_policy_service unix:private/policy

Svaka lista ograničenja se primenjuje sa leva u desno dok neki rezultat ne bude Permit, Reject ili Defer(pokušaj kasnije).Na kraju svake liste  je Permit. Ubacivanjem Perimit restrikcije pre Reject mogu se izbeći zabrane za neke klijente. Ovo se zovu bele liste. Četvrti primer dozvoljava poštu iz lokalne mreže ali odbacuje u drugim slučajevima odbacuje mejlove ka proizvoljnim destinacijama.

Jul 18, 2015

Kako Postfix koristi SASL autentifikaciju

SMTP server treba da odluči da li SMTP klijent je autorizovan da šalje mejl na udaljenu destinaciju, ili samo na destinacije za koje je server odgovoran. Obično, SMTP server prihavata mejl za udaljenu destinaciju kada je IP adresa klijenta u istom opsegu kao i sam server.

SMTP klijenti van opsega IP adresa u kome je server potrebnoj je da na drugačiji način dobiju privilegije koje imaju klijenti u opsegu. Za razrešenje ovoga, Postfix podržava SASL autentifikaciju. Sa ovim udaljeni SMTP klijenti se mogu autentifikovati na Postfix SMTP server i Postfix SMTP klijenti mogu da se autentifikuju na udaljeni SMTP server. Kada se klijen autentifikuje dobija iste privilegije kao i klijent u mreži.

Prepravljanje adrese kada se mejl primi

cleanup server prima poštu sa spoljašnjih izvora, ali i iz lokalnih izvora, kao što je prosleđivanje mejlova, neisporučen mejl koji je odbijen od pošiljaoca ili postmaster obeveštenja o problemima na sistemu.

cleanup server transformiše pošiljaoca, primaoca i sadržaj poruke u standarnu formu pre nego što sve to prebaci u fajl za incoming red. Dodaje nedostajuće zaglavlje kao na primer From polje i Data koja su zahtevana standardom. Ovaj server kompleksniju manipulaciju sa adresama delegira trivial-rewrite serveru.