在 Ubuntu 下搭建 iRedMail 邮件系统

注意,本文适用于 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

接下来便进入了安装向导。

Welcome Screen of iRedMail

Welcome Screen of iRedMail

确认后将会询问你邮件存储目录,默认即可。

Mail Storage Path

Mail Storage Path

接下来问你是否要开启网页邮箱支持,只能够选择 Nginx 作为服务器,Apache 的支持在某个版本就被取消了。如果要自行配置 Apache ,请选择 No web server。

Select Web Server

Select Web Server

选择你使用的数据库,我用的是 MySQL

Select Database

Select Database

输入你的数据库密码。

输入你的域名,请使用 domain.com 而不要使用 mail.domain.com ,否则将会无法接收邮件。

接下来输入邮箱管理员的密码,账号是 postmaster@domain.com

接下来选择需要的软件包,默认即可。

Select App to Install

Select App to Install

接下来将会提醒你,这个文件里面包含了敏感数据。安装完成之后放到一个安全的地方即可。

然后按 y 正式开始安装。

Sensitive Config Warning

Sensitive Config Warning

记住,如果你在使用 Apache2 ,请在安装时暂时停止,否则安装过程中安装的 nginx 会因无法绑定80端口而安装失败。

Nginx Install Error

Nginx Install Error

安装过程中将会询问要不要自动配置防火墙,按y即可

按y重启防火墙。

Firewall Config

Firewall Config

安装完成,重启主机,要不然很多设置不会生效。

访问 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 的虚拟主机配置即可。