拟写此篇文章前,分别借鉴了香菇肥牛、波仔两位大佬的博文,也算是猫哥我自己整合改编的吧

试过几个系统,最后发现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,解析完毕后我们需要提交一个工单,让客服帮你绑定反向解析,具体要求可以查考我的话术(嘿嘿)

image-20230613021904267

根据购买提示一开始你就可以预装Ubuntu 20.04 LTS 64 bit,但如果不是Ubuntu系统,可以根据邮件发送给你的管理面板信息自行重置一下系统。

image-20230613022637884

image-20230613022834944

点完红色按钮后,然后同意一下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

此时,我们分别看到mailmail.maoge.pw

这样,我们就全部设置好了主机名(hostname), 可以进行接下来的其他操作了

下载并安装 iRedMail

执行:

apt-get install git -y
git clone https://github.com/iredmail/iRedMail.git
cd iRedMail
bash iRedMail.sh

系统将会自动开始安装。安装过程中会出现下面这些情况,您需要依次根据您自己的信息来设置。

  • 第一步,欢迎界面,两个选项,yes或no ,直接回车yes。
  • 第二部,设置安装目录,这里可以看到安装目录为/var/vmail 直接回车,下一步。
  • 第三步,选择web服务器,此时可以看到nginx前面有个星号,这代表已经被选中,如果没有星号,切换到nginx选项,按一下空格,星号出现,回车下一步。
  • 第四步,选择数据库,上下选择到MariaDB ,空格星号选中,回车下一步。
  • 第五步,设置数据库密码,自己设置。
  • 第六步,设置域,不带mail,就是maoge.pw。
  • 第七步,设置管理员账号的密码,不是设置账号,是密码,自己设置。
  • 第八步,选择需要安装的组件,默认即可,那个Sogo可安可不安,都行,不影响邮件服务,回车下一步。

设置完毕后,屏幕上会列出来这些信息,我们输入y确认安装。

安装需要大概10分钟左右。全部安装好之后,系统会提示是否设置防火墙规则,我们输入y确认即可。

重启服务器,让邮件服务器生效! 至此,邮件服务器搭建完毕,以下开始设置邮件服务器。

可以通过访问(当然,我们目前还没有解析域名,后面一起解析)
https://你的域名/mail        ——邮件登录地址
https://你的域名/netdata     ——服务器状态监控
https://你的域名/iredadmin   ——邮件服务器后台管理 
管理员账号:postmaster@你的域  例如 [email protected]
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.6.3/iRedMail.tips 文件中查看

配置 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;

将地址替换为您的证书地址,我这里是:

ssl_certificate /etc/letsencrypt/live/mail.maoge.pw/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mail.maoge.pw/privkey.pem;

保存好后重新载入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

将其替换为您的证书地址:

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

保存好之后重新载入Postfix配置文件。

service postfix reload

最后,给Dovecot配置证书。编辑文件/etc/dovecot/dovecot.conf, 找到下面这两行(我这里是第45和46行):

ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key

将其替换为您的证书地址:

ssl_cert = </etc/letsencrypt/live/mail.maoge.pw/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.maoge.pw/privkey.pem

保存好之后重新载入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

配置 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:[email protected]

设置 DKIM记录

配置DKIM记录之前,我们先要生成DKIM密钥。在SSH中执行:

amavisd-new showkeys

会看到类似于下面的密钥:

image-20230613211705152

然后,以域名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/来测试您的邮箱的邮件评分。我测试了一下,得分为满分10分

结束语

此篇文章是经过实战搭建成功后保留的笔记,我写这篇文章也是为以后搭建iRedMail用来翻阅。

最后编辑:2023年06月16日 ©著作权归作者所有

发表评论