使用iRedMail在Ubuntu 20.04上搭建域名邮局服务
试过几个系统,最后发现Ubuntu 20.04上安装和运行iRedMail兼容是最好的,而且出错、踩坑最少的。
iRedMail是成熟的邮件服务器系统,它拥有优秀的性能,全面实用的功能,且搭建方便、社区支持良好。今天我们介绍在Ubuntu 20.04 LTS 64 bit操作系统中安装并配置iRedMail邮件服务器系统,实现域名邮箱、垃圾邮件过滤、病毒查杀等等实用功能。
准备工具
1、干净的 VPS 一台,内存最好大于 1 GB。
2、VPS 最好支持 PTR Records,演示用的 VPS 来自 搬瓦工
3、域名一个,推荐托管 cloudflare (解析生效快)
4、规划好作为邮件服务器的域名,演示用 mail.bozai.us
,把该域名解析到 VPS IP。
搭建 iRedMail 邮件服务器
设置 VPS 以及系统
更新系统
apt update -y
设置 VPS 主机名
我们规划邮局的域名为 mail.bozai.us
,所以,我们需要对 VPS 的主机名进行设置。
首先,需要编辑 /etc/hosts
文件,找到含有你的 VPS IP 地址的那一行;如果没有,则添加一行。内容如下:
127.0.0.1 mail.bozai.us mail
其中, 127.0.0.1 可换为你的服务器 IP 地址,后面依次填入长主机名和短主机名,切记不可填反。
然后,我们找到 VPS 的 /etc/hostname
文件,编辑里面的内容为 mail
(域名的前缀)
这样,就设置好了主机名。重启 VPS。
此时我们检查一下是否设置正确:
执行:hostname
此时我们应该只能看到短主机名 mail
. 如果你看到了长主机名 mail.bozai.us
, 说明之前设置错误,请重新检查上述步骤。
执行:hostname -f
此时,我们应该只能看到长主机名 mail.bozai.us
这样,我们就全部设置好了主机名(hostname), 可以进行接下来的其他操作了
下载并安装 iRedMail
执行:
apt-get install git -y
git clone https://github.com/iredmail/iRedMail.git
cd iRedMail
bash iRedMail.sh
系统将会自动开始安装。安装过程中会出现下面这些情况,您需要依次根据您自己的信息来设置。
首先,需要指定安装目录,如下图。这里可以保持默认的/var/vmail, 也可以设置为/srv/vmail等,依个人喜好即可;请勿将其设置在/home目录之内。
第二步需要选择是否安装Web服务器。如果您只需要客户端收发信,可以不安装web服务器,其他情况下则建议安装Nginx. 按回车键进入下一步。
第三步要选择使用的数据库。我们这里选择比较简单的MariaDB. 用方向键选择MariaDB, 按空格键选中,然后回车进入下一步。
第四步则要为MariaDB设置root用户密码,输入完毕后按回车继续。
接下来一步非常重要,我们要设置第一个发信域名。如果您的邮件服务器域名为mx.qing.su, 那么这里您可以设置为qing.su
然后,我们为管理员邮箱设置管理密码。请牢记,若您的域名为example.com, 则管理员邮箱地址为[email protected].
最后一步设置,我们需要选择安装的功能。默认选择Roundcubemail + netdata + iRedAdmin + Fail2ban即可。SOGo实测没有Roundcube好用,若您喜欢这个看上去更高端的面板,也可以安装。
设置完毕后,屏幕上会列出来这些信息,我们输入y确认安装。
安装需要大概10分钟左右。全部安装好之后,系统会提示是否设置防火墙规则,我们输入y确认即可。
重启服务器,让邮件服务器生效! 至此,邮件服务器搭建完毕,以下开始设置邮件服务器。
可以通过访问(当然,我们目前还没有解析域名,后面一起解析)
https://你的域名/mail ——邮件登录地址
https://你的域名/netdata ——服务器状态监控
https://你的域名/iredadmin ——邮件服务器后台管理
管理员账号:postmaster@你的域 例如 [email protected]
管理员密码:安装时候设置的密码
以上信息,可以在 /root/iRedMail-1.4.2/iRedMail.tips 文件中查看
配置 iRedMail 邮件服务器
在申请证书之前,请完成 邮件服务器域名 的相关解析,我们规划的邮件服务器地址为 mail.bozai.us
,所以,申请证书之前,需要对把该域名指向 VPS IP。
申请证书
以下是 ACME 脚本申请证书,比较方便
wget -N https://raw.githubusercontent.com/kkkyg/acme-script/main/acme.sh && bash acme.sh
配置证书
申请完毕后,我们首先配置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/mx.qing.su/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mx.qing.su/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/mx.qing.su/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mx.qing.su/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mx.qing.su/chain.pem
保存好之后重新载入Postfix配置文件。
service postfix reload
最后,给Dovecot配置证书。编辑文件/etc/dovecot/dovecot.conf, 找到下面这两行(我这里是第47和48行):
ssl_cert = </etc/ssl/certs/iRedMail.crt
ssl_key = </etc/ssl/private/iRedMail.key
将其替换为您的证书地址:
ssl_cert = </etc/letsencrypt/live/mx.qing.su/fullchain.pem
ssl_key = </etc/letsencrypt/live/mx.qing.su/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 及解析
以下内容,根据需要,替换以下命令行中的相关命令。
设置 PTR 反向解析
其他 VPS 商家,请自行查阅,搬瓦工VPS 打开后台管理,在左边选项 Mail contrlos
里面,找到右边的 PTR Records (Reverse DNS)
,点击 set new record
设置即可。
检测方式:nslookup 8.8.8.8(服务器IP)
设置 A 记录
将 mail.bozai.us
的 A 记录指向你的 VPS 服务器(邮件服务器)
检测方式:nslookup mail.bozai.us
设置 MX 记录
MX 记录就是邮件的解析记录,非常重要的一条记录,配置根域名的 MX 记录为自己的邮件域名地址,优先级为 10
检测方式:nslookup -type=mx bozai.me
设置 SPF 记录
SPF 记录是为了防止垃圾邮件而设定的,告知收件方,从设置的允许列表中发出的邮件都是合法的,设置方式为添加一条根域名的 TXT 解析记录
内容为 v=spf1 mx ~all
检测方式:nslookup -type=txt bozai.us
设置 DKIM记录
DKIM 可说是避免被判定为垃圾邮件的一大利器,DKIM 属于一种类似加密签名的解析记录,只有包含此加密数据,且公钥与密钥相匹配才属于合法邮件,要设置 DKIM 记录,首先要查询 DKIM 信息。
查询DKIM 信息有两种方式:
第一种:在系统中执行命令查看:amavisd showkeys
然后,以域名qing.su为例,请去您的DNS服务提供商那里,添加一条TXT记录,将dkim._domainkey.qing.su解析到”v=DKIM1; p=MIIBIj……………………………………ZX/AwIDAQAB”。请注意,这里的解析值包含了屏幕上给出的引号里面包含的全部内容,但是您需要删除中间多余的引号,将这些字符串拼接起来,仅保留首尾的引号。
第二种:直接查看 /root/iRedMail-1.4.2/iRedMail.tips
文件,里面有相应的 DKIM
将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey
的 TXT 解析,内容就是咱们组合出的文本
测试方式:nslookup -type=txt dkim._domainkey.bozai.us
设置 DMARC 记录
DMARC 记录是当收件方检测到伪造邮件等行为时,将根据您的配置进行操作的一个记录,比如拒绝邮件或放入垃圾邮件以及不做处理等,同时会反馈一份检测报告到配置的邮箱地址内。
添加方法就是增加一条 _dmarc
的 TXT 解析,内容为配置选项,v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
检测方式:nslookup -type=txt _dmarc.bozai.us
写在最后
此篇文章存在演示域名不统一现象,大家阅读时请注意此问题。
暂无评论内容