前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上使用Mail-in-a-Box运行自己的邮件服务器

如何在Ubuntu 14.04上使用Mail-in-a-Box运行自己的邮件服务器

原创
作者头像
谢鸢
修改2018-10-22 11:40:05
4.1K0
修改2018-10-22 11:40:05
举报

介绍

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非常关注可用的资源。具体来说,它需要:

  • 一个Ubuntu 14.04 x86-64 腾讯云CVM
  • 服务器必须至少有768 MB的RAM(建议1 GB)
  • 一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 设置腾讯云CVM时,名称应设置为box.example.com。设置主机名将在本教程后面讨论
  • 我们稍后会详细介绍,但您的域名注册商需要支持设置自定义域名服务器和粘合记录,以便您可以在腾讯云CVM上托管自己的DNS; 术语虚荣名称服务器经常被使用
  • (可选)使用SSL证书代替自签名证书:如何设置此证书取决于你是否拥有可解析该服务器的域名。

在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。当然,您应该用您的真实域名替换它。

第1步 - 配置主机名

在此步骤中,您将学习如何正确设置主机名(如果尚未设置)。然后你将修改/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

第2步 - 修改/ etc / hosts文件

需要修改该/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和域。

保存并关闭文件。

第3步 - 创建胶水记录

虽然可以使用域名注册商提供的外部DNS服务来处理服务器的所有DNS解析,但强烈建议将DNS职责委派给Mail-in-a-Box服务器。

这意味着您在使用Mail-in-a-Box时需要设置胶水记录。使用粘合记录可以更安全,更正确地设置服务器的电子邮件。使用此方法时,将所有 DNS职责委派给Mail-in-a-Box服务器非常重要,即使有使用目标域的活动网站也是如此。

如果您的域中有活动网站,请确保在Mail-in-a-Box服务器上设置适当的其他DNS记录。否则,您的域名将无法解析为您的网站。您可以复制现有的DNS记录,以确保一切正常。

设置粘合记录(也称为私有名称服务器虚荣名称服务器子名称服务器)必须在您的域名注册商处完成。

要设置粘合记录,必须完成以下任务:

  1. 设置胶水记录本身。这涉及创建自定义名称服务器地址,该地址将服务器的完全限定主机名以及ns1ns2前缀与其IP地址相关联。这些应该如下:
  • ns1.box。example.com 你的服务器 ip
  • ns2.box。example.com 你的服务器 ip
  1. 将DNS职责转移到Mail-in-a-Box服务器。
  • example.com NS ns1.box。example.com
  • example.com NS ns2.box。example.com

注意:必须正确完成这两项任务。否则,服务器将无法用作邮件服务器。(或者,您可以在不同的名称服务器上设置所有适当的MX,SPF,DKIM等记录。)

此过程涉及的确切步骤因域名注册商而异。如果本文中给出的步骤与您的步骤不符,请与您的域名注册商的技术支持团队联系以获取帮助。

示例:Namecheap

首先,登录您的域名注册商帐户。您的域名注册商帐户信息中心的外观取决于您使用的域名注册商。该示例使用Namecheap,因此如果您拥有Namecheap帐户,本教程中使用的步骤和图像与您将找到的完全相同。如果您使用的是其他注册商,请致电他们的技术支持或浏览他们的知识库,以了解如何创建胶水记录。

登录后,找到您管理的域列表,然后单击目标域; 也就是说,您将用于设置邮件服务器的那个。

查找允许您修改其名称服务器地址信息的菜单项。在Namecheap仪表板上,该菜单项在“ 高级选项”菜单类别下称为“名称服务器注册 ” 。你应该得到一个如下所示的界面:

我们将为服务器设置两个粘合记录:

  • ns1.box.example.com
  • ns2.box.example.com

由于只提供了一个自定义字段,因此必须按顺序进行配置。如下图所示,键入出现数字1的ns1.box,然后在“IP地址”字段中键入Mail-in-a-Box服务器的IP地址(由数字2表示)。最后,单击Add Nameservers按钮添加记录(编号3)。

对其他记录重复此操作,确保使用ns2.box以及相同的域名和IP地址。

创建两个记录后,查找另一个菜单条目,其中显示将DNS传输到Webhost。你应该得到一个看起来像下图所示的窗口。选择自定义DNS选项,然后键入前两个字段:

  • ns1.box.example.com
  • ns2.box.example.com

单击以应用更改。

注意:您在此处键入的自定义DNS服务器应与您刚为Nameserver注册指定的服务器相同。

对DNS的更改需要一些时间来传播。这可能需要长达24小时,但测试域的更改只需要大约15分钟即可传播。

您可以通过访问whatsmydns.net来验证是否已传播DNS更改。搜索目标域的AMX记录。如果它们与您在此步骤中设置的匹配,则可以继续执行步骤4.否则,请再次执行此步骤或联系您的注册商以获取帮助。

第4步 - 安装Mail-in-a-Box

在此步骤中,您将运行脚本以在腾讯云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.

步骤5 - 登录邮箱仪表板

现在,您将登录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传播之后),则它位于“ 系统”>“状态检查”下

第6步 - 访问Webmail和发送测试电子邮件

要访问Webmail界面,请单击顶部导航栏中的“ 邮件”>“说明 ”,然后访问该页面上提供的URL。它应该是这样的:

  • https://box.example.com/mail

使用您之前设置的电子邮件地址(包括@ example.com部分)和密码登录。

Mail-in-a-box使用Roundcube作为其网络邮件应用程序。尝试将测试电子邮件发送到外部电子邮件地址。然后,回复或发送新邮件到您的Mail-in-a-Box服务器管理的地址。

应该几乎立即收到外发电子邮件,但由于灰名单在Mail-in-a-Box服务器上生效,因此在收到的电子邮件显示之前大约需要15分钟。

如果未正确设置DNS,则无法使用此功能。

如果您既可以发送和接收测试消息,那么您现在正在运行自己的电子邮件服务器。恭喜!

(可选)步骤7 - 安装SSL证书

默认情况下,Mail-in-a-box会生成自己的自签名证书。如果要在生产环境中使用此服务器,我们强烈建议您安装官方SSL证书。

然后,从Mail-in-a-Box管理仪表板中,从顶部导航菜单中选择系统> SSL证书

从那里,使用相应域或子域旁边的“ 安装证书”按钮。将证书和任何链证书复制并粘贴到提供的文本字段中。最后单击Install按钮。

现在,您和您的用户应该能够在没有浏览器警告的情况下访问webmail和管理面板。

结论

您可以轻松地将域和其他电子邮件地址添加到Mail-in-a-Box服务器中。要在新域或现有域中添加新地址,只需在管理仪表板中的“ 邮件”>“用户”中添加另一个电子邮件帐户即可。如果电子邮件地址位于新域,则“邮箱”将自动为其添加适当的新设置。

如果您要添加新域名,请确保在您的域名注册商处将域名的名称服务器设置为ns1.box.example.comns2.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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 准备
      • 第1步 - 配置主机名
        • 第2步 - 修改/ etc / hosts文件
          • 第3步 - 创建胶水记录
            • 第4步 - 安装Mail-in-a-Box
              • 步骤5 - 登录邮箱仪表板
                • 第6步 - 访问Webmail和发送测试电子邮件
                  • (可选)步骤7 - 安装SSL证书
                    • 结论
                    相关产品与服务
                    SSL 证书
                    腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档