this is obsolete doc -- see http://doc.nethence.com/ instead

Configuring Dovecot v1 against Maildir folders on FreeBSD 8 

 

Install the provided package, 

echo $PACKAGESITE
pkg_add -r dovecot

 

Enable the daemon, 

cd /etc/
cp /usr/local/etc/rc.d/dovecot rc.d/
echo dovecot_enable=YES >> rc.conf

 

Configure the daemon, 

cd /etc/
ln -s ../usr/local/etc/dovecot.conf
cd /usr/local/etc/
mv dovecot.conf dovecot.conf.dist
sed '/^[[:space:]]*#/d; /^[[:space:]]*$/d' dovecot.conf.dist | tee dovecot.conf > dovecot.conf.dist.clean
vi dovecot.conf

edit to your taste, restrict it to imap service, e.g., 

protocols = imap
disable_plaintext_auth = yes
mail_location = maildir:~/Maildir/
mail_privileged_group = mail
dotlock_use_excl = yes
verbose_proctitle = yes
first_valid_uid = 1000
first_valid_gid = 6
maildir_copy_with_hardlinks = yes
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep
}
auth_username_format = %Lu
auth default {
  mechanisms = plain login
  passdb pam {
    args = session=yes dovecot
  }
  userdb passwd {
    args = blocking=yes
  }
  user = root
}

 

ssl = yes
verbose_ssl = yes
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

 

Generate a self-signed certificate using the provided script by Dovecot. 

mkdir -p /etc/ssl/certs/ /etc/ssl/private/
cd /etc/ssl/
cp /usr/local/share/examples/dovecot/mkcert.sh .
cp /usr/local/share/examples/dovecot/dovecot-openssl.cnf .
cp dovecot-openssl.cnf dovecot-openssl.cnf.dist
vi dovecot-openssl.cnf
#mv certs/dovecot.pem certs/dovecot.pem.old
#mv private/dovecot.pem private/dovecot.pem.old
mv mkcert.sh mkcert.sh.dist
sed 's/365/3650/g' mkcert.sh.dist > mkcert.sh
chmod +x mkcert.sh
diff -u mkcert.sh.dist mkcert.sh
./mkcert.sh
(copy/paste the fingerprint into FINGER file for exemple)
ls -l certs/ private/

Ref. SSL certificate creation: http://wiki2.dovecot.org/SSL/CertificateCreation 

 

Now edit the Dovecot configuration file again, 

vi /etc/dovecot.conf

change, 

disable_plaintext_auth = yes

and add, 

ssl = yes
verbose_ssl = yes
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

 

Ready to go 

Check the version, 

/usr/local/sbin/dovecot --version

 

Finally start the daemon, 

  ps aux | grep dove
cd /etc/
grep dove passwd
grep dove group

note. should return, 

dovecot:*:143:143:Dovecot User:/var/empty:/usr/sbin/nologin
dovecot:*:143:

then continue, 

rc.d/dovecot start
  ps aux | grep dove

 

Check that everything is fine through an IMAP session, 

telnet mx.example.net 143

e.g., 

a login MAILUSER PASSWORD 

a select inbox
a list "" *
a fetch 1 full
a fetch 1 body[text]

 

Checkthat STARTTLS is working, 

openssl s_client -connect imap.example.com:143 -starttls imap
a logout

If you wanted to check for SSL you would, 

#openssl s_client -connect imap.example.com:993
#a logout

 

References 

protocole imap: log d'une session telnet: http://www.iprelax.fr/imap/imap_session.php