{{anchor href="top"}}
Hits : **{{hits}}**
== Dovecot Mail Server :: Mini How To ==
{{ToC from="h2" to="h3"}}
=== Dovecot ===
http://dovecot.org
http://wiki.dovecot.org
http://wiki.dovecot.org/MainConfig
http://www.linux-mail.info/mbox-maildir-mail-storage-formats/
((#top))
-----------
=== Installation ===
==== Dovecot 1.0.15 ====
%%(bash)
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 έχω τρέξει το εξής :
%%(bash)
#!/bin/bash
./configure \
--with-notify=inotify \
--with-ioloop=epoll \
--with-mem-align=32 \
--disable-ipv6 \
--enable-header-install
%%
==== Dovecot Sieve Plugin 1.0.3 ====
%%(bash)
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 **
%%(html)
# 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 συστήματος.
Η σύνταξή είναι είναι της παρακάτω μορφής:
%%(code)
username:password:uid:gid:(gecos):home:(shell):extra_fields
%%
** /usr/local/etc/dovecot.passdb **
%%(code)
ebal:{PLAIN}test:1001:1001:Evaggelos Balaskas
ebal2:{PLAIN}test:1001:1001:Evaggelos Balaskas
%%
==== Encrypted Passwords ====
Εάν επιθυμούμε να προσθέσουμε μεγαλύτερη ασφάλεια στο παραπάνω αρχείο τότε χρειάζεται
να χρησιμοποιήσουμε την εντολή **dovecotpw**. Παράδειγμα χρήσης :
%%(code)
$ dovecotpw -p test -s MD5-CRYPT
{MD5-CRYPT}$1$5LH9m/w2$PhkXZLzBzSEQu0pWLwuO./
%%
Και έτσι το παραπάνω αρχείο γίνεται ως εξής:
%%(code)
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** και ένα τυπικό παράδειγμα είναι το εξής:
%%(code)
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
%%
Περισσότερα ((http://wiki.dovecot.org/PasswordDatabase/ExtraFields/AllowNets εδώ))
((#top))
-----------
=== Mailbox Formats ===
Το παραπάνω conf έχει ορισμένο το mbox mail format.
Για να δημιουργήσεις έναν λογαριασμό με maildir format χωρίς να τροποποιήσεις το dovecot.conf αρχείο
χρειάζεται να προσθέσει κανείς στο dovecot.passwd και ειδικότερα στα extra fields το εξής:
%%(code)
userdb_mail=maildir:~/Maildir
%%
εάν βέβαια έχει λογαριασμούς κάτω από το path /var/mail/ όπως στο παράδειγμά μας τότε
τo παραπάνω dovecot.passwd μπορεί να γίνει ως εξής:
%%(html)
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 μας είναι σωστή :
%%(bash)
/usr/local/sbin/dovecot -n
%%
Για να εκκινήσουμε τον mail server μας :
%%(bash)
/usr/local/sbin/dovecot
%%
Μετά την εκκίνηση:
%%(bash)
tail -f /var/log/dovecot*log
%%
==== pop3 ====
%%(bash)
$ 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 ====
%%(bash)
$ 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.
^]
%%
%%(bash)
$ 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))
-----------