FreeBSD下用Dovecot搭建IMAP服務器筆記
Created 2018-07-25 / Updated 2018-07-25安裝:
# pkg install dovecot
配置:
# vi /usr/local/etc/dovecot/dovecot.conf
protocols = imap
listen = *
(listen = *
表示只監聽IPv4,改成listen = [::]
表示只監聽IPv6。想同時監聽IPv4和IPv6則改成listen = *, [::]
)
disable_plaintext_auth = yes
auth_mechanisms = plain login cram-md5
passdb {
driver = passwd-file
args = scheme=CRAM-MD5 username_format=%u /usr/local/etc/dovecot/users
}
userdb {
driver = passwd-file
args = username_format=%u /usr/local/etc/dovecot/users
}
log_path = /var/log/dovecot.log
#verbose_ssl = yes
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_privileged_group = mail
(其中mail_privileged_group
部分是因為log裏提示):
(…missing +w perm: /var/mail, we’re not in group 6(mail), dir owned by 0:6 mode=0775) (set mail_privileged_group=mail)
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
}
(port = 0
是為了禁用非SSL連接。為了安全,建議把port = 993
改成其它端口,然後記得在防火牆裏開放該端口)
ssl = required
ssl_cert = </usr/local/etc/letsencrypt/live/example.com/fullchain.pem
ssl_key = </usr/local/etc/letsencrypt/live/example.com/privkey.pem
ssl_dh = </usr/local/etc/dovecot/dh.pem
ssl_min_protocol = TLSv1.2
(使用服務器上的Let’s Encrypt證書,記得把example.com部分改成你自己的)
protocol imap {
mail_plugins = $mail_plugins imap_zlib
}
(啟用壓縮)
生成DH parameters:
# openssl dhparam -out /usr/local/etc/dovecot/dh.pem 2048
新建一個專門收郵件的用戶(可選):
# adduser
(然後在選擇shell的那一步選nologin
即可)
設置IMAP的用戶名和密碼:
# vi /usr/local/etc/dovecot/users
然後把/etc/passwd中你要接收郵件的用戶所在的那一行複製進去,如test這個用戶:
test:*:1001:1001::/home/test:/usr/sbin/nologin
生成CRAM-MD5:
# doveadm pw -s CRAM-MD5 -p <你要的密碼>
把生成的結果替換上面星號部分,最終如下:
test:{CRAM-MD5}xxx:1001:1001::/home/test:/usr/sbin/nologin
讓Dovecot開機運行:
# vi /etc/rc.conf
dovecot_enable="YES"
完成,啟動Dovecot:
# service dovecot start
Categories: [FreeBSD] [mail]