导读
对于很多站长来说,拥有一个属于自己的域名邮箱是一件理所当然的事,而对于域名邮箱,一般来说是直接使用各大服务商提供的服务,比如 腾讯云、阿里云、或者 Google 等等,但是否想过搭建一个属于自己的私人域名邮箱服务器呢?
本文将讲解如何在自己的服务器上搭建一个属于自己的邮件服务器,本次选择使用 FreeBSD 作为服务器,使用 iRedMail 作为搭建程序。
准备
在开始搭建前,请先确认您具备了以下条件:
- 一台服务器或VPS(最低 2GB 内存)
- 一个拥有管理权限的域名
- 一个独立的公网 IPv4 地址(支持设置 rDNS 解析)
- 一定的命令行操作基础
系统安装
本次操作,依然在 Proxmox 内进行,由于 FreeBSD 属于 Unix 类系统,所以无法在 Proxmox 中直接以 LXC 方式创建,需要创建为 KVM,首先将 FreeBSD 镜像下载到 Proxmox 服务器 /var/lib/vz/template/iso 目录中,随后跟着下面图示开始创建虚拟机。
选择下载的 FreeBSD 安装镜像文件,并设置类型为 Other
选择硬盘总线设备为 VirtIO,其余设置请根据自身需求进行设置,这里推荐内存最低 4GB 以上。
配置完成后可启动虚拟机,进入安装引导,安装过程略过,注意设置自己的主机名为 mail.free.gd 或 mx.free.gd 这样的格式,不要直接使用根域名
重启完成安装,并登录系统执行以下命令:
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
根据提示完成配置,由于安装时忘记截图,这里直接使用官方的图片
这里可设置为根域名
默认管理员帐号为 postmaster@domain.com 且无法修改(domain.com 为您刚才设置的邮件域名)
FreeBSD 版本只有 iRedAdmin、Roundcubemail、SOGo
输入 y 确认安装
完成后重启服务器
解析设置
此时您已经完成了系统的搭建,若尝试发送或接收邮件,会发现无法实现,这是因为咱们还没有完成域名解析的工作。
此处以一下数据作为演示:
根域名 free.gd
邮件域名 mail.free.gd
公网地址 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:dmarc@free.gd,检测方式:
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 分的满分,这样就可以保证邮件发送后不会进入对方的垃圾邮箱内,非常完美!