注意,本文适用于 Clean Install ,即系统中没有安装过 Postfix、Dovecot、MySql、Apache等软件的系统。
前期配置
首先需要确认你系统的 hostname 是否已经修改成为
mail.yourdomain.com
的形式,否则 iRedMail 将不允许你安装。
输入以下命令可以查看你的 hostname 配置是否正确。
root@hostname:~$ hostname mail root@hostname:~$ hostname -f mail.yourdomain.com
下载安装
首先访问 iRedMail 的官网获得下载地址:https://www.iredmail.org/
文件很小。在写这篇文章的时候所使用的版本是 0.9.8
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.8.tar.bz2 tar xjf iRedMail-0.9.8.tar.bz2 cd iRedMail-0.9.8 chmod +x ./iRedMail.sh ./iRedMail.sh
接下来便进入了安装向导。
确认后将会询问你邮件存储目录,默认即可。
接下来问你是否要开启网页邮箱支持,只能够选择 Nginx 作为服务器,Apache 的支持在某个版本就被取消了。如果要自行配置 Apache ,请选择 No web server。
选择你使用的数据库,我用的是 MySQL
输入你的数据库密码。
输入你的域名,请使用 domain.com 而不要使用 mail.domain.com ,否则将会无法接收邮件。
接下来输入邮箱管理员的密码,账号是 postmaster@domain.com
接下来选择需要的软件包,默认即可。
接下来将会提醒你,这个文件里面包含了敏感数据。安装完成之后放到一个安全的地方即可。
然后按 y 正式开始安装。
记住,如果你在使用 Apache2 ,请在安装时暂时停止,否则安装过程中安装的 nginx 会因无法绑定80端口而安装失败。
安装过程中将会询问要不要自动配置防火墙,按y即可
按y重启防火墙。
安装完成,重启主机,要不然很多设置不会生效。
访问 https://yourdomain.com/mail/ 即可登陆 web 端邮箱。
注意请修改默认的 SSL 证书,自签名证书会提示不安全。
官方推荐你软链接你的证书到已经配置好的位置,方便更新证书以及避免修改各种证书位置。
# To use your own ssl cert (e.g. LetsEncrypt), please create symbol link to
# ssl cert/key used below, so that we can manage this config file with Ansible.
#
# For example:
#
# rm -f /etc/ssl/private/iRedMail.key
# rm -f /etc/ssl/certs/iRedMail.crt
# ln -s /etc/letsencrypt/live/<domain>/privkey.pem /etc/ssl/private/iRedMail.key
# ln -s /etc/letsencrypt/live/<domain>/fullchain.pem /etc/ssl/certs/iRedMail.crt
当然,如果你想要修改所有配置里证书的路径,那么主要保存在这三个文件里面。
/etc/apache2/sites-available/00-default-ssl.conf
/etc/postfix/main.cf
/etc/dovecot/dovecot.conf
修改完成后重启对应的三个服务
service apache2 restart
service dovecot restart
service postfix restart
Tips:请使用 fullchain 证书,而且不要使用通配符证书,否则 smtp 和 imap 链接的时候会有各种错误。
注意一下,iRedMail 对 Session 的 IP 限制比较严格,如果你网络是多拨的,没有设置 https 端口粘滞模式的话,多个 IP 来回变动导致登陆网页版邮箱会无限提示 Session expired 。
反 Spam 配置
接下来按照登陆管理员邮箱后收到默认的两封邮件,可以参照里面的步骤来增强我们邮件服务器的可信度。
添加 SPF 记录
SPF 记录,简单来说就是当收件方服务器接收到邮件之后,查询对方域名对应的 SPF 记录,里面包含了可信的发件IP地址,如果这封信发件的IP和可信IP一致,那么服务器就认为这封信是可信的。
SPF 记录的添加很简单。在 DNS 中添加一个名为 @ ,值为 v=spf1 ip4:0.0.0.0 -all 即可。
添加 DKIM 记录
同样,DKIM 也是一个 TXT 记录。相应的值可以在管理员账号收到的第一封邮件【Details of this iRedMail installation】里面找到。
邮件中搜索一下【DNS record for DKIM support】。
TXT记录名为:dkim._domainkey.example.com
记录值从 v=DKIM1; p=XXXXXX 开始,只需要复制引号内的内容即可,引号就不需要了。
最后发送一封邮件到 https://www.mail-tester.com/ 测试一下配置是否正确吧。
附录:
管理地址:
https://mail.yourdomain.com/iredadmin
网页邮箱地址:
https://mail.yourdomain.com/mail/
iRedMail还默认安装了 netdata ,地址是:
https://mail.yourdomain.com/netdata/
Tips:
默认配置好的 Nginx 从任何指向服务器 IP 的域名都能访问,那么如何只让 mail.yourdomain.com 能访问到 web 邮箱呢?简单修改一下 Nginx 的虚拟主机配置即可。