自建邮件服务器-开源集成方案iRedMail
自建邮件服务器-开源集成方案iRedMail
环境
系统 CentOS 7
域名 example.com
安装
设置 hostname
RHEL/CentOS 6,
/etc/sysconfig/network
1
HOSTNAME=mail
CentOS 7
1
hostnamectl set-hostname mail
例如完整域名是 mail.example.com,应该设置 mail
验证主机名
1
hostname -f
设置 host
1
127.0.0.1 mail.example.com mail localhost localhost.localdomain
FQDN 主机名列在第一个,短主机名列在第二个
设置 SELinux
查看现状态
iRedMail 不支持 SELinux,所以需要在 /etc/selinux/config 文件里禁用它
1
SELINUX=disabled
如果不希望禁用 SELinux,可以设置为让它打印警告信息但不强制限制
1
SELINUX=permissive
上传最新版 iRedMail 安装包
解压 iRedMail
安装解压工具
1
yum install bzip2
解压
1
cd /program
1
tar xjf iRedMail-x.y.z.tar.bz2
运行安装程序
1
2cd /root/iRedMail-x.y.z/
bash iRedMail.sh安装过程
以下是官方安装过程
- 欢迎和感谢使用
- 指定用于存储用户邮箱的路径。默认是
/var/vmail/
。
- 选择用于存储邮件账号的数据库。
Note
各个数据库之间没有太大区别,建议使用自己熟悉的数据库,便于后期维护。
- 如果选择 OpenLDAP 数据库用于存储邮件账号,安装程序会要求你输入 LDAP 前缀:
MySQL/MariaDB/PostgreSQL 用户
如果选择 MySQL/MariaDB/PostgreSQL 用于存储邮件账号, 安装程序会为数据库的 root 用户生成一个随机的强密码,安装完成后可以在
iRedMail.tips
文件里找到。- 添加第一个邮件域名
这里填 example.com
- 设置邮件管理员的密码
Note
该账号即是邮件管理员,也是普通的邮件账号,可以登录管理后台和 webmail。
- 可选的组件
回答完上面的几个问题之后,安装程序给出本次安装的基本信息并要求确认是否实际 执行安装,请输入
y
或Y
并按回车键确认,或n
,N
并按回车键中止安装。
安装完成后你必须知道的几个重要事项
- 邮件服务器最薄弱的环节是用户的弱密码,所以请一定强制你的用户使用强度高的密码。
- 阅读 /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> 替换为实际的 服务器地址。
- Roundcube webmail: https://mail.example.com/mail/
- SOGo Groupware: https://mail.example.com/SOGo
- Web 管理后台: httpS://mail.example.com/iredadmin/
- Awstats: httpS://mail.example.com/awstats/awstats.pl?config=web (or
?config=smtp
for SMTP log)
DNS 设置
SPF
SPF 记录是一种域名服务 (DNS) 记录,可确定允许哪些邮件服务器代表您的域来发送电子邮件
这里说几个常用的:
- a:所有该域名的A记录都为通过,a不指定的情况下为当前域名
- ip4:指定通过的IP
- mx:mx记录域名的A记录IP可以发邮件
- all:结束标志,“-”表示只允许设置的记录为通过,“~”表示失败,通常用于测试,“+”表示忽略SPF
DKIM
centos6
1 |
|
centos7
1 |
|
复制结果,添加到DNS,主机记录为dkim._domainkey
,TXT
类别
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 |
|
如果看到了PTR记录为你的域名那就说明成功了。
测试工具
iRedmail 主要组件
- Apache
- Nginx
- PHP
- MySQL
- OpenLDAP
- Postfix
- Dovecot
- Amavisd
- ClamAV
- SpamAssassin
- Policyd
- Pysieved
- Roundcube
- Awstats 6.9