Liens
Description
Dovecot is a POP/IMAP (Post Office Protocol / Interactive Message Access Protocol) server.
Ports
port
|
description
|
143 incoming |
standard IMAP port. StartTLS protocol
|
993 incoming |
standard IMAPs port. TLS protocol
|
Commands
|
dovecot -n
|
Protocols
/etc/dovecot/dovecot.conf
|
!include_try /usr/share/dovecot/protocols.d/*.protocol
|
/usr/share/dovecot/protocols.d/imapd.protocol
|
protocols = $protocols imap
|
Mailboxes
- mbox: store all the emails in a unique file
- maildir: store emails in directories
/etc/dovecot/conf.d/10-mail.conf
|
mail_location = maildir:/var/mail/%u
mail_location = maildir:~/maildir
|
 |
Ensure to have installed dovecot-lmtp |
/etc/postfix/main.cf
|
virtual_transport = lmtp:unix:private/dovecot-lmtp
mailbox_transport = lmtp:unix:private/dovecot-lmtp
|
/etc/dovecot/conf.d/10-master.conf
|
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
|
Userdb lookup user@domain.net doesn't match user
/etc/dovecot/conf.d/10-auth.conf
|
auth_username_format = %Ln
|
Authentication
/etc/dovecot/conf.d/10-auth.conf
|
disable_plaintext_auth = yes
auth_mechanisms = plain
|
By default, dovecot use system users and their passwords to connect.
/etc/dovecot/conf.d/10-auth.conf
|
!include auth-system.conf.ext
|
/etc/dovecot/conf.d/auth-system.conf.ext
|
passdb {
driver = pam
# use /etc/pam.d/imap for IMAP
args = %s
}
userdb {
driver = passwd
}
|
/etc/pam.d/imap
|
auth required pam_listfile.so item=user sense=allow file=/etc/imapusers onerr=fail
|
/etc/imapusers
|
user1
user2
|
/etc/dovecot/conf.d/10-auth.conf
|
!include auth-passwdfile.conf.ext
|
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
|
passdb {
driver = passwd-file
args = scheme=SHA512-CRYPT username_format=%u /etc/dovecot/users
}
userdb {
driver = passwd-file
args = username_format=%u /etc/dovecot/users
}
|
/etc/dovecot/users
|
user:{SHA512-CRYPT}pass
user:{SHA512-CRYPT}pass:1000:1000::/home/user::userdb_mail=maildir:~/maildir allow_nets=::1,127.0.0.0/8,192.168.0.0/24,local
|
|
doveadm pw -s SHA512-CRYPT
doveadm pw -V -t '{SHA512-CRYPT}hash'
doveadm pw -l
|
Needed configuration to use dovecot with postfix.
/etc/dovecot/conf.d/10-master.conf
|
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
}
|
/etc/dovecot/conf.d/10-auth.conf
|
auth_mechanisms = plain login
|
/etc/dovecot/conf.d/10-ssl.conf
|
ssl = required
ssl_cert = </etc/letsencrypt/live/domain.fr/fullchain.pem
ssl_key = </etc/letsencrypt/live/domain.fr/privkey.pem
ssl_min_protocol = TLSv1.2
|
/etc/dovecot/conf.d/20-imap.conf
|
protocol imap {
mail_plugins = $mail_plugins imap_zlib
}
|
Test
|
telnet localhost imap2
A1 LOGIN username password
A2 LIST "" "*"
A3 EXAMINE INBOX
A5 LOGOUT
openssl s_client -connect localhost:143 -starttls imap
openssl s_client -connect hostname.domain.net:993
|
Debug
/etc/dovecot/conf.d/10-logging.conf
|
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
mail_debug = yes
|
- /var/log/syslog
- /var/log/mail.log
- /var/log/mail.err
/etc/dovecot/conf.d/10-logging.conf
|
debug_log_path = /var/log/mail.log
info_log_path = /var/log/mail.log
|
/etc/fail2ban/jail.d/enabled.local
|
[dovecot]
enabled = true
|
Application Android
Configuration
- Serveur IMAP: mail.domain.fr
- Sécurité: STARTTLS
- Authentification: PLAIN
- Port: 143
- Serveur SMTP: mail.domain.fr
- Sécurité: STARTTLS
- Port: 587
- Authentification: AUTOMATIC
UFW
|
sudo ufw allow "Dovecot IMAP"
sudo ufw allow "Dovecot Secure IMAP"
|
Installation
|
sudo apt install dovecot-imapd dovecot-lmtpd
|