Fork me on GitHub

自建邮件服务器-开源集成方案iRedMail

环境

系统 CentOS 7

域名 example.com

安装

  1. 设置 hostname

    RHEL/CentOS 6,/etc/sysconfig/network

    1
    HOSTNAME=mail

    CentOS 7

    1
    hostnamectl set-hostname mail

    例如完整域名是 mail.example.com,应该设置 mail

验证主机名

1
hostname -f
  1. 设置 host

    1
    127.0.0.1   mail.example.com mail localhost localhost.localdomain

    FQDN 主机名列在第一个,短主机名列在第二个

  2. 设置 SELinux

    查看现状态

    iRedMail 不支持 SELinux,所以需要在 /etc/selinux/config 文件里禁用它

    1
    SELINUX=disabled

    如果不希望禁用 SELinux,可以设置为让它打印警告信息但不强制限制

    1
    SELINUX=permissive
  3. 上传最新版 iRedMail 安装包

  4. 解压 iRedMail

    安装解压工具

    1
    yum install  bzip2

    解压

    1
    cd /program
    1
    tar xjf iRedMail-x.y.z.tar.bz2
  5. 运行安装程序

    1
    2
    cd /root/iRedMail-x.y.z/
    bash iRedMail.sh
  6. 安装过程

    以下是官方安装过程

    • 欢迎和感谢使用

    img

    • 指定用于存储用户邮箱的路径。默认是 /var/vmail/

    img

    • 选择用于存储邮件账号的数据库。

    Note

    各个数据库之间没有太大区别,建议使用自己熟悉的数据库,便于后期维护。

    img

    • 如果选择 OpenLDAP 数据库用于存储邮件账号,安装程序会要求你输入 LDAP 前缀:

    img

    MySQL/MariaDB/PostgreSQL 用户

    如果选择 MySQL/MariaDB/PostgreSQL 用于存储邮件账号, 安装程序会为数据库的 root 用户生成一个随机的强密码,安装完成后可以在 iRedMail.tips 文件里找到。

    • 添加第一个邮件域名

    img

    这里填 example.com

    • 设置邮件管理员的密码

    Note

    该账号即是邮件管理员,也是普通的邮件账号,可以登录管理后台和 webmail。

    img

    • 可选的组件

    img

    回答完上面的几个问题之后,安装程序给出本次安装的基本信息并要求确认是否实际 执行安装,请输入 yY 并按回车键确认,或 n, N 并按回车键中止安装。

    img

安装完成后你必须知道的几个重要事项

  • 邮件服务器最薄弱的环节是用户的弱密码,所以请一定强制你的用户使用强度高的密码。
  • 阅读 /root/iRedMail-x.y.z/iRedMail.tips 文件,它包含了:
    • 各个 web 程序的访问地址(URL),用户名和密码。
    • 各个组件的配置文件路径。除此之外还应该阅读文档:Locations of configuration and log files of major components.
    • 以及其它一些重要和敏感信息
  • 设置 DNS 记录
  • 如何配置邮件客户端程序
  • 强烈建议获取 SSL 证书以避免每次访问 web 程序时烦人的自签名 SSL 证书警告, Let’s Encrypt 提供免费的 SSL 证书。可根据该文档 配置获取的证书:use a SSL certificate.
  • 如果需要批量添加邮件账号,可以参考以下针对不同数据库的批量建账号的文档: OpenLDAP, MySQL/MariaDB/PostgreSQL。
  • 如果这是一台繁忙的服务器,这里有一些提升性能的建议。

访问 webmail 和其它 web 程序
安装完成后,可以通过以下 URL 访问相关程序。注意:请将 <server> 替换为实际的 服务器地址。

DNS 设置

img

SPF

SPF 记录是一种域名服务 (DNS) 记录,可确定允许哪些邮件服务器代表您的域来发送电子邮件

这里说几个常用的:

  1. a:所有该域名的A记录都为通过,a不指定的情况下为当前域名
  2. ip4:指定通过的IP
  3. mx:mx记录域名的A记录IP可以发邮件
  4. all:结束标志,“-”表示只允许设置的记录为通过,“~”表示失败,通常用于测试,“+”表示忽略SPF

DKIM

centos6

1
amavisd showkeys

centos7

1
amavisd -c /etc/amavisd/amavisd.conf showkeys

复制结果,添加到DNS,主机记录为dkim._domainkeyTXT类别

DMARC

DMARC协议是有效解决信头From伪造而诞生的一种新的邮件来源验证手段,为邮件发件人地址提供强大保护,并在邮件收发双方之间建立起一个数据反馈机制。

  • p:用于告知收件方,当检测到某邮件存在伪造我(发件人)的情况,收件方要做出什么处理,处理方式从轻到重依次为:none为不作任何处理;quarantine为将邮件标记为垃圾邮件;reject为拒绝该邮件。初期建议设置为none。
  • rua:用于在收件方检测后,将一段时间的汇总报告,发送到哪个邮箱地址。
  • ruf:用于当检测到伪造邮件时,收件方须将该伪造信息的报告发送到哪个邮箱地址。

例如我设置的是v=DMARC1;p=reject;rua=xx@lxx.com,意思是拒绝伪造邮件,并且将一段时间的汇总报告发送给我。

添加到DNS

添加TXT记录,主机名:_dmarc,记录值:v=DMARC1;p=reject;rua=xx@lxx.com

PTR

将 mail.xx.com 设置PTR

添加好了以后可以通过以下命令查看

1
dig -x  IP

如果看到了PTR记录为你的域名那就说明成功了。

测试工具

http://www.mail-tester.com/

iRedmail 主要组件

  • Apache
  • Nginx
  • PHP
  • MySQL
  • OpenLDAP
  • Postfix
  • Dovecot
  • Amavisd
  • ClamAV
  • SpamAssassin
  • Policyd
  • Pysieved
  • Roundcube
  • Awstats 6.9

参考

iRedMail doc

邮件服务器添加SPF、DKIM、DMARC、PTR提高送达率

--- Thank you for reading ---
0%