Mail-in-a-Box是一个开源软件包,可以轻松将您的Ubuntu服务器转换为多个域的全栈电子邮件解决方案。
为了保护服务器,Mail-in-a-Box使用Fail2ban和SSL证书(默认情况下为自签名)。它会自动配置UFW防火墙,并打开所有必需的端口。其反垃圾邮件和其他安全功能包括灰名单,SPF,DKIM,DMARC,机会主义TLS,强密码,HSTS和DNSSEC(与DANE TLSA)。
Mail-in-a-Box旨在处理SMTP,IMAP / POP,垃圾邮件过滤,网络邮件甚至DNS,作为其一体化解决方案的一部分。由于服务器本身正在处理您的DNS,因此您将获得针对邮件优化的现成DNS解决方案。基本上,这意味着您将获得电子邮件(包括SPF和DKIM记录)的复杂DNS记录,而无需手动研究和设置它们。您可以根据需要调整DNS设置,但默认设置应该适用于托管自己邮件的大多数用户。
本教程介绍如何在运行Ubuntu 14.04 x86-64的腾讯云CVM上设置Mail-in-a-Box。
Mail-in-a-Box非常关注可用的资源。具体来说,它需要:
sudo
命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。在RAM要求中,如果不满足RAM要求,安装脚本将使用以下输出中止:
Your Mail-in-a-Box needs more memory (RAM) to function properly.
Please provision a machine with at least 768 MB, 1 GB recommended.
This machine has 513 MB memory
在开始之前,请确保您有一个带1 GB RAM的Ubuntu服务器。
对于本文,我们假设您要为其设置电子邮件服务器的域是example.com。当然,您应该用您的真实域名替换它。
在此步骤中,您将学习如何正确设置主机名(如果尚未设置)。然后你将修改/etc/hosts
文件以匹配。
从此处开始,假设您已登录到您的腾讯云帐户,并使用以下方式通过SSH以sudo用户身份登录服务器:
ssh sammy@your_server_ip
正式地,建议将服务器的主机名设置为box.example.com
。这也应该是您在腾讯云仪表板上显示的腾讯云CVM的名称。如果腾讯云CVM的名称仅设置为域名,请通过单击腾讯云CVM的名称重命名,然后单击设置>重命名。
按照建议设置腾讯云CVM的名称后,/etc/hostname
通过键入以下命令验证它与文件中显示的名称是否匹配:
hostname
输出应该是这样的:
box.example.com
如果输出与腾讯云仪表板上显示的名称不匹配,请键入以下内容进行更正:
sudo echo "box.example.com" > /etc/hostname
需要修改该/etc/hosts
文件以将主机名与服务器的IP地址相关联。要编辑它,请使用nano或您喜欢的编辑器打开它:
sudo nano /etc/hosts
修改IPv4地址,使其读取:
127.0.0.1 localhost.localdomain localhost
your_server_ip box.example.com box
您可以准确复制该localhost.localdomain localhost
行。在第二行使用您自己的IP和域。
保存并关闭文件。
虽然可以使用域名注册商提供的外部DNS服务来处理服务器的所有DNS解析,但强烈建议将DNS职责委派给Mail-in-a-Box服务器。
这意味着您在使用Mail-in-a-Box时需要设置胶水记录。使用粘合记录可以更安全,更正确地设置服务器的电子邮件。使用此方法时,将所有 DNS职责委派给Mail-in-a-Box服务器非常重要,即使有使用目标域的活动网站也是如此。
如果您的域中有活动网站,请确保在Mail-in-a-Box服务器上设置适当的其他DNS记录。否则,您的域名将无法解析为您的网站。您可以复制现有的DNS记录,以确保一切正常。
设置粘合记录(也称为私有名称服务器,虚荣名称服务器和子名称服务器)必须在您的域名注册商处完成。
要设置粘合记录,必须完成以下任务:
注意:必须正确完成这两项任务。否则,服务器将无法用作邮件服务器。(或者,您可以在不同的名称服务器上设置所有适当的MX,SPF,DKIM等记录。)
此过程涉及的确切步骤因域名注册商而异。如果本文中给出的步骤与您的步骤不符,请与您的域名注册商的技术支持团队联系以获取帮助。
示例:Namecheap
首先,登录您的域名注册商帐户。您的域名注册商帐户信息中心的外观取决于您使用的域名注册商。该示例使用Namecheap,因此如果您拥有Namecheap帐户,本教程中使用的步骤和图像与您将找到的完全相同。如果您使用的是其他注册商,请致电他们的技术支持或浏览他们的知识库,以了解如何创建胶水记录。
登录后,找到您管理的域列表,然后单击目标域; 也就是说,您将用于设置邮件服务器的那个。
查找允许您修改其名称服务器地址信息的菜单项。在Namecheap仪表板上,该菜单项在“ 高级选项”菜单类别下称为“名称服务器注册 ” 。你应该得到一个如下所示的界面:
我们将为服务器设置两个粘合记录:
由于只提供了一个自定义字段,因此必须按顺序进行配置。如下图所示,键入出现数字1的ns1.box,然后在“IP地址”字段中键入Mail-in-a-Box服务器的IP地址(由数字2表示)。最后,单击Add Nameservers按钮添加记录(编号3)。
对其他记录重复此操作,确保使用ns2.box以及相同的域名和IP地址。
创建两个记录后,查找另一个菜单条目,其中显示将DNS传输到Webhost。你应该得到一个看起来像下图所示的窗口。选择自定义DNS选项,然后键入前两个字段:
单击以应用更改。
注意:您在此处键入的自定义DNS服务器应与您刚为Nameserver注册指定的服务器相同。
对DNS的更改需要一些时间来传播。这可能需要长达24小时,但测试域的更改只需要大约15分钟即可传播。
您可以通过访问whatsmydns.net来验证是否已传播DNS更改。搜索目标域的A和MX记录。如果它们与您在此步骤中设置的匹配,则可以继续执行步骤4.否则,请再次执行此步骤或联系您的注册商以获取帮助。
在此步骤中,您将运行脚本以在腾讯云CVM上安装Mail-in-a-Box。Mail-in-a-Box安装脚本会安装运行完整电子邮件服务器所需的每个软件包,因此您只需运行一个简单的命令并按照提示操作即可。
假设您仍然登录到服务器,请移至您的主目录:
cd ~
安装Mail-in-a-Box:
curl -s https://mailinabox.email/bootstrap.sh | sudo bash
该脚本将在下图中提示您介绍性消息。按ENTER
。
现在,系统将提示您创建第一个电子邮件地址,稍后您将使用该电子邮件地址登录系统。您可以在您的域中输入contact@example.com
或其他电子邮件地址。接受或修改建议的电子邮件地址,然后按ENTER
。之后,系统将提示您指定并确认电子邮件帐户的密码。
电子邮件设置完成后,系统将提示您确认服务器的主机名。它应该与您在步骤1中设置的匹配,在此示例中为box.example.com。按ENTER
。
接下来,系统会提示您选择您所在的国家/地区。使用箭头键向上或向下滚动选择它。在做出正确选择后按ENTER
。
在某些时候,你会得到这个提示:
Okay. I'm about to set up contact@example.com for you. This account will also have access to the box's control panel.
password:
指定默认电子邮件帐户的密码,该帐户也是默认的Web界面管理员帐户。
安装成功完成后,您应该看到一些安装后的输出,其中包括:
mail user added
added alias hostmaster@box.example.com (=> administrator@box.example.com)
added alias postmaster@example.com (=> administrator@box.example.com)
added alias admin@example.com (=> administrator@box.example.com)
updated DNS: example.com
web updated
alias added
added alias admin@box.example.com (=> administrator@box.example.com)
added alias postmaster@box.example.com (=> administrator@box.example.com)
-----------------------------------------------
Your Mail-in-a-Box is running.
Please log in to the control panel for further instructions at:
https://your_server_ip/admin
You will be alerted that the website has an invalid certificate. Check that
the certificate fingerprint matches:
1F:C1:EE:C7:C6:2C:7C:47:E8:EF:AC:5A:82:C1:21:67:17:8B:0C:5B
Then you can confirm the security exception and continue.
现在,您将登录Mail-in-a-Box的管理界面,并了解您的新电子邮件服务器。要访问管理界面,请使用安装后输出中提供的URL。这应该是:
https://your_server_ip/admin#
由于使用了HTTPS和自签名证书,因此您将在浏览器窗口中收到安全警告。您必须创建安全例外。如何完成取决于您正在使用的浏览器。
例如,如果您使用的是Firefox,则会出现一个浏览器窗口,其中包含下一张图片中显示的熟悉警告。
要接受证书,请单击“ 了解风险”按钮,然后单击“ 添加例外”按钮。
在下一个屏幕上,您可以验证证书指纹是否与安装后输出中的指纹匹配,然后单击“ 确认安全例外”按钮。
创建例外后,使用安装期间创建的电子邮件帐户的用户名和密码登录。请注意,用户名是完整的电子邮件地址,例如contact@example.com
.
登录时,将启动系统状态检查。Mail-in-a-Box将检查服务器的所有方面,包括胶水记录,是否已正确配置。如果为true,您应该看到绿色海(和一些黄绿色)文本,除了与SSL证书有关的部分,它将是红色的。您可能还会看到有关重启的消息,您可以使用该消息。
注意:如果有关于配置域的错误DNS MX记录的红色输出,则步骤3未正确完成。重新访问该步骤或联系您的注册商技术支持团队寻求帮助。
如果您看到的唯一红色文本是因为SSL证书,恭喜!您现在已经使用Mail-in-a-Box成功设置了自己的邮件服务器。
如果要重新访问此部分(例如,在等待DNS传播之后),则它位于“ 系统”>“状态检查”下。
要访问Webmail界面,请单击顶部导航栏中的“ 邮件”>“说明 ”,然后访问该页面上提供的URL。它应该是这样的:
https://box.example.com/mail
使用您之前设置的电子邮件地址(包括@ example.com部分)和密码登录。
Mail-in-a-box使用Roundcube作为其网络邮件应用程序。尝试将测试电子邮件发送到外部电子邮件地址。然后,回复或发送新邮件到您的Mail-in-a-Box服务器管理的地址。
应该几乎立即收到外发电子邮件,但由于灰名单在Mail-in-a-Box服务器上生效,因此在收到的电子邮件显示之前大约需要15分钟。
如果未正确设置DNS,则无法使用此功能。
如果您既可以发送和接收测试消息,那么您现在正在运行自己的电子邮件服务器。恭喜!
默认情况下,Mail-in-a-box会生成自己的自签名证书。如果要在生产环境中使用此服务器,我们强烈建议您安装官方SSL证书。
然后,从Mail-in-a-Box管理仪表板中,从顶部导航菜单中选择系统> SSL证书。
从那里,使用相应域或子域旁边的“ 安装证书”按钮。将证书和任何链证书复制并粘贴到提供的文本字段中。最后单击Install按钮。
现在,您和您的用户应该能够在没有浏览器警告的情况下访问webmail和管理面板。
您可以轻松地将域和其他电子邮件地址添加到Mail-in-a-Box服务器中。要在新域或现有域中添加新地址,只需在管理仪表板中的“ 邮件”>“用户”中添加另一个电子邮件帐户即可。如果电子邮件地址位于新域,则“邮箱”将自动为其添加适当的新设置。
如果您要添加新域名,请确保在您的域名注册商处将域名的名称服务器设置为ns1.box.example.com和ns2.box.example.com(我们之前为第一个域设置的名称)。您的腾讯云CVM将处理新域的所有DNS。
要查看当前的DNS设置,请访问系统>外部DNS。要添加自己的条目,请访问系统>自定义DNS。
Mail-in-a-Box还提供超出本文范围的功能。它可以作为托管联系人和日历管理器由ownCloud提供。它还可以用于托管静态网站。
有关Mail-in-a-Box的更多信息,请访问项目主页。
更多Ubuntu教程请前往腾讯云+社区学习更多知识。
参考文献:《How To Run Your Own Mail Server with Mail-in-a-Box on Ubuntu 14.04》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。