Erinevus lehekülje "Postfix" redaktsioonide vahel

Allikas: Kuutõrvaja
171. rida: 171. rida:
 
   reject_rbl_client sbl-xbl.spamhaus.org
 
   reject_rbl_client sbl-xbl.spamhaus.org
  
===Veel kasulikke muutujaid töökindluse suurendamiseks===
+
====Veel kasulikke muutujaid töökindluse suurendamiseks====
  
 
Kõikide muutujate lahtiseletamine ja esiletoomine läheks väga pikaks,
 
Kõikide muutujate lahtiseletamine ja esiletoomine läheks väga pikaks,

Redaktsioon: 2. november 2008, kell 17:53

Sissejuhatus

Postfix on vabavaraline mail transfre agent (MTA), serveritarkvara mis mõeldud emailide vastuvõtmiseks ning saatmiseks. Postfixi kiirus, kergelt administreeritavus ja turvalisus on teinud sellest ühe enimkasutatava mta ja laialdase alternatiivi sendmailile.

Selle kirjutas hollandlane Wietse Venema ja kasutusse võeti esmakordselt 1999.a.

Anatoomia

Kitsam pilt MTA'st. Tegemist ei ole mingi väikese tarkvaraga. Kokku koosneb postfix kuskil 11'nest põhilisest käsurea utiliidist ja 20nest protsessist/deemonist.

Psfxcomn.gif

Kollased märgid on mail programmid neist kastid on maili järjekorrad (queue) või failid

sinised kastid on lookup table'd

programmid üldkasti sees töötavad kontrollituna postfixi master daemoni poolt info selle sees kuulub samuti postfixi mailisüsteemile

Kuna deemoneid on äärmiselt palju ja nende kõigi esiletoomine võtaks palju aega siis kõige olulisemad deemonid on

master The master daemon is the brain of the Postfix mail system. It spawns all other daemons.

smtpd The smtpd daemon (server) handles incoming connections.

smtp The smtp client handles outgoing connections.

qmgr The qmgr-Daemon is the heart of the Postfix mail system. It processes and controls all messages in the mail queues.

local The local program is Postfix’ own local delivery agent. It stores messages in mailboxes.

Posfixil on neli põhilist järjekorda: maildrop, incoming, active ja deferred. Lokaalne meil saadetakse maildropile ja kopeeritakse incoming järjekorda. Incoming järjekord on mailidele mis äsja saabunud ja queue manager pole neid veel ülevaadanud. Mailid mida ei saa edastada tõstetakse defferred järjekorda ,et see ei jääks saabuvatele-saadetavatele kirjadele jalgu.

Pisut detailsemat juttu http://www.linuxjournal.com/article/9454

Paigaldus

Üldiselt peaks iga vähegi enesest lugupidavam ja suurem operatsioonisüsteem omama mingit oma porti/installipakki postfixist. Postfix on juba paljude operatsioonisüsteemide vaikimisi mta'ks, näiteks ubuntul. Kaasa tuleb installiga ka ohtralt seadistuse näiteid, abifaile ja manuale

Seadistus

Postfixi põhilisteks seadistusfailideks on main.cf ja master.cf. Main.cf sisaldab postfixi seadistusparameetreid mis vajalikud mailide liigutamiseks ning master.cf seadistab deemonprotsesse

Main.cf

Kõige lihtsamaks main.cf seadistuseks oleks

smtpd_banner = $myhostname ESMTP no spam please ;) 
myhostname = kool.edu.ee
mydomain = $myhostname
myorigin = $mydomain
inet_interfaces = all
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mydestination = $myhostname, localhost.$mydomain, /usr/local/etc/postfix/mydestination
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/mail/aliases
alias_database = hash:/etc/mail/aliases
home_mailbox = mbox
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

See kõik on üldine ja töötab ühtemoodi nii freebsd, solarise kui debiani või kasvõi windowsil (kui postfix sinna kunagi porditakse)

Seejärel tuleb muidugi seadistada ka postfixi septsiifilisem osa, mis varieerub erinevatel operatsioonisüsteemidel omasuudu, näiteks kus asub deemon, kus spool kaust või mis õigustes töötab postfix

Kasutada võib ka muutujaid stiilis config_directory = /usr/local/etc/postfix ja kasutada stiilis transport_maps = hash:$config_directory/transport

Seletaks pisut põhilisi ridu lahti

smtpd_banner = $myhostname ESMTP no spam please ;)

Üldine teade mida näeb kui ühenduda 25 pordi külge, üldiselt täidab pigem ilu ülesannet :)

myhostname = kool.edu.ee

See muutuja võetakse tavaliselt shellist ja sõltub mis on sereri hostnameks määratud, üldiselt võib olla soov seda siiski sageli muuta

mydomain = $myhostname

mydomain võib samuti sageli erineda myhostnamest, üldiselt kui aga ei võib kasutada näiteks muutujat $myhostname

myorigin = $mydomain

is the domain name that locally-posted email appears to have come from and is delivered to.

inet_interfaces = all

Postfix kuulab vaikimisi kõikidel võrguseadmetel mis serveril küljes 25ndat porti ja kust posti ka vastu võetakse

mynetworks = 127.0.0.0/8, 192.168.1.0/24

IP aadressid või võrkude vahemikud mis on turvalised nimetame localhosti ja serveri taguse kontori sisevõrgu. Nendest võrkudest võib saata maile läbi serveri. Kõik katsed saata või relay'da maili teistelt mitte siin defineeritud ip'delt keelatakse

mydestination = $myhostname, localhost.$mydomain, /usr/local/etc/postfix/mydestination

Siin võib defineerida veel kõik masina küljes olevad domeenid neid komaga eraldadest, kust server peaks emaile vastuvõtma, lihtustamise huvides võib need kõik mydestination faili lisada ning faili korraga külgevõtta

/usr/local/etc/postfix/mydestination
luunja.tartu.ee
luunja.edu.ee

unknown_local_recipient_reject_code = 550

Viisakas seadistada teiste mailisaatjate jaoks.

alias_maps = hash:/etc/mail/aliases

alias faili, vaikimisi etc all

alias_database = hash:/etc/mail/aliases

Alias faili andmebaas

home_mailbox = mbox

Mailide salvestamise formaadiks mailbox. See on kõige vanem ja lihtsam formaat kuid mitte kõige parem ja tänapäeval oleks tegelikult juba üsnagi mõttekas kasutada maildir'i home_mailbox = Maildir/ võimalik on kogu maili kettale transportimine anda eraldi programmine, näit cyrusele mailbox_transport = cyrus

smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

Piirangud läbi mailiserveri saatjale, lubame automaatselt mynetworgist saatmised ning keelame tundmatud

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

siinpuhul saab seadistada veel

 permit_sasl_authenticated,
 reject_non_fqdn_hostname,
 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,
 reject_unauth_destination,
 reject_unauth_pipelining,
 reject_invalid_hostname,
 reject_rbl_client bl.spamcop.net,
 reject_rbl_client sbl-xbl.spamhaus.org

Veel kasulikke muutujaid töökindluse suurendamiseks

Kõikide muutujate lahtiseletamine ja esiletoomine läheks väga pikaks, nendekohta on üsnagi mahukas ja põhjalik kirjeldus ametlikuls postconf manualis http://www.postfix.org/postconf.5.html aga püüaks veel mõningaid ja põhiliselt spamimise /ddos'imisi piiravaid ja töökindlust suurendavaid parameetreid esiletuua


maximal_queue_lifetime = 3d bounce_queue_lifetime = 3h

Saba elupikkuse reguleerimine, oluline masinates mis näiteks paljudele teistele domeenidele relay'ks

relay_domains = /etc/mail/relay-domains

domeenid milledele näiteks ollakse teiseks mx'iks

Suhtlemiskiiruste limiteerimised

anvil_rate_time_unit = 60s
smtpd_client_connection_count_limit = 5
smtpd_client_connection_rate_limit = 100
smtpd_client_message_rate_limit = 100
smtpd_client_recipient_rate_limit = 200
smtpd_client_event_limit_exceptions = $mynetworks, ".ee"
smtpd_timeout = 60s

Hea kasutada spammimiste pidurdamisteks

selleks hea näiteks nõuda ka smtpd_helo_required = yes kui korrektset suhtlus pole ei tule ka vastuseid ja määrata veel lisatäiendusi smtpd_helo_restrictions = permit_mynetworks, reject_non_fqdn_hostname, reject_invalid_hostname


Konfiguratsiooni automaatne muutmine postconf utiliidiga

konfiguratsiooniooni saab jooksvalt vaadata käsuga postconf -n

Postconf võimaldab kiirelt ja mugavalt muuta mingeid parameetreid main.cf seadistuses ning seda võib kasutada nii hästi skriptimisel näiteks

postconf -e 'readme_directory = no'

Käsuga muudetakse readme_directory väli

Muud konfiguratsioonid

envelope sender and recipient addresses

aliases virtual generic canonical relocated

dedicated transport settings

transports

SMTP communication control

access Postfix

For content control

header_checks body_checks mime_header_checks nested_header_checks (obscure)


Krüpteeringud TLS

Kahe mailiserveri vaheline tls krüpteering

Auth SASL

Kasutajate autentimine ja kürpteeritud login

Mysql kasutajad

postfixadmin

Lisadeemonid viirusetõrje/spam

clamav, amavisd, postgrey jpt

content_filter = smtp-amavis:[127.0.0.1]:10024

Abivahendid

Oluliseimad posfixi käsud mida sagedaimini igapäevaelus võib vajaminna on

postalias
postmap
postconf
postqueue
postsuper

Järjekordadega tegelemisel põhiliseks on muidugi mailq mis võimaldab mugavalt järjekordade sisu jälgida

Suuremate mailivoogude ning blokeerumiste korral on hea uurida mis domeenid on probleemiks ja mis järjekordades on need kinni. Mailq pole samuti sageli selles osas eriti ülevaatlik.

# qshape deferred | head
                                         T  5 10 20 40 80 160 320 640 1280 1280+
                                 TOTAL 540  0  3  1  2 10   4  14  31   59   416
                          mingi.edu.ee 320  0  2  1  0  9   3   4  11   51   239
                           hotmail.org  25  0  0  0  0  1   0   0   0    0    24

Mõne domeeni või saatja kõigi kirjade eemaldamiseks võib kasutada sarnast käsku

mailq | grep spamidomeen.ee | awk '{ print $1 }' | tr -d '*!' | postsuper -d -

Postisüsteemi heaks testimise abivahendiks on ikka telnet muidugi ja telnet port 25

Logi ja selle analüüs

tail -f mail.log ;)

mailgraph

Lingid

Ametlik dokumentatsioon

http://www.postfix.org/documentation.html

Mailiserverite võrdlused

http://en.wikipedia.org/wiki/Comparison_of_mail_servers

dspam ja postfix

http://ubuntuforums.org/showthread.php?t=520075

redhat'i postfixi põhjalikud manualid

http://www.redhat.com/support/resources/howto/RH-postfix-HOWTO/x368.html

postfixi arhidektuuri täpsem ülevaade

http://www.postfix.org/OVERVIEW.html

Veel logimisest

http://www.onlamp.com/pub/a/onlamp/2004/01/22/postfix.html