Postfix, Dovecot ja lihtne virtuaalsete kasutajate kasutamine
Sissejuhatus
Tööpõhimõte
Näiteks
internet ... . __|__ | | tulemüür | | |_____| | | ---|---|---------------------|----- | | __|__ __|__ | | | | | | | | |_____| |_____| Postfix Dovecot port 25/tcp port 24/tcp port 587/tcp port 12345/tcp
kus
- TODO
Postfix
Muus osas seadistada nö tavalisel viisil, aga virtuaalsed kasutajad näidata
virtual_mailbox_domains = moraal.ee, imool.ee virtual_transport = smtp:10.0.6.143 virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps.txt virtual_alias_maps = hash:/etc/postfix/virtual_aliases_maps.txt transport_maps = hash:/etc/postfix/transport_maps.txt
kus
- TODO
# cat /etc/postfix/virtual-mailbox-maps-txt.cf mart.kask@imool.ee x priit.kask@imool.ee x
- TODO
# cat /etc/postfix/virtual_aliases_maps.txt kontakt@imool.ee mart.kask@imool.ee, priit.kask@imool.ee mart@imool.ee mark.kask@imool.ee priit@imool.ee priit.kask@imool.ee
- TODO
# cat /etc/postfix/transport_maps.txt imool.ee lmtp:[10.0.6.143] moraal.ee lmtp:[10.0.6.143]
Antud juhul toimub SMTP relee klientide autentimine vastu Dovecot serverit. St sama kasutajate baas, mis on kasutusel Dovecot imap klientide jaoks. SMTP AUTH toimub eraldi nö tavalisest port 25/tcp liiklusest port 587/tcp peal, Postfix seadistusfailis /etc/postfix/master.cf vastab sellel sektsioon
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_sasl_type=dovecot -o smtpd_sasl_path=inet:10.0.6.143:12345 -o smtpd_sasl_security_options=noanonymous -o smtpd_sasl_local_domain=$myhostname -o smtpd_client_restrictions=permit_sasl_authenticated,reject
kus
- smtpd_sasl_path - Dovecot auth serveri teenuse aadress
Dovecot tarkvara paigaldamine
Tarkvara paigaldamiseks sobib öelda
# apt-get install dovecot-imapd dovecot-lmtpd
Paigaldamise tulemusena tekib failisüsteemi
- /etc/default/dovecot - seadistusfail
- /etc/dovecot/dovecot.conf - seadistusfail
- /etc/dovecot/conf.d - seadistusfailide kataloog
- /etc/init.d/dovecot - käivitusskript
- dovecot:dovecot ja dovenull:dovenull kasutaja:grupp
- /etc/dovecot/private/dovecot.pem - salajane võti
- /etc/dovecot/dovecot.pem - sertifikaat
Lisada kasutaja:grupp vmail:vmail
# groupadd -g 5000 vmail # useradd -g vmail -u 5000 -m -d /opt/vmail -s /bin/bash vmail
Tekitada postkastide kataloog
# mkdir /srv/vmail # chown vmail:vmail /srv/vmail
Dovecot seadistamine
LDAP kasutamine
- /etc/dovecot/conf.d/10-auth.conf - kirjeldab, millise andmestiku vastu IMAP kasutaja autentimine toimub, antud juhul LDAP (viitab failile auth-ldap.conf.ext)
- /etc/dovecot/conf.d/auth-ldap.conf.ext - kirjeldab passdb ja userdb, antud juhul vastavalt LDAP ja static (viitab failile /etc/dovecot/dovecot-ldap.conf.ext)
- /etc/dovecot/dovecot-ldap.conf.ext - kirjeldab LDAP kataloogi asukoha ning kuidas LDAP päringuid teha ja vastuseid tõlgendada
/etc/dovecot/conf.d/10-master.conf
Seadistusfail /etc/dovecot/conf.d/10-master.conf sisaldab sektsiooni
service lmtp { unix_listener lmtp { #mode = 0666 } # Create inet listener only if you can't use the above UNIX socket inet_listener lmtp { # Avoid making LMTP visible for the entire internet address = 10.0.6.143 port = 24 } }
Selleks, et Postfix saaks smtp auth kontrolli teostada
# cat /etc/dovecot/conf.d/10-master.conf .. service auth { ... inet_listener { port = 12345 } } ....
/etc/dovecot/conf.d/10-auth.conf
Seadistusfail /etc/dovecot/conf.d/10-auth.conf sisaldab ridu
disable_plaintext_auth = no auth_mechanisms = plain login !include auth-system.conf.ext
kus
- TODO
/etc/dovecot/conf.d/auth-system.conf.ext
Seadistusfail /etc/dovecot/conf.d/auth-system.conf.ext sisaldab
# cat /etc/dovecot/conf.d/auth-system.conf.ext passdb { driver = passwd-file args = /etc/dovecot/passwd } userdb { driver = static args = uid=vmail gid=vmail home=/srv/vmail/%d/%n allow_all_users=yes }
kus
- kasutajate ligipääsuandmed on tekstifailis /etc/dovecot/passwd
# cat /etc/dovecot/passwd priit.kask@imool.org:{SSHA}c+n6+reZtmVBrQQzxtB/KbrkPTp8eVKB mart.kask@imool.org:{SSHA}9WHxpvarItLUtZDEJ+aju6+jmmqg1KsS
ning kuhu hashid on moodustatud abil (öeldakse sisestatud paroolile vastav hash, passwd fail tuleb ise moodustada)
# doveadm pw -s ssha Enter new password: Retype new password: {SSHA}Sc3epuWFq/OlYJsKxibD/VBkZ2f6bi9s
/etc/dovecot/conf.d/10-mail.conf
Seadistusfail /etc/dovecot/conf.d/10-mail.conf näidab IMAP deemonile, kus asub failisüsteemis kasutaja postkasti ja sisaldab nt
mail_location = maildir:/srv/vmail/%d/%n/mail namespace inbox { inbox = yes .. separator = / ... prefix = INBOX/ }
kus
- TODO
SSL
SSL/TLS tööd kontrollib seadistusfail
/etc/dovecot/conf.d/10-ssl.conf
minimaalselt
ssl = required ssl_cert = </etc/dovecot/dovecot.pem ssl_key = </etc/dovecot/private/dovecot.pem # ssl_ca = </etc/dovecot/ca.pem
kus
- < märk tähistab, et parameerti väärtuseks on näidatud faili sisu
- ssl_cert sisaldab teenuse sertifikaati + kogu ahelat (faili alguses on täpsemad serdid ja faili lõpus self signed juurikas kuigi põhimõtteliselt piisab nö eelviimasest vahesertifikaadist)
Sieve
Sieve (ingl. k. sõel) abil saab kasutaja oma IMAP klientprogrammis, reeglina mugava haldusliidese abil, mitte skripte redigeerides vms
- seadistada serverit nii, et serveris jagatakse sissetulevad kirjad mingite kirjeldatud tunnuste abil postkastidesse (nt Subject sisaldab mingit sõne)
- seadistada serveris vacation (out of office, autoresponse) teate saatmine
Samas on võimalik ka postkasti arvutis, kus Dovecot töötab tekitada käsitsi erinevaid sieve skripte.
Sieve filtri juurutamine
Sieve filtrite kasutamise tugi
# apt-get install dovecot-sieve
Tööd juhib seadistusfail
conf.d/90-sieve.conf
Plugini aktiviseerimiseks tuleb kirjade sisenemisega tegeleva mooduli, nt LMTP seadistusfailis muude pluginate hulgas näidatud sieve, nt
# cat conf.d/20-lmtp.conf protocol lda { mail_plugins = $mail_plugins sieve quota }
Managesieve server
Selleks, et Sieve kliendid saaksid Dovecot serverit juhtida tuleb postimasinasse juurutada Managesieve protokolliga töötav teenus
# apt-get install dovecot-managesieved
Tööd juhib seadistusfail
conf.d/20-managesieve.conf
Tulemusena töötab teenus vaikimisi pordil
# netstat -lnp | grep dove tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN 16667/dovecot ...
Sieve filtri kasutamine
Sieve filtri kasutamiseks on vaja sobivat IMAP klient tarkvara, nt Roundcube veebimeili. Kasutamine paistab välja selline
Kasulikud lisamaterjalid
Taustal tekitatakse serveriss selline fail
# cat /srv/vmail/imool.org/priit/sieve/managesieve.sieve require ["date","fileinto","relational"]; # rule:[leedu] if header :contains "subject" "leedu" { fileinto "leedu"; } # rule:[eesti] if header :contains "subject" "eesti" { fileinto "eesti"; }
Vacation vastuste kasutamine
Roundcube abil paistab Vacation teate ettevalmistamine selliselt
Tehniliselt toimub Vacation vastustega tegelemine Sieve abil, vastav sektsioon on sarnane
# /srv/vmail/imool.org/priit/sieve/managesieve.sieve require ["date","fileinto","relational","vacation"]; # rule:[Vacation] if allof (currentdate :zone "+0200" :value "ge" "iso8601" "2015-03-16T00:00:00+02:00", \ currentdate :zone "+0300" :value "le" "iso8601" "2015-03-30T00:00:00+03:00" { vacation :subject "Olen tööpostilt eemal" text: Tere! Ma olen tööpostilt eemal ajavahemikul 16. märts - 29. märts 2015. Saadetud salvestatakse postkasti, aga tegelen nendega alatest 30. märtsist. Kiireloomuliste küsi Piit . ;
From: aadressile saadetakse vacation vastus üks kord, arvestust saatmiste kohta peetakse faili abil
/srv/vmail/imool.org/priit/.dovecot.lda-dupes
Tundub, et Dovecot, õieti Sieve saadab vastuse samas arvutis töötavad Postfix abil
# grep 97AB760884 /var/log/mail.log Mar 15 17:35:02 postkast postfix/pickup[24414]: 97AB760884: uid=5000 from=<> Mar 15 17:35:02 postkast postfix/cleanup[25017]: 97AB760884: message-id=<dovecot-sieve-1426433702-589317- 1@postkast.toodang.imool.org> Mar 15 17:35:02 postkast postfix/qmgr[9352]: 97AB760884: from=<>, size=857, nrcpt=1 (queue active) Mar 15 17:35:04 postkast postfix/smtp[25022]: 97AB760884: to=<mart@imool.ee>, \ relay=mail.imool.org[194.204.62.116]:25, delay=1.4, delays=0.09/0/0.05/1.3, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 2615D603D4) Mar 15 17:35:04 postkast postfix/qmgr[9352]: 97AB760884: removed
Käsitsi sieve skriptide kasutamine
Tundub, et Dovecot kompileerib sieve skriptid automaatselt ära. Nt kasutaja skript kasutab :global skripti
# cat conf.d/90-sieve.conf .. sieve_global_dir = /etc/dovecot/sieve ...
ning
# cat /etc/dovecot/sieve/global.sieve require ["fileinto"]; # rule:[gloobus] if header :contains "subject" "gloobus" { fileinto "gloobus"; }
ning kasutaja sieve skript
# /srv/vmail/imool.org/priit/sieve/kasutajaskript.sieve require ["date","fileinto","relational","vacation","include"]; include :global "global";
IMAP
Testimine
TODO
POP3
Testimine
$ telnet localhost 110 Trying ::1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. user priit@imool.org +OK pass priiduparool +OK Logged in. list +OK 12 messages: 1 1096 2 1097 3 1097 . retr 2 +OK 1097 octets Return-Path: <imre@moraal.auul.pri.ee> Delivered-To: <priit@imool.org> Received: from imool.org ... . quit +OK Logging out. Connection closed by foreign host.
Kasutamine
Thunderbird Linux keskkonnnas
kus
- TODO
Paistab
kus
- ülemine konto on NAMESPACE (("INBOX/" "/")) NIL NIL
- alumine konto on NAMESPACE (("" ".")) NIL NIL
Logimine
Dovecot võimaldab suhteliselt üksikasjalikult logida ja seejuures kirjeldada, mida logitakse, http://wiki2.dovecot.org/Plugins/MailLog
TODO
Märkused
Kui ...
Sep 24 15:38:35 postkast dovecot: master: Warning: /mnt/vdc is no longer mounted. See http://wiki2.dovecot.org/Mountpoints Sep 24 15:38:35 postkast dovecot: master: Warning: /mnt/vdd is no longer mounted. See http://wiki2.dovecot.org/Mountpoints
root@postkast:~# doveadm mount remove /mnt/vdc root@postkast:~# doveadm mount remove /mnt/vdd
Kasulikud lisamaterjalid