Hits : 4558

Dovecot Mail Server :: Mini How To 


Dovecot


http://dovecot.org


http://wiki.dovecot.org


http://wiki.dovecot.org/MainConfig


http://www.linux-mail.info/mbo[..]ail-storage-formats/


top


Installation

Dovecot 1.0.15


wget -c http://dovecot.org/releases/1.0/dovecot-1.0.15.tar.gz
tar zxfv dovecot-1.0.15.tar.gz
cd dovecot
./configure --enable-header-install
make 
make install

Θέλοντας να βελτιώσω την απόδοση του dovecot έχω τρέξει το εξής :


#!/bin/bash
 ./configure \
	--with-notify=inotify \
	--with-ioloop=epoll \
	--with-mem-align=32 \
	--disable-ipv6 \
	--enable-header-install

Dovecot Sieve Plugin 1.0.3


wget -c http://dovecot.org/releases/sieve/dovecot-sieve-1.0.3.tar.gz
tar zxfv dovecot-sieve-1.0.3.tar.gz
cd dovecot-sieve-1.0.3
./configure --with-dovecot=/usr/local/lib/dovecot
make
make install

top


Configuration

dovecot.conf


/usr/local/etc/dovecot.conf


# Dovecot configuration file
# ebal 12.03.2008
 
#Base directory where to store runtime data.
base_dir=/usr/local/var/run/
 
# protocols = imap pop3
protocols = imap
disable_plaintext_auth = no  
# Logging
log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot.info.log
log_timestamp = "%b %d %H:%M:%S "
 
# SSL settings
ssl_disable = yes  
# Login processes
login_user = dovecot
login_greeting = 'Hi buddy, have an account ?'
login_log_format = %$: %s
 
# Mailbox locations and namespaces
# mail_extra_groups = mail – this is an old conf value
mail_privileged_group = mail
 
# Mailbox locations and namespaces
mail_location = mbox:/var/mail/folders/%u/:INBOX=/var/mail/%u:INDEX=/var/mail/index/%u
 
# Doesnt work with dovecot 1.0.x
# mail_location= dbox:/var/mail/folders/%u
 
# Mail processes
mail_debug = no # mail_debug = yes mail_log_prefix = "%Us(%u): "
verbose_proctitle = yes first_valid_uid = 1000
last_valid_uid = 5000
 
# Mail Optimaze
max_mail_processes = 512
mailbox_idle_check_interval = 30
 
# mbox-specific settings
mbox_read_locks = dotlock fcntl
mbox_write_locks = dotlock fcntl
 
# IMAP specific settings
protocol imap {
        listen = *:143
        imap_client_workarounds = tb-extra-mailbox-sep
}
 
# POP3 Specific Settings
protocol pop3 {
        listen = *:110
        pop3_no_flag_updates = no # unique mail identifier – Outlook 2003
        pop3_uidl_format = %08Xu%08Xv
}
 
# LDA specific settings
protocol lda {
        postmaster_address = ebal
        hostname = balinux
        mail_plugins = cmusieve
        log_path = /var/log/dovecot-local-deliver.log
        auth_socket_path = /usr/local/var/run/dovecot-auth-master
}
 
# Authentication processes
auth_verbose = yes auth_debug = yes auth_debug_passwords = yes  
# Authentication Cache
auth_cache_size = 10240
auth_cache_ttl = 18000
 
auth default {
        mechanisms = plain
 
        passdb passwd-file {
                args = /usr/local/etc/dovecot.passdb
        }
 
        userdb passwd-file {
                args = /usr/local/etc/dovecot.passdb
        }
 
        user = root
 
# It's possible to export the authentication interface to other programs:
        socket listen {
          master {
            path = /usr/local/var/run/dovecot-auth-master
            mode = 0660
            user = dovecot
            group = mail
          }
        }
 
}
 
# plugin
plugin {
        sieve = /var/mail/folders/%u/.dovecot.sieve
}

top


dovecot.passwd


Σύμφωνα με το παραπάνω configuration file η αυθεντικοποίηση των χρηστών γίνεται μέσα από το αρχείο dovecot.passwd
Όπως υποδηλώνει και το όνομα του αρχείου, η λειτουργικότητά του είναι παρόμοια με το passwd αρχείο ενός linux συστήματος.


Η σύνταξή είναι είναι της παρακάτω μορφής:


username:password:uid:gid:(gecos):home:(shell):extra_fields


/usr/local/etc/dovecot.passdb


ebal:{PLAIN}test:1001:1001:Evaggelos Balaskas
ebal2:{PLAIN}test:1001:1001:Evaggelos Balaskas

Encrypted Passwords


Εάν επιθυμούμε να προσθέσουμε μεγαλύτερη ασφάλεια στο παραπάνω αρχείο τότε χρειάζεται
να χρησιμοποιήσουμε την εντολή dovecotpw. Παράδειγμα χρήσης :


$ dovecotpw -p test -s MD5-CRYPT
{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./


Και έτσι το παραπάνω αρχείο γίνεται ως εξής:


ebal:{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./:1001:1001:Evaggelos Balaskas
ebal2:{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./:1001:1001:Evaggelos Balaskas

Allow Login – Network Security


Μία από τις δυνατότητες του dovecot είναι να μπορεί να επιτρέπει μόνο από συγκεκριμένες IPs ή
από συγκεκριμένα δίκτυα. Με αυτόν τον τρόπο αυξάνεται η ασφάλεια στον mail server από συνδέσεις
μη εγκεκριμμένες ή από την δυνατότητα παράκαμψης μη-ασφαλών συνθηματικών. Η δυνατότητα αυτή
μας δίνεται κάνοντας χρήση ενός extra field στο αρχείο από το οποίο γίνεται η αυθεντικοποίηση των χρηστών.
Το μήνυμα λάθους που εμφανίζει είναι το ίδιο με το να δώσει κανείς λάθος συνθηματικό.


Το extra field ονομάζεται allow_nets και ένα τυπικό παράδειγμα είναι το εξής:


ebal:{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./:1001:1001:Evaggelos Balaskas allow_nets=127.0.0.1,10.10.10.0/24
ebal2:{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./:1001:1001:Evaggelos Balaskas allow_nets=127.0.0.1,10.10.20.0/24


Περισσότερα εδώ


top


Mailbox Formats


Το παραπάνω conf έχει ορισμένο το mbox mail format.
Για να δημιουργήσεις έναν λογαριασμό με maildir format χωρίς να τροποποιήσεις το dovecot.conf αρχείο
χρειάζεται να προσθέσει κανείς στο dovecot.passwd και ειδικότερα στα extra fields το εξής:


userdb_mail=maildir:~/Maildir


εάν βέβαια έχει λογαριασμούς κάτω από το path /var/mail/ όπως στο παράδειγμά μας τότε
τo παραπάνω dovecot.passwd μπορεί να γίνει ως εξής:


ebal:{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./:1001:1001:Evaggelos Balaskas
ebal2:{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./:1001:1001:Evaggelos Balaskas:::userdb_mail=maildir:/var/mail/folders/%u:INDEX=/var/mail/index/%u

top


Checks


Πριν την εκκίνηση του dovecot για να ελέγξουμε ότι η σύνταξη του configuration μας είναι σωστή :


/usr/local/sbin/dovecot -n

Για να εκκινήσουμε τον mail server μας :


/usr/local/sbin/dovecot

Μετά την εκκίνηση:


tail -f /var/log/dovecot*log

pop3


$ telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hi buddy, have an account ?
user ebal
+OK
pass test
+OK Logged in.
^]

top


imap


$ telnet localhost imap
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK Hi buddy, have an account ?
1 login ebal test
1 OK Logged in.
^]

$ telnet localhost imap
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK Hi buddy, have an account ?
1 login ebal test
1 OK Logged in.
 
2 SELECT INBOX 
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent $Label1 NonJunk $Forwarded $Label3 $Label2 $Label4 $Label5 Junk)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent $Label1 NonJunk $Forwarded $Label3 $Label2 $Label4 $Label5 Junk \*)] Flags permitted.
* 8737 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1174418788] UIDs valid
* OK [UIDNEXT 112330] Predicted next UID 2 OK [READ-WRITE] Select completed.
 
2 LIST "" *
* LIST (\NoInferiors \UnMarked) "/" "draft"
* LIST (\NoInferiors \UnMarked) "/" "Trash"
* LIST (\NoInferiors \UnMarked) "/" "INBOX"
2 OK List completed.

top