运行自己的邮件服务器有很多好处。它允许您管理邮箱和附件的大小,运行每小时/每日电子邮件备份,查看邮件日志,并允许您自由使用任何可用的域名。缺点通常是安装所有必要部件的深入且有时复杂的过程。本指南使用简化的流程,即iRedMail安装脚本,并且应该让您在15分钟内启动并运行邮件服务器。
在开始本指南之前,您应该知道:
本指南假设您已按照Linode 入门文档进行操作如果尚未执行此操作,请阅读本指南,并在完成“设置主机名”部分后返回此处。
本指南中所需的步骤需要root权限。请务必root
使用sudo前缀执行以下步骤。有关权限的更多信息,请参阅我们的用户和组指南。
DNS MX记录告诉互联网在哪里发送针对您域的电子邮件。在您的Linode可以接收域中地址的电子邮件之前,必须为该域创建MX记录,指向您的Linode的IP地址。可以在Linode DNS记录简介页面上找到示例MX记录。
1 首先,运行以下命令确保您的Linode是最新的:
apt-get update apt-get upgrade
2 检查您的主机名以确保具有子域的FQDN:
hostname hostname -f
iRedMail要求您具有格式正确的完全限定域名(FQDN)。格式是hostname.domain.com
。如果您的主机名只是您的域名,则iRedMail将无法正确安装。邮件服务器的常用主机名包括mail
和mx
。
user@hostname:~$ hostname mail user@hostname:~$ hostname -f mail.domain.com
3 下载最新版本的iRedMail。截至2014年9月16日的当前版本为0.8.7,可通过输入以下内容进行下载:
cd /root/
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.8.7.tar.bz2
4 解压缩包并运行脚本:
tar xjf iRedMail-0.8.7.tar.bz2 cd iRedMail-0.8.7 bash iRedMail.sh
安装的其余部分是指屏幕上确认默认选项和选择。除了后端和主机名选择之外,大多数用户只需确认默认选项并继续安装。
注意接下来的几个步骤直接来自iRedMail Ubuntu安装步骤。
5 按“enter”键对安装iRedMail说“是”。注意:在步骤#12之前的任何时候按下Ctrl-C将退出安装过程。
6 按“enter”接受/ var / vmail作为默认邮件存储目录
7 使用“向上”和向下箭头键突出显示您的首选后端。按“空格”选择首选选项,然后按“输入”。如果您不确定,请选择MySQL
。
8 为MySQL root管理员选择密码,然后按“enter”。务必将密码提交到内存或纸张。
9 输入您的域名作为第一个虚拟域名,然后按“输入”。
10 默认情况下,iRedMail将postmaster@yourdomain.com配置为默认管理员。输入iRedMail管理员的密码,然后按“Enter”。
11 下一个屏幕列出了要包含在MySQL后端中的可选组件。虽然这些都不是必需的,但我们建议安装所有组件,因为每个组件的好处都会增加邮件服务器的功能和安全性。
12 此步骤表示配置已完成,引用SENSITIVE配置文件的位置,并询问(y或n)是否要继续。输入“y”。
13 然后,安装程序将下载并安装相应的文件。完成后,您将收到一个提示,询问您是否要使用iRedMail的防火墙规则/etc/default/iptables
,并识别您的SSHD端口。键入“y”表示接受,如果要手动配置防火墙,请键入“n”。
14 键入“y”后,安装屏幕将询问您是否要重新启动防火墙。输入“y”。
15 安装现已完成!虽然屏幕的下半部分充满了有用的URL信息和iRedMail提示文件的位置,但有几封电子邮件将在postmaster@yourdomain.com的收件箱中等待。
16 重新启动Linode并导航到https://mail.yourdomain.com/mail
“postmaster@yourdomain.com”并登录以检索必要的信息。
17 作为安全预防措施,我们将删除配置文件。成功安装iRedMail后不再需要此文件,并且包含有关邮件服务器配置的敏感信息(用户名/密码)。
rm /root/iRedMail-0.8.7/config
https://yourdomain.com/iredadmin
postmaster@yourdomain.com用户并登录。Add
下拉列表并选择User
。默认情况下,iRedMail为邮件服务器和Web服务器生成密钥和自签名证书。为避免其他电子邮件服务器将来自我们服务器的电子邮件标记为垃圾邮件,我们将安装可信证书。
获取可信证书的过程超出了本指南的范围。您可以按照获取商业SSL证书指南来获取证书。
下一节假设你手头有.key和.crt(或.pem)文件,并准备好了。
注意请务必申请涵盖子域名(mail.yourdomain.com)或域名通配符的证书,以便涵盖所有子域名。
首次登录邮局主管帐户后,您应该有两封电子邮件等着您。第一个标题为“有用链接iRedMail”,第二个标题为“此iRedMail安装的详细信息。”在第二封电子邮件中,我们需要各种文件路径,因为我们将更换SSL证书并需要知道我们的DNS TXT条目的DKIM公钥。首先,证书更换。
注意如果证书颁发者使用的是
.pem
文件而不是.crt
,请务必在下面的说明中替换文件扩展名。
/etc/ssl/certs/
密钥位于/etc/ssl/private/
。mv mail.yourdomain.com.crt /etc/ssl/certs/ mv mail.yourdomain.com.key /etc/ssl/private//etc/apache2/sites-available/default-ssl.conf1 2
SSLCertificateFile /etc/ssl/certs/mail.yourdomain.com.crt SSLCertificateKeyFile /etc/ssl/private/mail.yourdomain.com.keysmtpd\_tls\_cert\_file = /etc/ssl/certs/mail.yourdomain.com.crt smtpd\_tls\_key\_file = /etc/ssl/private/mail.yourdomain.com.keyssl\_cert = </etc/ssl/certs/mail.yourdomain.com.crtundefinedssl\_key = </etc/ssl/private/mail.yourdomain.com.keyservice apache2 restart service dovecot restart service postfix restart如果在这些命令期间遇到错误消息,请返回并确认证书的正确路径。default-ssl.conf
证书和密钥的位置:main.cf
证书和密钥的位置:
/etc/postfix/main.cf中dovecot.conf
证书和密钥的位置:
/etc/dovecot/dovecot.conf本节介绍在DNS条目中插入SPF和DKIM记录。SPF记录允许我们指定从我们的域向特定IP地址发送邮件的权限。DKIM记录是另一种证明电子邮件有效性的方法,它允许接收方根据邮件服务器发送的每封电子邮件消息中包含的DKIM密钥检查公钥或邮件服务器的DNS TXT记录。
hostname | ip address/url | record type | ttl -------- | ----------------------------- | ----------- | --- @ | v=spf1 ip4:12.34.56.78 -all | txt | 1800
hostname | ip address/url | record type | ttl -------------- | ------------------- | ----------- | --- dkim._domainkey | v=DKIM1; p=MIGFdfs… | txt | 1800
amavisd-new testkeys
你应该收到=> pass
输出。
要设置rDNS,请查看DNS管理器指南的“ 设置反向DNS”部分。这是可选的,但为某些垃圾邮件过滤器的邮件服务器提供额外的可信度。
Cluebringer(又名PolicyD v2)是我们的邮件传输代理Postfix的策略服务器实用程序。它提供了一个基于Web的界面(示例),您可以在其中微调应用于Postfix的策略。有关详细信息,请参阅Policy D 文档。
AWStats通过一些基于Web的(或命令行)统计图快速分析和显示日志文件/服务器活动。使用下面列出的配置,它将显示已发送的电子邮件数,电子邮件的总大小,发件人和收件人,时间(每小时/每日/每月)和SMTP错误代码。这里可以看到一个例子。有关详细信息,请参阅AWStats 文档。
由于“mod-auth-mysql”无法与Apache 2.4一起使用,默认安装无法使用该模块登录Cluebringer或AWStats。以下是修复,也可以在此 iRedMail论坛帖子中找到。
apt-get install libaprutil1-dbd-mysql
a2enmod dbd authn\_dbd
apache2.conf
通过将下面的文本块添加到文件末尾进行编辑。确保注释掉文件末尾的现有Auth_MySQL行。#MySQL auth (mod_dbd, libaprutil1-dbd-mysql)
<IfModule mod_dbd.c>
DBDriver mysql
DBDParams "host=127.0.0.1 dbname=vmail user=vmail pass=(SUBSTITUTE WITH YOUR PASSWORD: see in your iRedMail.tips file)"
DBDMin 1
DBDKeep 8
DBDMax 20
DBDExptime 300
</IfModule><Directory /usr/lib/cgi-bin/>
DirectoryIndex awstats.pl
Options ExecCGI
AuthType Basic
AuthName "Authorization Required"
##############################
# mod_auth_mysql (deprecated)#
##############################
# AuthBasicAuthoritative Off
# AuthUserFile /dev/null
#
# # Database related.
# AuthMySQL_Password_Table mailbox
# Auth_MySQL_Username_Field username
# Auth_MySQL_Password_Field password
#
# # Password related.
# AuthMySQL_Empty_Passwords off
# AuthMySQL_Encryption_Types Crypt_MD5
# Auth_MySQL_Authoritative On
# #AuthMySQLUserCondition "isglobaladmin=1"
#################
# mod_authn_dbd #
#################
# Password related.
AuthBasicProvider dbd
AuthDBDUserPWQuery "SELECT password FROM mailbox WHERE mailbox.username=%s"
Order allow,deny
Allow from all
Require valid-user
</Directory><Directory /usr/share/postfix-cluebringer-webui/webui/>
DirectoryIndex index.php
AuthType basic
AuthName "Authorization Required"
##############################
# mod_auth_mysql (deprecated)#
##############################
# AuthMYSQL on
# AuthBasicAuthoritative Off
# AuthUserFile /dev/null
#
# # Database related.
# AuthMySQL_Password_Table mailbox
# Auth_MySQL_Username_Field username
# Auth_MySQL_Password_Field password
#
# # Password related.
# AuthMySQL_Empty_Passwords off
# AuthMySQL_Encryption_Types Crypt_MD5
# Auth_MySQL_Authoritative On
#################
# mod_authn_dbd #
#################
# Password related.
AuthBasicProvider dbd
AuthDBDUserPWQuery "SELECT password FROM mailbox WHERE mailbox.username=%s"
Order allow,deny
Allow from all
Require valid-user
</Directory>awstats.conf
以镜像下面的示例文本,添加mod_authn_dbd
部分并注释掉该Auth_MySQL
部分。
/etc/apache2/conf-available/awstats.conf cluebringer.conf
以镜像下面的示例文本,添加mod_authn_dbd
部分和注释Auth_MySQL
部分)。
/etc/apache2/conf-available/cluebringer.conf service apache2 restart
默认情况下,Cluebringer启用灰名单功能。虽然灰名单的实现确实可以保护邮件服务器不接收垃圾邮件,但是它的操作会产生意想不到的后果。这是通过从一个着名的“免费”电子邮件帐户发送几封电子邮件到我的新邮件服务器来测试的。大多数“免费”电子邮件SMTP服务由SEVERAL SMTP服务器提供,当您从服务器接收到4XX回复代码时,由于SMTP服务器的主机名和IP未“已知”,因此会重新传输该电子邮件。但是,通常,重新传输的电子邮件来自另一个主机或来自同一主机,但来自另一个IP地址。Cluebringer的灰名单特征严重延迟或完全否定了一些测试电子邮件。
因此,作者建议关闭此模块。请注意,由于被禁用,在作者的邮件服务器上没有观察到电子邮件的延迟或拒绝。此外,邮件服务器尚未收到任何垃圾邮件。
service postfix-cluebringer restart
作为最后的测试,您可以使用诸如Mail Tester这样的服务来确保您的记录被正确配置。如果你严格遵循了这个指南,你应该会在Mail Tester网站上得到10/10的分数。如果没有,Mail Tester将向您提供一个报告,指出您的配置需要改进的部分。
注意:虽然一些DNS记录几乎立即更新,但更新最多可能需要24小时才能传播。如果您的记录尚未更新,您可能会在这些测试中获得较低分数。
熟悉iRedMail电子邮件和网站中列出的各种文件、配置和设置,并开始向邮件服务器添加用户。快乐地发邮件吧!
原文作者:Nick Reichley
原文地址:https://www.linode.com/docs/email/iredmail/install-iredmail-on-ubuntu/