Erinevus lehekülje "Postfix" redaktsioonide vahel
197. rida: | 197. rida: | ||
selleks hea näiteks nõuda ka '''smtpd_helo_required = yes''' | selleks hea näiteks nõuda ka '''smtpd_helo_required = yes''' | ||
kui korrektset suhtlus pole ei tule ka vastuseid | 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''' | '''Konfiguratsiooni automaatne muutmine postconf utiliidiga''' | ||
Redaktsioon: 2. november 2008, kell 17:46
Sisukord
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.
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 vajalikke muutujaid
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