Postfix'i kasutamine Debianiga
Sisukord
Sissejuhatus
Postfix on postiedastusagent (ingl. k. mail transport agent, MTA). Postiedastusagendi ülesanne on võtta epost võrgust või lokaalselt vastu ja anda edasi
- postijaotusagendile (ingl. k. mail delivery agent, MDA) kirjade kasutajate postkastidesse jaotamiseks
- järgmisele postiedastusagendile
- viiruste analüüsi süsteemile
- spami analüüsi süsteemile
Postiedastusagent on epostisüsteemi keskne komponent, mis ühendab kokku kõik eposti liikumisega toimuvad tegevused
internet (teised MTA'd) | ^ v | _____ spämmi analüüs <----> | | <---- lokaalne meilisaatja (nn /usr/sbin/sendmail STDIO) viiruste analüüs <----> | MTA | <---- MTA klient, nt Icedove või Thunderbird |_____| ----> postijaotusagent nt Cyrus või lihtsamal juhul kopeeritakse kiri faili /var/mail/kasutajanimilinefail
Eesmärk
Eesmärgiks on seadistada käima selliste omadustega postiedastusagent
- võtab vastu domeenide loomaaed.tartu.ee ja www.loomaaed.tartu.ee posti
- saadab mart@loomaaed.tartu.ee aadressile saadetud kirja edasi aadressile
- salvestab priit@loomaaed.tartu.ee aadressile saadetud kirja faili /var/mail/mart
- võimaldab saata välja alamvõrkudest 192.168.0.0/24 ja 172.16.0.0/24 posti
Tarkvara paigaldamine
Postfix tarkvara saab paigaldada Debiani paketihaldusest öeldes
bash# apt-get install postfix
Tavaliselt siis eemaldatakse vaikimisi Debiani standard operatsioonisüsteemi kooseisus esinev Exim Postfixi vastu. Postfixi paigaldamisel tuleb valida 'General type of configuration', 'valime Internet Site'
- No configuration
- Internet Site
- Internet with smarthost
- Satellite system
- Local only
Seejärel küsitakse 'mail name' väärtust, see hakkab esinema läbi selle postisüsteemi välja saadetud kirjade eposti aadresside @ märgist paremal
loomaaed.tartu.ee
Seejärel tekitatakse kasutaja, genereeritakse seadistusfailid ja käivitatakse Postfix.
Setting up postfix (2.3.8-2) ... Adding group `postfix' (GID 105) ... Done. Adding system user `postfix' (UID 104) ... Adding new user `postfix' (UID 104) with group `postfix' ... Not creating home directory `/var/spool/postfix'. Creating /etc/postfix/dynamicmaps.cf Adding tcp map entry to /etc/postfix/dynamicmaps.cf Adding group `postdrop' (GID 106) ... Done. setting myhostname: ria-pg1a.test.kit setting alias maps setting alias database changing /etc/mailname setting myorigin setting destinations: loomaaed.tartu.ee, ria-pg1a.test.kit, localhost.test.kit, localhost setting relayhost: setting mynetworks: 127.0.0.0/8 setting mailbox_command setting mailbox_size_limit: 0 setting recipient_delimiter: + setting inet_interfaces: all Postfix is now set up with a default configuration. If you need to make changes, edit /etc/postfix/main.cf (and others) as needed. To view Postfix configuration values, see postconf(1). After modifying main.cf, be sure to run '/etc/init.d/postfix reload'. Running newaliases Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix.
Postfixiga on seotud failisüsteemis sellised kataloogid ning failid
- /etc/postfix - Postfixi seadistusfailid
- /etc/mailname
- /var/spool/postfix - saba (ingl. k. queue)
- /var/log/mail.log - logi
- /usr - programmifailid ja teegid ning dokumentatsioon, erinevates kataloogides, 'dpkg -L postfix' ütleb
Seadistamine
Süsteemist väljuva posti ümbriku muutmiseks tuleb kasutada mail.cf failis rida
smtp_generic_maps = hash:/etc/postfix/generic
ning /etc/postfix/generic ise sisaldab näiteks selliseid ridu
www-data@arvuti.sisedomeen www-bounce@valisdomeen.ee root@arvuti.sisedomee www-bounce@valisdomeen.ee
Muudatuste kehtestamiseks tuleb generic'ikile vastav andmebaas moodustada käsuga
# postmap /etc/postfix/generic
ning laadida reload'iga Postfix.
Kasutamine
Aliase olemasolu kontrollimiseks sobib öelda
# postmap -q mart@loomaaed.tartu.ee pgsql:/etc/postfix/pgsql-local.cf
Logi
Jõudlus
Amavis
Põhimõtteliselt Amavis tarkvara iseseisvalt sisulist lisaväärtust postisüsteemile ei paku, aga ta võimaldab ühendada Postfix'i kokku väliste teenustega, näiteks viiruste analüüsi tarkvaraga ClamAV.
Amavis paigaldatakse öeldes
# apt-get install amavisd-new
Vaikeseadistustega Amavis sobib kasutamiseks
- Amavis kuulab soketil 127.0.0.1:10024
- Amavis pöördub MTA poole aadressile 127.0.0.1:10025
Selleks, et Postfix kõik talle laekunud posti saadaks läbi Amavisi peab lisama main.cf faili rea
content_filter=amavisfeed:[127.0.0.1]:10024
ning faili master.cf lisama sektsioonid
amavisfeed unix - - n - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o smtp_tls_note_starttls_offer=no 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o smtpd_restriction_classes= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters -o local_header_rewrite_clients= -o smtpd_milters= -o local_recipient_maps= -o relay_recipient_maps=
ClamAV
ClamAV on vaba tarkvaraline viirustõrjeprogramm, mille kasutamisel tarvitatakse ClamAV tasuta viiruste kontrolli andmebaasi teenust.
Tarkvara paigaldatakse tavaliselt Debian volatile arhiivis, selleks peab /etc/apt/sources.list sisaldama esimese reana
deb http://ftp.aso.ee/debian-volatile lenny/volatile main contrib non-free
Paigaldamiseks tuleb öelda
# apt-get install clamav
Vaikeseadistustega ClamAV sobib kasutamiseks.
Cyrus
Postkastihalduse tarkvara Cyrus sisaldab muu hulgas selliseid komponente
- haldusvahendid (cyradm programm)
- imap server
- pop3 server
- testkliendid (IMAP serveri testklientprogramm imtest)
Cyrus tarkvaraga saab pealnäha sarnase tulemuse, so postkastide pidamise saavutada üsna mitmel erineval moel. Käesolev tekst kirjeldab järgmisete omadustega juhtumit
- kõik Cyruse protsessid töötavad ühes ja samas operatsioonisüsteemi eksemplaris
- Cyruse kasutajad tulevad välisest PostgreSQL andmebaasist SASL ja omakorda PAM abil
- Cyruse postkastidesse saabuvad kirjad Postfix MTA'st LMTP protokolli kasutamise teel
- Cyruse postkastidele on ligipääs IMAP ja POP3 serverite kaudu, krüptitud ja krüptimata andmevahetust võimaldades
Sellisel moel käivitatud Cyruse kasutuselevõtmiseks tuleb sooritada näiteks selline tegevuste järgnevus
- paigaldada vajalik hulk Cyrus'e komponent
- valmistada ette PostgreSQL andmebaas
- valmistada ette PAM komponent
- valmistada ette SASL komponent
- seadistada Cyrusele administratiivne kasutaja ning tekitada tavakasutajale postkast
- seadistada Cyrus käima koostöös Postfixiga
Cyrus tarkvara paigaldamine
Cyrus'e paigaldamiseks tuleb öelda
# apt-get install cyrus-pop3d-2.2 cyrus-imapd-2.2 cyrus-doc-2.2 cyrus-clients-2.2 cyrus-admin-2.2 libsasl2-modules libsasl2-2 sasl2-bin
Cyrus tarkvara seadistamine toimub peaasjalikult seadistusfaili /etc/imapd.conf muutmise teel. Selleks, et Cyrus kasutaks SASLi antud juhtumi jaoks sobival moel, peavad failis etc/imapd.conf sisalduma read
sasl_mech_list: PLAIN sasl_pwcheck_method: saslauthd
Cyrus käivitusskript on
# /etc/init.d/cyrus2.2
PostgreSQL andmebaasi ettevalmistamine
PostgreSQL andmebaasi tabelis hoitakse Cyruse kasutajate autentimiseks vajalikke andmeid.
PAM komponendi ettevalmistamine
PostgreSQLi andmebaasi kasutamiseks peab paigaldama paketi üldotstarbelise paketi libpam-pgsql
# apt-get install libpam-pgsql
PAM komponendi ettevalmistamine toimub failide /etc/pam.d/imap ning /etc/pam_pgsql.conf abil
# cat /etc/pam.d/imap auth required pam_pgsql.so account required pam_pgsql.so password required pam_pgsql.so
ning
# cat /etc/pam_pgsql.conf host = andmebaasi.hostname database = andmebaasinimi user = cyrus_auth password = cyrus_auth_parool table = skeeminimi.tabelinimi user_column = username pwd_column = passwd expired_column = expire_status newtok_column = newtok debug pw_type = md5
SASL komponendi ettevalmistamine
SASL kompoenendi seadistamine toimub faili /etc/default/saslauthd abil, antud juhtumil on oluline, et SASL deemon oleks käivitatav
START=yes
ning et SASL töötaks vastu PAM'i
MECHANISMS="pam"
Cyruse administratiivne kasutaja ja kasutajate haldus
Cyrus töö käigus kasutatakse mitmeid nö andmebaase
- postkastide andmebaas - failis /var/lib/cyrus/mailboxes.db ja mida redigeeritakse cyradmin programmiga
- Cyruse kasutajate andmebaas - antud juhul asub PostgreSQLi andmebaasis
Cyruse administratiivse kasutaja kasutajanimi on kirjas seadistusfailis /etc/imapd.conf, näiteks võiks selleks olla 'cyrus'
admins: cyrus
Administratiivne kasutaja saab kasutada cyradmin programmi teistele kasutajatele Cyruse postkastide moodustamiseks. Enne kui kasutajana cyrus saab cyradmin programmi kasutada, peab olema see kasutaja PostgreSQL andmebaasi lisatud.
Postisüsteemi kasutaja moodustamiseks tuleb kasutaja administratiivse kasutajana cyrus moodustada esmalt sellele kasutajale postkast öeldes
$ cyradmin --user cyrus localhost IMAP Password: localhost.localdomain> cm user.mart localhost.localdomain> quit
ning lisaks tuleb kasutaja mart lisada ka PostgreSQL andmebaasi. Seejärel saab kasutaja mart üle IMAP protokolli süsteemi logida. Testimiseks sobib kasutada Cyrus tarkvaraga kaasa tulevat imap klienti imtest, näiteks selliselt
$ imtest -a mart -u mart localhost -w mardiparool S: * OK smtp2a Cyrus IMAP4 v2.2.13-Debian-2.2.13-14+b3 server ready C: C01 CAPABILITY S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE IDLE S: C01 OK Completed C: L01 LOGIN mart {7} S: + go ahead C: <omitted> S: L01 OK User logged in Authenticated. Security strength factor: 0 . list "" "*" * LIST (\HasChildren) "." "INBOX" . OK Completed (0.000 secs 6 calls) . logout * BYE LOGOUT received . OK Completed Connection closed.