Dovecot konfiguracija
аутор: Goran Mekić
—
Последња измена
11:55 22.04.2008.
Kako namestiti POP3 i IMAP server
O programu
Dovecot je mali, brz i stabilan POP3 i IMAP server (prve dve stavke su proverene, a za treću se nadam da je nikad neću morati demantovati). Ovo upustvo će Vam pokazati kako da dovecot koristite i kao LDA/MDA i kao SASL implementaciju na serverskoj strani.
Šta je potrebno pre konfiguracije
- LDAP. Koristi se za čuvanje informacija o korisničkim nalozima.
- POP3. Standardan protokol za preuzimanje pošte
- Sieve. Ekstenzija dovecot LDA koja sortira pristiglu poštu na osnovu definisanih pravila
- SSL. Siguran prenos podataka.
- Dovecot-dspam. Nezvanični plugin za dovecot koji služi za treniranje dspam-a.
Konfiguracija
Kao i obično, daću konfiguracioni fajl i iskomentarisati linije koje nisu same po sebi jasne/etc/dovecot/dovecot.conf (glavni fajl):
# Slušaj na svim IPv6 i IPv4 adresama
listen = [::]
listen = *
# Gde se mail dostavlja (koristi se maildir u korisničkom direktorijumu)
default_mail_env = maildir:%h/.maildir
# Koje protokole treba uključiti (imap se obično koristi za webmail, a protokoli sa
# nastavkom ¨s¨ su SSL varijante istih)
protocols = imap imaps pop3s
# Ranije verzije dovecot-a su imale bug koji se ovako obilazio
# To je podrazumevajuća vrednost za ovu opciju, ali se nije učitavala
# automatski kako treba
pop3_uidl_format = %08Xu%08Xv
# Korišćenjem postfix SSL ključeva izbegavamo generisanje istih za dovecot
ssl_cert_file = /etc/postfix/certs/FOO-cert.pem
ssl_key_file = /etc/postfix/certs/FOO-key.pem
ssl_disable = no
# IMAP protokol sluša samo konekcije sa lokalnog hosta
# SSL varijanta sluša na svim adresama
# Učitava se DSPAM plugin
protocol imap {
listen = localhost
ssl_listen = *
mail_plugins = dspam
}
protocol pop3 {
}
# Za LDA se učitava sieve i deklariše se fajl gde su definisana sieve pravila
# Kada pogledate sieve.conf, biće jasnije šta je sam sieve
protocol lda {
postmaster_address = postmaster@domen.org
global_script_path = /etc/dovecot/sieve.conf
mail_plugins = cmusieve
}
# Mehanizmi autentifikacije
auth default {
mechanisms = plain
# Za lozinke se koristi LDAP i to po pravilima definisanim u sledećem fajlu
passdb ldap {
args = '/etc/dovecot/dovecot-ldap.conf'
}
# Sve informacije za korisnike se kupe u passdb, te za isporučivanje pošte
# nije potrebno ponovo slati upit na ldap
userdb prefetch {
}
# Informacije o korisnicima moraju biti dostupne LDA programu (ne može da koristi prefetch)
userdb ldap {
args = '/etc/dovecot/dovecot-ldap.conf'
}
# Sledeća 2 bloka su SASL implementacija
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = mymail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
# Korisnik pod čijim nalogom dovecot radi
user = root
}
dict {
}
# Dodatna konfiguracija za svaki plugin ponaosob ako podrazumevane opcije nisu po Vašoj volji
plugin {
}
/etc/dovecot/dovecot-ldap.conf:
# Host na kome je LDAP
hosts = localhost
# Nalog koji može da čita i ažurira LDAP unose
dn = "cn=root,dc=ldap"
# Lozinka za gornji nalog (promenite je na onu koju ste dali pri konfigurisanju LDAP-a)
dnpass = XXXXXX
# Uradi bind i koristi verziju 3 LDAP protokola
auth_bind = yes
ldap_version = 3
# Odakle u LDAP stablu se počinje pretraga
base = ou=%d, dc=ldap
# Opseg pretrage
scope = subtree
# Atributi koji su potrebni dovecot-u (osim lozinke, kupe se svi atributi
# kako bi se smanjio broj upita za jedan jer se ne koristi poseban upit za
# lozinku, poseban za korisničko ime)
pass_attrs = uid=user,userPassword=password,homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid
pass_filter = (&(objectClass=person)(uid=%n))
# Korisnički atributi (potrebni samo za LDA)
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid
user_filter = (&(objectClass=person)(uid=%n))
# Šema po kojoj se lozinke čuvaju
default_pass_scheme = CRYPT
/etc/dovecot/sieve.conf
# Potrebno za ¨fileinto¨ direktiveI na kraju dodati grupu i korisnika:
require "fileinto";
# Ako postoji header ¨X-DSPAM-Result¨ i nije ¨Innocent¨ ili ¨Whitelisted¨, poruka ide u SPAM direktorijum
if exists "X-DSPAM-Result"
{
if not anyof ( header :contains "X-DSPAM-Result" "Innocent",
header :contains "X-DSPAM-Result" "Whitelisted")
{
fileinto "SPAM";
}
}
# groupadd mymail
# useradd -g mymail -s /sbin/nologin mymail -m
Дејства на документ