使用iRedMail在Ubuntu 20.04上搭建邮件服务
试过几个系统,最后发现Ubuntu 20.04上安装和运行iRedMail兼容是最好的,而且出错、踩坑最少的。
iRedMail是成熟的邮件服务器系统,它拥有优秀的性能,全面实用的功能,且搭建方便、社区支持良好。今天我们介绍在Ubuntu 20.04 LTS 64 bit操作系统中安装并配置iRedMail邮件服务器系统,实现域名邮箱、垃圾邮件过滤、病毒查杀等等实用功能。
# 准备工具
1、干净的 VPS 一台,最低配置 2核2G 硬盘10G。
猫哥推荐使用racknerd的VPS,因为搬瓦工搭建的邮局群发邮件会被黑洞警告。
aff链接 https://my.racknerd.com/aff.php?aff=6687 支持猫哥点此链接注册
2、VPS 最好支持 PTR Records(反向 DNS )
3、域名 和 cloudflare (解析生效快)
# 给VPS做预备
买来VPS,解析完毕后我们需要提交一个工单,让客服帮你绑定反向解析,具体要求可以查考我的话术(嘿嘿)
根据购买提示一开始你就可以预装Ubuntu 20.04 LTS 64 bit,但如果不是Ubuntu系统,可以根据邮件发送给你的管理面板信息自行重置一下系统。
点完红色按钮后,然后同意一下VPS就开始重装系统了。重装系统需要些,建议等待10-20分钟后在登录SSH进行操作。(请注意网页提示新root密码记下)
# 给域名绑定做预备
根域名必须有A记录解析哪怕解析到127.0.0.1上都行
本次使用maoge.pw
作为演示,根域名不使用(但一定要解析), 我们拿mail.maoge.pw
来解析VPS的IP地址
1.先把根域名解析A记录
2.mail.maoge.pw
解析到VPS的IP
3.将maoge.pw
设置MX记录,解析值为mail.maoge.pw
, 优先级设置为10
# 搭建 iRedMail 邮件服务器
# 设置 VPS 以及系统
# 更新系统
apt update -y
# 设置 VPS 主机名
我们规划邮局的域名为 mail.maoge.pw
,所以,我们需要对 VPS 的主机名进行设置。
首先,需要编辑 /etc/hosts
文件,找到含有你的 VPS IP 地址的那一行;如果没有,则添加一行。内容如下:
127.0.0.1 mail.maoge.pw mail
其中, 127.0.0.1 可换为你的服务器 IP 地址,后面依次填入长主机名和短主机名,切记不可填反。
然后,我们找到 VPS 的 /etc/hostname
文件,编辑里面的内容为 mail
(域名的前缀)
这样,就设置好了主机名。重启 VPS。
此时我们检查一下是否设置正确:
执行:hostname
执行:hostname -f
此时,我们分别看到mail
和 mail.maoge.pw
这样,我们就全部设置好了主机名(hostname), 可以进行接下来的其他操作了
# 下载并安装 iRedMail
执行:
apt-get install git -y
git clone https://github.com/iredmail/iRedMail.git
cd iRedMail
bash iRedMail.sh
2
3
4
系统将会自动开始安装。安装过程中会出现下面这些情况,您需要依次根据您自己的信息来设置。
- 第一步,欢迎界面,两个选项,yes或no ,直接回车yes。
- 第二部,设置安装目录,这里可以看到安装目录为
/var/vmail
直接回车,下一步。 - 第三步,选择web服务器,此时可以看到
nginx
前面有个星号,这代表已经被选中,如果没有星号,切换到nginx
选项,按一下空格,星号出现,回车下一步。 - 第四步,选择数据库,上下选择到
MariaDB
,空格星号选中,回车下一步。 - 第五步,设置数据库密码,自己设置。
- 第六步,设置域,不带mail,就是maoge.pw。
- 第七步,设置管理员账号的密码,不是设置账号,是密码,自己设置。
- 第八步,选择需要安装的组件,默认即可,那个Sogo可安可不安,都行,不影响邮件服务,回车下一步。
设置完毕后,屏幕上会列出来这些信息,我们输入y确认安装。
安装需要大概10分钟左右。全部安装好之后,系统会提示是否设置防火墙规则,我们输入y确认即可。
重启服务器,让邮件服务器生效! 至此,邮件服务器搭建完毕,以下开始设置邮件服务器。
可以通过访问(当然,我们目前还没有解析域名,后面一起解析)
https://你的域名/mail ——邮件登录地址
https://你的域名/netdata ——服务器状态监控
https://你的域名/iredadmin ——邮件服务器后台管理
管理员账号:postmaster@你的域 例如 postmaster@163.com
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.6.3/iRedMail.tips 文件中查看
2
3
4
5
6
7
# 配置 iRedMail 邮件服务器
# 申请证书
安装证书脚本
apt-get install certbot
然后,即可申请免费的Let’s Encrypt证书:
certbot certonly --webroot -d mail.maoge.pw -w /var/www/html/
这个申请命令后会要求填入邮箱地址
然后根据提示输入A,然后他会提示给你发广告邮件输入N不同意,
生成的公钥在路径 /etc/letsencrypt/live/mail.maoge.pw/fullchain.pem
私钥 /etc/letsencrypt/live/mail.maoge.pw/privkey.pem
# 配置证书
申请完毕后,我们首先配置Nginx.
编辑文件**/etc/nginx/templates/ssl.tmpl**, 找到下面两行:
ssl_certificate /etc/ssl/certs/iRedMail.crt;
ssl_certificate_key /etc/ssl/private/iRedMail.key;
2
将地址替换为您的证书地址,我这里是:
ssl_certificate /etc/letsencrypt/live/mail.maoge.pw/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.maoge.pw/privkey.pem;
2
保存好后重新载入Nginx配置文件:
service nginx reload
收发信时,同样需要用到TLS安全验证,因此我们还需要配置Postfix和Dovecot. 首先,编辑**/etc/postfix/main.cf**文件,找到下面这三行(我这里是第95 ~ 97行):
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt
2
3
将其替换为您的证书地址:
smtpd_tls_key_file = /etc/letsencrypt/live/mail.maoge.pw/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.maoge.pw/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.maoge.pw/chain.pem
2
3
最后,给Dovecot配置证书。编辑文件**/etc/dovecot/dovecot.conf**, 找到下面这两行(我这里是第45和46行):
ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key
2
将其替换为您的证书地址:
ssl_cert = </etc/letsencrypt/live/mail.maoge.pw/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.maoge.pw/privkey.pem
2
保存好之后重新载入Dovecot配置文件。
service dovecot reload
这样,我们为Nginx, Postfix, Dovecot分别配置好了SSL/TLS安全证书。
# 禁用 iRedMail 灰名单
灰名单(greylist)是一项防止垃圾邮件的功能,iRedMail默认开启了该功能。但是,该功能开启之后,收所有信件的时候都有较长时间的延迟。因此,我们这里将该功能关闭。
我们首先给配置文件提权:
chmod +w /opt/iredapd/settings.py
然后编辑该文件(/opt/iredapd/settings.py),找到下面这行:
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
将其中的”greylisting”这项删去即可。然后,重启iredapd, 并且恢复文件权限。
service iredapd restart
chmod -w /opt/iredapd/settings.py
2
# 配置 DNS 及解析
# 设置 SPF 记录
您需要设置一条TXT记录,将根域名(比如我这里的maoge.pw)解析值设置如下。
内容为 v=spf1 mx ~all
# 设置 DMARC 记录
DMARC记录的设置比较复杂,我们这里先简单设置一下,对于普通的域名邮箱足够使用了。以maoge.pw域名为例,您需要添加一条TXT记录,将_dmarc.maoge.pw (请不要遗漏dmarc前面的那个下划线)解析值设置为如下:
v=DMARC1; p=none; pct=100; rua=mailto:dmarc@maoge.pw
# 设置 DKIM记录
配置DKIM记录之前,我们先要生成DKIM密钥。在SSH中执行:
amavisd-new showkeys
会看到类似于下面的密钥:
然后,以域名maoge.pw为例,请去您的DNS服务提供商那里,添加一条TXT记录,将dkim._domainkey.maoge.pw解析到 v=DKIM1; p=MIIBIj……………………………………h6o3Lv7OoNd
。请注意,这里的解析值不包含小括号以及所有引号。
# 添加用户及测试
请看视频演示(包括域名证书续签)
如果您需要使用客户端来收发信,则smtp, pop, imap地址均为mail.maoge.pw, 端口是常用的端口(SMTP: 25/587, POP3: 110/995, IMAP: 143/993).
一切配置完毕之后,您可以使用https://www.mail-tester.com/来测试您的邮箱的邮件评分 (opens new window)。我测试了一下,得分为满分10分