导读

对于很多站长来说,拥有一个属于自己的域名邮箱是一件理所当然的事,而对于域名邮箱,一般来说是直接使用各大服务商提供的服务,比如腾讯、阿里、或者Google或者yandex什么的,但是否想过搭建一个属于自己的私人域名邮箱服务器呢?

本文将讲解如何在自己的服务器上搭建一个属于自己的邮件服务器,本次选择使用 FreeBSD 作为服务器,使用 iRedMail 作为搭建程序。

准备

在开始搭建前,请先确认您具备了以下条件:

  1. 一台服务器或VPS(最低 2GB 内存)
  2. 一个拥有管理权限的域名
  3. 一个独立的公网 IPv4 地址(支持设置 rDNS 解析)
  4. 一定的命令行操作基础

系统安装

本次操作,可乐依然在 Proxmox 内进行,由于 FreeBSD 属于 Unix 类系统,所以无法在 Proxmox 中直接以 LXC 方式创建,需要创建为 KVM,首先将 FreeBSD镜像 下载到 Proxmox 服务器 /var/lib/vz/template/iso 目录中,随后跟着下面图示开始创建虚拟机。

选择下载的 FreeBSD 安装镜像文件,并设置类型为 Other

镜像选择

选择硬盘总线设备为 VirtIO

硬盘配置

设置CPU,根据需求配置核心与线程

CPU配置

内存最低 2GB,推荐 4GB 以上

内存设置

网卡选择之前配置的对外桥接网卡,模型为 VirtIO

网卡配置

若需要使用内网,则可以在配置完成后再添加一块内网网卡

内网网卡

配置完成后可启动虚拟机,进入安装引导

安装引导

注意设置自己的主机名为 mail.free.gdmx.free.gd 这样的格式,不要直接使用根域名

主机名称

网络配置的话按照提示配置自己的网络即可

网卡选择

IPv4

手动配置

配置网络

网络配置完成后,若无特殊需求,直接一路同意,之后会自动下载并安装

下载文件

设置管理员密码

管理员密码

选择需要自启动的服务

启动服务

可以添加一个帐号,因 FreeBSD 默认不允许使用 root 帐号登录 SSH,可乐因为使用 Proxmox,也就无所谓了

添加帐号

重启完成安装,并登录系统执行以下命令:

portsnap fetch extract update
pkg install bash-static

iRedMail 搭建

确认自己的主机名称设置正确

hostname -f

查看结果是否为自己配置的主机名称,如 mail.free.gd,若不是,请修改 /etc/rc.conf,内容为 hostname="mail.domain.com"

下载最新版 iRedMail 安装程序并启动安装

fetch https://github.com/iredmail/iRedMail/archive/1.3.2.tar.gz
tar zxf 1.3.2.tar.gz
cd iRedMail-1.3.2/
bash iRedMail.sh

根据提示完成配置,由于安装时忘记截图,这里直接使用官方的图片

确认安装

邮件保存位置

数据库选择

这里可设置为根域名

根域名

默认管理员帐号为 [email protected] 且无法修改(domain.com 为您刚才设置的邮件域名)

管理员密码

FreeBSD 版本只有 iRedAdminRoundcubemailSOGo

选择组件

输入 y 确认安装

确认安装

完成后重启服务器

解析设置

此时您已经完成了系统的搭建,若尝试发送或接收邮件,会发现无法实现,这是因为咱们还没有完成域名解析的工作。

此处以可乐真实数据作为演示:

  1. 根域名 free.gd
  2. 邮件域名 mail.free.gd
  3. 公网地址 104.216.2.154

rDNS 解析

rDNS 解析也就是 PTR,此项解析是针对 IP 地址的,需要您的服务器或VPS服务商提供此功能才可设置,而设置 rDNS 的作用是为了避免邮件被判定为垃圾邮件。

设置方法就是根据服务商提示自己手动配置或直接要求服务商帮忙配置,检测方法:

dig -x 104.216.2.154 @8.8.8.8
nslookup 104.216.2.154 8.8.8.8

A 记录

mail.free.gd 的 A 记录指向 104.216.2.154,检测方式:

dig mail.free.gd @8.8.8.8
nslookup mail.free.gd 8.8.8.8

MX 记录

MX 记录就是邮件的解析记录,非常重要的一条记录,配置根域名的 MX 记录为自己的邮件域名地址,优先级为 10,检测方式:

dig free.gd MX +noall +answer @8.8.8.8
nslookup -type=mx free.gd 8.8.8.8

SPF 记录

SPF 记录是为了防止垃圾邮件而设定的,告知收件方,从设置的允许列表中发出的邮件都是合法的,设置方式为添加一条根域名的 TXT 解析记录,内容为 v=spf1 mx ~all,检测方式:

dig -t txt free.gd @8.8.8.8
nslookup -type=txt free.gd 8.8.8.8

DKIM 解析

DKIM 可说是避免被判定为垃圾邮件的一大利器,DKIM 属于一种类似加密签名的解析记录,只有包含此加密数据,且公钥与密钥相匹配才属于合法邮件,要设置 DKIM 记录,首先要查询 DKIM 信息,在系统中执行命令查看:

amavisd showkeys

得到这样一组数据

; key#1 2048 bits, i=dkim, d=free.gd, /var/lib/dkim/free.gd.pem
dkim._domainkey.free.gd. 3600 TXT ( "v=DKIM1; p="
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAviCll3+5qwbprg4QdQPe"
"vjYzUm6w8s7hM875GNfUlDmTmDzr53yCZ645/DZZKGssWZ8Dx1HLhzyUz/QSIYG0"
"G987P3SReVutztxWoau1pmdgJ4FxWHdrChsB6Nwlu6hJqAQFe4dxoQ4r0z9SH0mT"
"i6LnlL+Efzlt1vF6VHfTlRxkxgOXfXyOCg4ZaDjL5/+/WXSgYWoW53iV8TzWlaPu"
"KQ+7LJ0w8AM0iBYN1px3fX2fxIAi7Ogakv1L2EMAwQZ/YOxN9tjUKFFOUpJHtXR9"
"LVHn46E3QCYH7T2dub3isjndUu4DirX0boG8u1WV8ipXVc1yl6q9M94I0HROOb+U"
"2QIDAQAB")

将括号内的文本去除引号与空格并相连就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey 的 TXT 解析,内容就是咱们组合出的文本传,测试方式:

dig -t txt dkim._domainkey.free.gd @8.8.8.8
nslookup -type=txt dkim._domainkey.free.gd 8.8.8.8

DMARC 记录

DMARC 记录是当收件方检测到伪造邮件等行为时,将根据您的配置进行操作的一个记录,比如拒绝邮件或放入垃圾邮件以及不做处理等,同时会反馈一份检测报告到配置的邮箱地址内,添加方法就是增加一条 _dmarc 的 TXT 解析,内容为配置选项,比如 v=DMARC1; p=none; rua=mailto:[email protected],检测方式:

dig -t txt _dmarc.free.gd @8.8.8.8
nslookup -type=txt _dmarc.free.gd 8.8.8.8

配置证书

为了更好的体验,避免在使用网页版或客户端时出现不受信任证书的情况,咱们需要使用自己的可受信任的证书,Let’s Encrypt 证书就是非常不错的可受信任免费证书。

证书的申请不再说明,使用 acme.sh 以 DNS 方式验证即可,证书申请后执行命令完成证书替换:

acme.sh --installcert -d mail.free.gd --key-file /etc/ssl/private/iRedMail.key --fullchain-file /etc/ssl/certs/iRedMail.crt --reloadcmd "service postfix reload;service dovecot reload;service nginx reload"

邮件测试

当全部完成,且解析全部生效后,咱们应该进行一次测试,检查自己的邮件服务器是否达到标准,避免被接收方转入垃圾邮件。

打开 https://www.mail-tester.com 网站,会得到一个邮箱地址,使用自己的邮件服务器随意发送一封邮件到此地址,并查看邮件得分即可。

邮件得分

可以看到,这里可乐测试了得到 10 分的满分,这样就可以保证邮件发送后不会进入对方的垃圾邮箱内,非常完美!

最后修改:2020 年 12 月 12 日 05 : 48 PM