前面的二部分主要是介绍Exim的配置。但Exim没有提供IMAP访问的能力。所以要用到另外一个软件,前面其实已经涉及,叫courier。据说也是一个MTA,和Exim是一个级别的。觉得Exim已经够强大了。我以后有时间再研究。
IMAP认证
装好courier默认就可以使用143端口的IMAP服务。由于密码是明文,很不安全。如同465的SSMTP(SMTP+SSL)我们需要IMAPS(IMAP+SSL),让sniffer程序无从下手。
apt-get update
apt-get install courier-authdaemon courier-imap courier-imap-ssl
修改/etc/courier/imapd.cnf 建立自己的证书:
mkimapdcert
(可能需要先删除 /usr/lib/courier/imapd.pem )
/etc/init.d/courier-imap-ssl restart
/etc/courier/authdaemonrc默认配置应该至少包含
authmodulelist="authpam"
删除默认的pem, 创建certificate
rm -rf /etc/courier/*.pem
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/courier/imapd.pem
运行c_rehash 否则可能出现证书不存在的错误。排错可以看
tail /var/log/mail.log
测试
在客户端邮件软件中使用993端口,选择SSL,不用选择安全认证其实已经安全了。
然后收下邮件,看是否询问证书,然后用户名,密码,能够收到就成功了。
后记
终于在花了好几个晚上的摸索后配置好了!*nix的强大和复杂程度又一次超过我的想象。我做的配置记录很简单,也是最基础不过的应用。有很多配置到现在还不很明白,更不要说设计思想,简直太巧妙了。给我这个工作主要是.Net的程序员极大的震撼,有井底观蛙的感觉。当然也是托网上文档不多的福,否则遇到各种问题的时候也不会仔细去推敲认证。真是庆幸我10年前开始接触Linux,虽然到现在还只是使用Ubuntu来编程的水平,但学习使用Linux这条路子我会一直走下去的。