Postfix, Dovecot ja Active Directory kasutamine

Allikas: Imre kasutab arvutit
Redaktsioon seisuga 31. mai 2025, kell 17:48 kasutajalt Imre (arutelu | kaastöö) (Uus lehekülg: '===Sissejuhatus=== TODO ===Tööpõhimõte=== Postkasti arvuti failisüsteemi kasutamine kujuneb selliseks # find /srv/vmail/imool.org/priit/ -mmin -5 -ls 1442433 4 drwx------ 4 vmail vmail 4096 Mar 15 11:46 /srv/vmail/imool.org/priit/ 1442466 4 -rw------- 1 vmail vmail 279 Mar 15 11:46 /srv/vmail/imool.org/priit/.dovecot.svbin 1442449 4 drwx------ 5 vmail vmail 4096 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/.leedu 1...')
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

TODO

Tööpõhimõte

Postkasti arvuti failisüsteemi kasutamine kujuneb selliseks

# find /srv/vmail/imool.org/priit/ -mmin -5 -ls
1442433    4 drwx------   4 vmail    vmail        4096 Mar 15 11:46 /srv/vmail/imool.org/priit/
1442466    4 -rw-------   1 vmail    vmail         279 Mar 15 11:46 /srv/vmail/imool.org/priit/.dovecot.svbin
1442449    4 drwx------   5 vmail    vmail        4096 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/.leedu
1442458    4 -rw-------   1 vmail    vmail         472 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/.leedu/dovecot.index.cache
1442463    4 -rw-------   1 vmail    vmail         457 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/.leedu/dovecot-uidlist
1442459    4 -rw-------   1 vmail    vmail        1792 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/.leedu/dovecot.index.log
1442452    4 drwx------   2 vmail    vmail        4096 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/.leedu/tmp
1442451    4 drwx------   2 vmail    vmail        4096 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/.leedu/new
1442470    4 -rw-------   1 vmail    vmail        1343 Mar 15 11:46
  /srv/vmail/imool.org/priit/mail/.leedu/new/1426412777.M992489P23061.postkast,S=1343,W=1376
1442462    4 -rw-------   1 vmail    vmail          89 Mar 15 11:46 /srv/vmail/imool.org/priit/mail/maildirsize
1442438    4 -rw-------   1 vmail    vmail         956 Mar 15 11:48 /srv/vmail/imool.org/priit/mail/dovecot.index.log
1442447    4 drwx------   3 vmail    vmail        4096 Mar 15 11:48 /srv/vmail/imool.org/priit/sieve
1442475    4 -rw-------   1 vmail    vmail         440 Mar 15 11:48 /srv/vmail/imool.org/priit/sieve/managesieve.sieve
1442455    4 drwx------   2 vmail    vmail        4096 Mar 15 11:48 /srv/vmail/imool.org/priit/sieve/tmp

kus

  • /srv/vmail/imool.org/priit - virtuaalse kasutaja nn home kataloog
  • ~/mail - Maildir kataloog
  • ~/sieve - Sieve kataloog
  • ~/mail/.leedu - postkastis asuva kausta nimi
  • ~/mail/.leedu/new/1426412777.M992489P23061.postkast,S=1343,W=1376 - konkreetne kiri
  • ~/sieve/managesieve.sieve - Sieve script
  • kõik failid failisüsteemis on kasutaja:grupp vmail:vmail omad

Antud juhtumil Dovecot enda seisukohast ei ole kirjade vastuvõtmiseks AD LDAP kataloogist vaja midagi küsida (kuigi Dovecot arvutis töötav Postfix seda teeb, et kontrollida, ega ei saadata kirja olematule kastuajale).

Active Directory ettevalmistamine

TODO

Postfix ettevalmistamine

Eeldades, et Postfix on üldiselt seadistatud, jäänud on vaid Postfix liidestamine Dovecotiga. Selleks on kaks võimalust

  • LMTP
  • LDA
# apt-get install postfix-ldap

LMTP

LMTP kasutamiseks tuleb paigadada pakett

# apt-get install dovecot-lmtpd

ning Postfix seadistusfailis öelda

# cat /etc/postfix/main.cf
..
virtual_mailbox_domains = imool.org
virtual_mailbox_maps = ldap:/etc/postfix/virtual-mailbox-maps-ldap.cf
virtual_alias_maps = ldap:/etc/postfix/virtual-alias-maps.cf
virtual_transport = lmtp:unix:/var/run/dovecot/lmtp

kus

  • TODO

ning /etc/postfix/master.cf failis

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)   
# ==========================================================================
.. 
lmtp      unix  -       -       n       -       -       lmtp
...

LDA

LDA tugi sisaldub Dovecot põhiosas, kasutamiseks tuleb

# cat /etc/postfix/main.cf
..
virtual_transport = dovecot

ning

# cat /etc/postfix/master.cf
..
dovecot   unix  -       n       n       -       -       pipe
 flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver
 -f ${sender} -d ${recipient}

Dovecot tarkvara paigaldamine

Dovecot tarkvara on nö olemuslikult modulaarne ja operatsioonisüsteem Debian paketihalduses samuti, nt esinevad paketid

  • dovecot-core - Dovecot põhiosa
  • dovecot-imapd - IMAP deemon
  • dovecot-pop3d - POP3 deemon
  • dovecot-mysql - kasutajate info kasutamine MySQL andmebaasist
  • dovecot-pgsql - kasutajate info kasutamine PostgreSQL andmebaasist
  • dovecot-ldap - kasutajate info kasutamine LDAP kataloogist
  • dovecot-gssapi - Kerberos autentimine
  • dovecot-lmtpd - LMTP server
  • dovecot-managesieved - ManageSieve server
  • dovecot-sieve - Sieve filtri tugi

Debian v. 7 Wheezy

Lisada süsteemi wheezy-backports tugi

# cat /etc/apt/sources.list
deb http://ftp.ee.debian.org/debian/ wheezy-backports main contrib non-free
deb-src http://ftp.ee.debian.org/debian/ wheezy-backports main contrib non-free

ning öelda (küsitakse sertifikaadi tekitamise kohta, vastata jaatavalt)

# apt-get -t wheezy-backports install dovecot-imapd dovecot-ldap

Debian v. 8 Jessie

Nt sobib suhteliselt minimalistliku IMAP toega Dovecot paigaldamiseks õelda

# apt-get install dovecot-imapd dovecot-ldap

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 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-auth.conf

Seadistusfail /etc/dovecot/conf.d/10-auth.conf sisaldab ridu

disable_plaintext_auth = no
auth_mechanisms = plain login
!include auth-ldap.conf.ext

kus

  • plain - oskavad kasutada nt Thunderbird, Roundcube; ei oska Outlook
  • login - oskab kasutada Outlook

/etc/dovecot/conf.d/auth-ldap.conf.ext

Seadistusfail /etc/dovecot/conf.d/auth-ldap.conf.ext sisaldab

passdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf.ext
}

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/srv/vmail/%d/%n allow_all_users=yes
}

kus

  • passdb - IMAP autentimise jaoks oluline
  • userdb - saabunud kirjade failissteemi laialijagamiseks oluline
  • %d - muutuja saab väärtuseks saabunud kirja domeeni osa (oluline, et see oleks kooskõlas allpool esitatud mail_localtion ja sieve osaga)
  • %n - muutuja saab väärtuseks saabunud kirja kasutajanime osa (selle teeb postfixi osa ühetaoliselt, st aliastele saadetud kirjad saadetakse Dovecotile kõik ühele nö kanoonilisele aadressile)

/etc/dovecot/dovecot-ldap.conf.ext

Seadistusfaili /etc/dovecot/dovecot-ldap.conf.ext saab esitada mitmel enam-vähem samaväärsel viisil, kuid igal juhul peab arvestama asjaoluga, et Active Directory ei väljasta kasutaja parooli ei avatekstilisel ega ka hashitud kujul. St AD'le saab öelda mis on kasutajanimi ja parool ja ta vastab, kas komplekt sobib või mitte. Selle kohta öeldakse auth_bind'i tegema.

Lihtsam ja jäik juhtum nn DN (distinguished name) template abil

# cat /etc/dovecot/dovecot-ldap.conf.ext
hosts = 10.0.9.4
ldap_version = 3
auth_bind = yes
base = dc=imool,dc=local 
auth_bind_userdn = IMOOL\%n

kus

  • kasutaja parooli kontrollimiseks auth_bind_userdn template ja ldap search base abil tabatakse õige ldap kirje ja toimub parooli kontroll
  • tehakse üks LDAP päring

LDAP teenuskonto abil leitud DN abil tehtud auth_bind

# cat /etc/dovecot/dovecot-ldap.conf.ext
hosts = 10.0.9.4
ldap_version = 3
auth_bind = yes
dn = postfix@imool.local
dnpass = parool

base = dc=imool,dc=local 
pass_filter = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl=514))) 

kus

  • dn ja dnpass - ldap teenuskonto ligipääs
  • base - ldap search base
  • pass_filter - saab paindlikult kirjeldada, milliste ldap objektide seas saab kasutaja esineda
  • pass_attrs - saaks kasutada, aga ei ole vajadust
  • esmalt tehakse teenuskonto abil kataloogi päring ja leitakse kasutaja DN üles; seejärel toimub leitud DN peale bind_auth kasutaja esitatud parooli abil

Kirjeldatud LDAP korrektse seadistamise tulemusena peab IMAP login töötama

$ telnet localhost 143
Trying ::1...
Connected to localhost.localdomain.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready.
. login "imre.oolberg@imool.ee" "parool"
. OK [CAPABILITY IMAP4rev1 LITERAL+ ....] Logged in
. list "" "*"
. logout

Lisaks töötavad ka muud sõlmed, mis on seadistatud kasutama IMAP autentimist, nt frontend Postfix SMTP AUTH.

/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
}

kus

  • TODO

SSL

SSL/TLS tööd kontrollib seadistusfail

/etc/dovecot/conf.d/10-ssl.conf

minimaalselt

ssl = yes
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)

Kliendi seadistamine

  • Server type - IMAP
  • serveri nimi (või ip aadress)
  • port - 993
  • Connection security - SSL/TLS (mitte STARTTLS)
  • Authentication method - Normal password
  • kasutajanimi
  • parool

Testimine

# sslscan 10.103.6.143:993 | grep Acce
  Accepted  TLSv1  256 bits  ECDHE-RSA-AES256-SHA
  Accepted  TLSv1  256 bits  DHE-RSA-AES256-SHA
  Accepted  TLSv1  256 bits  DHE-RSA-CAMELLIA256-SHA
  Accepted  TLSv1  256 bits  AES256-SHA
  Accepted  TLSv1  256 bits  CAMELLIA256-SHA
...

Quota

Quota toimib kahe nö sisendi juures

  • Postfix kopeerib andmeid Dovecot peale üle LMTP
  • Thunderbird, Outlook vms eposti klientprogramm töötab Dovecot kui IMAP serveriga

Ühetaolise quota kasutamine

Üldiste st kõigile kasutajatele ühtemoodi kehtivata quota piirangute seadistamiseks tuleb teha nt sellised muudatused

# cat /etc/dovecot/conf.d/10-mail.conf
..
mail_plugins = $mail_plugins quota
...
# cat /etc/dovecot/conf.d/20-lmtp.conf
..
protocol lmtp {
  mail_plugins = $mail_plugins sieve quota
}

(quota_rule2 väärtus sõltub prefix ja separator valikust)

# cat /etc/dovecot/conf.d/90-quota.conf
..
plugin {
 quota_rule = *:storage=1G
 quota_rule2 = INBOX/Trash:storage=+100M
}

plugin {
 quota = maildir:User quota
}
...

kus

  • TODO

Parasjagu oleva quota kohta saab küsida nt nii

# doveadm quota get -u priit.kask@imool.org
Quota name Type    Value   Limit      %
User quota STORAGE    10 3000000      0
User quota MESSAGE     9       -

Postfix teavitamine quotast

Oluline on, et frontend Postfix ei võtaks kirja vastu ja saades pärast Dovecot käest teada, et seda pole kuhugi edasi anda, saadab selle varsti internetti tagasi. Selles osas aitab kirjeldada Dovecot peal quota-status teenus

# cat /etc/dovecot/conf.d/10-master.conf
..
service quota-status {
  executable = quota-status -p postfix
    inet_listener {
    port = 12340
  }
 client_limit = 1
} 
...

ning

# cat /etc/dovecot/conf.d/91-quota-status.conf 

plugin {
  quota_status_success = DUNNO
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.2.2 Mailbox is full"
}

Postfix juures tuleb kasutada midagi sellist (see peaks olema esimene rida)

smtpd_recipient_restrictions = check_policy_service inet:postkast.imool:12340
  ...

Quota erandite kasutamine

Kasutajale üldisest erineva quota seadistamiseks tuleb teha süsteemi seadistusfailides mitu muudatust, mis on seotud sellega, et kasutaja quota väärtus tuleb leida LDAP kataloogist, nt tavaliselt kasutuseta Title väljast.

  • seadistusfaili /etc/dovecot/dovecot-ldap.conf.ext muudatus
hosts = 10.0.9.4
ldap_version = 3
auth_bind = yes

dn = postfix@imool.org
dnpass = "parool"

base = dc=imool,dc=local
user_attrs = title=quota_rule=*:storage=%$
user_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl=514)))
pass_filter = (&(mail=%u)(objectClass=person)(!(userAccountControl=514)))

scope = subtree

lisandunud user_attrs rida tuleks lugedas selliselt, et Dovecot Quota tööd juhtiv parameeter quota_rule saab väärtuseks 2 G eelduselt, et AD peal on Title atribuut väärtuseks näidatud 2000000000

*:storage=2000000000
  • seadistusfaili /etc/dovecot/conf.d/auth-ldap.conf.ext muudatus, kastutada eespool tekstis näidatud userdb asemel sellist
userdb {
  driver = ldap
  args = /etc/dovecot/dovecot-ldap.conf-userdb.ext
  default_fields = uid=vmail gid=vmail home=/srv/vmail/%d/%n
}

kus /etc/dovecot/dovecot-ldap.conf-userdb.ext on link failile /etc/dovecot/dovecot-ldap.conf.ext (nii pidi töötama süsteemi efektiivsemalt)

# ls -ld /etc/dovecot/dovecot-ldap.conf-userdb.ext
lrwxrwxrwx 1 root root 34 Feb 16 00:21 /etc/dovecot/dovecot-ldap.conf-userdb.ext -> /etc/dovecot/dovecot-ldap.conf.ext
  • selleks, et scope = subtree toimiks sobib kasutada /etc/ldap/ldap.conf failis rida
# cat /etc/ldap/ldap.conf 
REFERRALS       off

Vastasel korral küll iseenesest süsteem töötab, aga Dovecot kasutamisel toimuvad episoodilised ca 10 sekundi pikkused timeoutid. Idee referrals juures probleemi otsimiseks tekib vaadates Dovecot ja AD vahelist LDAP liiklust Wiresharkiga, seal esineb taolisi sõnumeid

LDAPMessage searchResRef
messageID: 10
protocol0p: searchResRef
 searchResRef: 1 item
   LDAPURL: ldap://imool.org/CN=Configuration,DC=imool,DC=org
...

ning lisaks on timeout ajal näha, et püütakse pöörduda imool.org nimele vastava avaliku ip aadressi poole (AD ise on sisemisel aadressil).

Kasulikud lisamaterjalid

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

Fail:Roundcube-3.gif

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

Fail:Roundcube-2.gif

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";

Namespace

IMAP postimasinate sh Dovecot puhul tuleb eristada kahte tüüpi separator'eid

  • kliendi separator - eraldaja, mis eristab imap kliendi jaoks folderit alamfolderist, tavaliselt on see punkt (.), lisaks on levinud / märk see on paista namespace käsu väljundis (sulgudes teine positsioon) ning list käsu väljundis
. namespace
* NAMESPACE (("" ".")) NIL NIL
. OK Completed
  • failisüteemi separator - eraldaja, mis eristab imap serveri failisüsteemis folderit alamfolderist, tavaliselt on see punkt (.), lisaks on levinud / märk

vastavalt

/srv/vmail/imool.org/priit.kask/mail/.YLEM.ALAM

või

/srv/vmail/imool.org/priit.kask/mail/YLEM/ALAm

Vaikimisi kasutab Dovecto failisüsteemis eraldajana . ja / sisselülitamiseks sobib kasutada seadistusfailis 10-main.conf rida

mail_location = maildir:/srv/vmail/%d/%n/mail:LAYOUT=fs

Namespace võimaldab serveris olevaid nö kirjade hoidmisi grupeerida, kõige tavalisemal juhul on kasutusel üks personal tüüpi namespace. Iseenesest on olemas kolme erinevat tüüpi namespace'id

  • personal
  • public
  • shared

Parasjagu serveris kirjeldatud namespace olukorda näeb küsides

. namespace

mille vastuses esitatakse kolm positsiooni andmeid (personal, public, shared; kui ühel on mitu namespace väärtust, esitatakse nö array). Kui vastav positsioon on tühi, siis esitatakse seal NIL.

Dovecot vaikimisi namespace

. namespace
* NAMESPACE (("" ".")) NIL NIL
. OK Completed

Cyrus vaikimisi namespace

. namespace
* NAMESPACE (("INBOX." ".")) (("user." ".")) (("" "."))
. OK Completed

Courier vaikimisi namespace

. namespace
* NAMESPACE (("INBOX." ".")) NIL (("#shared." ".")("shared." "."))
. OK NAMESPACE completed.

mail.ee namespace (aastal 2015)

. namespace
* NAMESPACE (("INBOX/" "/")) (("user/" "/")) (("" "/"))
. OK Completed

zone.ee namespace (aastal 2015)

TODO

Microsoft Exchange (vaikimisi?) namespace

TODO

Tundub, et soovitatakse kasutada sellist komplekti

..
mail_location = maildir:/srv/vmail/%d/%n/mail
...
separator = /
....
prefix = INBOX/

tulemusena

  • failisüsteemis on kataloogide eraldajaks .
  • imap kliendi jaoks on kataloogide eraldajaks /
  • kõik kataloogid asuvad nii kliendi kui failisüsteemi vaatest INBOX all

Kasulikud lisamaterjalid

Master kasutaja

Master kasutaja abil saab logida süsteemi mõne nö tavakasutaja rollis. Sellise asjakorralduse tekitamiseks tuleb lisada /etc/dovecot/conf.d/auth-ldap.conf.ext faili sektsioon (tõenäoliselt on kokku kaks passdb {...} sektsiooni nüüd Dovecotis)

auth_master_user_separator = *
passdb {
  driver = passwd-file
  args = /etc/dovecot/passwd.masterusers
  master = yes
  pass = no
}

ning tekitada fail /etc/dovecot/passwd.masterusers

# htpasswd -b -c -s /etc/dovecot/passwd.masterusers imre imreparool
Adding password for user imre

Testimiseks on sobiv programm imtest mis on cyrus-clients paketi koosseisus

# apt-get install --no-install-recommends cyrus-clients

Kasutamiseks on kaks võimalust

  • kasutamisel näidata erali auth kasutajanimena master useri nimi (imre)
$ imtest -a imre -u priit.kask@imool.org 192.168.7.143 -w imreparool
  • kasutamisel lisada tavakasutaja nime järele '*imre' (seda varianti üldiselt ei soovitata kasutada)
$ imtest -u priit.kask@imool.org*imre 192.168.7.143 -w imreparool

SSL või TLS ühenduse testimiseks tuleks kasutada lisaks vastavalt suvandit -s või -t ""

ACL

Ainult lugemiseks folderis seadistamine, lülitada sisse acl lisa

# cat /etc/dovecot/conf.d/10-mail.conf
...
mail_plugins = acl

Kirjeldada global-acls faili kasutamine

# cat /etc/dovecot/conf.d/90-acl.conf
...
plugin {
  acl = vfile:/etc/dovecot/global-acls:cache_secs=300
}

Tekitada ACL seadistufail

# cat /etc/dovecot/global-acls 
AINULTLUGEMISEKS user=priit.kask@imool.org lr

Tulemusena saab kasutaja peale sisselogimist küll lugeda AINULTLUGEMISEKS folderist kirju, aga mitte sealt neid kustutada.

Virtual

Virtual namespace abil saab tekitada nö just-nagu-päris väljanägemisega personal namespace'i kasutajale juurde. Ja seal all paistavad kirjad, mis vastavad mingitele tunnustele, nt on uuemad näidatud ajast vms. Virtual namespace kasutamiseks tuleb lülitada moodul sisse, nt

# cat /etc/dovecot/conf.d/10-mail.conf
...
mail_plugins = virtual

Seejärel samas failis kirjeldada virtual namespace, nt

namespace {
  prefix = virtual/
  separator = /
  location = virtual:/srv/vmail/virtual
}

Ning konkreetne virtual namespace sisu, nt

# cat /srv/vmail/virtual/viimased/dovecot-virtual
INBOX
  all younger 3000
# cat /srv/vmail/virtual/hiljutised/dovecot-virtual 
INBOX
  unseen

Kataloog /srv/vmail/virtual peab olema nö õige aus Maildir kataloog, nt kopida kuskilt. dovecot-virtual failides tehtud muudatused kehtestuvad suhteliselt kiiresti, midagi restartida ei ole vaja.

Lisad

  • virtual
  • logging

Misc

# doveadm mailbox list -u priit.kask@imool.org
INBOX
INBOX/test2
INBOX/test
INBOX/test/test5

Shared folders

Shared folders abil saab sama postimasina piires üks kasutaja teha mingi osa oma kirjadest teisele kasutajale ligipääsetavaks. Shared folder sisslülitamiseks tuleb

  • lülitada sisse Dovecot ACL
  • tekitada ACL'id
  • kasutada shared folder võimalist eposti klienti

ACL tekitamiseks sobib öelda nt (alternatiiv on kasutada acl seadistamise võimega eposti klenti)

$ telnet 192.168.1.252 143
..
. login "priit.kask@auul.pri.ee" "priiduparool"
...
1 setacl INBOX/priidufoldermillelesaabmartligi mart.kask@imool.org rl
1 OK Setacl complete.
2 setacl INBOX/priidufoldermillelesaabmartligi mart.kask@imool.org +s
2 OK Setacl complete.
2 getacl INBOX/priidufoldermillelesaabmartligi
* ACL INBOX/priidufoldermillelesaabmartligi mark.kask@imool.org lrs priit.kask@auul.pri.ee lrwstipekxacd

kus

  • TODO

Kasulikud lisamaterjalid

  • TODO