介绍
邮寄-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解决方案。 基本上,这意味着您将获得电子邮件的复杂DNS记录(包括SPF和DKIM记录),而无需手动进行研究和设置。 您可以根据需要调整您的DNS设置,但默认值应该很好地为大多数用户托管自己的邮件。
本教程介绍如何在运行Ubuntu 14.04 x86-64的DigitalOcean Droplet上设置Mail-in-a-Box。
先决条件
Mail-in-a-Box对于它可用的资源非常特别。 具体来说,它需要:
- 一个Ubuntu 14.04 x86-64 Droplet
- 服务器必须至少有768 MB的RAM(建议使用1 GB)
- 确保沿中给出的线路服务器已经设置了本教程中 ,包括添加用户Sudo和禁用root用户的密码SSH访问(也可能是所有的用户,如果你的SSH密钥的设置)
- 当设置DigitalOceanDroplet,名称应设置为box.example.com。 设置主机名将在本教程后面讨论
- 我们稍后会详细介绍,但是您的域名注册商需要支持设置自定义Nameservers和粘合记录,以便您可以在Droplet上托管自己的DNS; 术语Vanity nameservers经常使用
- (可选)购买一个SSL证书来代替使用自签名之一; 这是推荐用于生产环境
在RAM要求上,如果不满足RAM要求,安装脚本将中止以下输出:
ErrorYour 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
的文件进行匹配。
从这里开始,假设您已登录到您的DigitalOcean帐户,并通过SSH使用以下方式以sudo用户身份登录到服务器:
ssh sammy@your_server_ip
据官方统计,建议您服务器的主机名设置为box.example.com
。 这也应该是您的DigitalOcean仪表板上显示的Droplet的名称。 如果Droplet的名称设置为刚才的域名,通过点击Droplet的名字重新命名它,然后设置>重命名 。
设置Droplet的名称作为建议后,验证它匹配什么在出现/etc/hostname
文件中键入以下命令:
hostname
输出应该读取这样:
Outputbox.example.com
如果输出与DigitalOcean仪表板上显示的名称不匹配,请通过键入以下内容进行更正:
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责任下放给邮件-IN-A-Box的服务器,即使有一个活跃的网站使用目标域。
如果您的域名上有活动网站,请务必在Mail-in-a-Box服务器上设置相应的其他DNS记录。 否则,您的域不会解析到您的网站。 您可以复制现有的DNS记录,以确保一切都正常工作。
设置胶记录(也称为私人域名服务器 , 域名服务器Vanity ,和子域名服务器 )具有您的域名注册商来完成。
要设置粘贴记录,必须完成以下任务:
- 设置胶水记录本身。 这包括创建服务器的完全限定主机名相关联的自定义域名服务器地址,加上NS1和NS2前缀,其IP地址。 这些应该如下:
- ns1.box。example.com 你的服务器 IP
- ns2.box。example.com 你的服务器 IP
- 将DNS职责转移到Mail-in-a-Box服务器。
- example.com NS ns1.box。example.com
- example.com NS ns2.box。example.com
注意:这两项任务,必须正确完成。 否则,服务器将无法作为邮件服务器。 (或者,您可以在不同的Nameservers上设置所有适当的MX,SPF,DKIM等记录。)
该过程涉及的确切步骤因域注册商而异。 如果本文中给出的步骤不匹配你的, 请联系您的域名注册商的技术支持团队寻求帮助。
示例:Namecheap
首先,登录您的域名注册商的帐户。 您的域名注册商的帐户信息中心的显示方式取决于您使用的域名注册商。 该示例使用Namecheap,因此本教程中使用的步骤和图像与您在使用Namecheap帐户时所找到的步骤和图像完全相同。 如果您使用的是其他注册商,请致电技术支持或通过其知识库了解如何创建胶合记录。
登录后,找到您管理的域的列表,然后单击目标域; 也就是说,您将要使用它来设置邮件服务器。
查找允许您修改其Nameservers地址信息的菜单项。 在仪表板Namecheap,该菜单项被称为高级选项菜单类别下的域名服务器注册 。 您应该得到一个如下所示的界面:
我们将为服务器设置两个粘合记录:
- ns1.box.example.com
- ns2.box.example.com
由于只提供了一个自定义字段,因此必须按顺序进行配置。 如下图,类型ns1.box在这里显示的数字1所示,然后键入IP地址字段邮件-IN-A-Box的服务器(由数字2表示)的IP地址。 最后,点击添加域名服务器按钮添加记录(3号)。
重复其他记录,并确保使用相同的域名和IP地址一起使用ns2.box。
两个记录已被创建后,寻找另一个菜单项,上面写着转移DNS来主机商 。 你应该得到一个窗口,看起来就像下面的图片所示。 选择自定义DNS选项,然后键入前两个字段:
- ns1.box.example.com
- ns2.box.example.com
单击以应用更改。
注意:您在此处键入自定义DNS服务器应该是一样的,你只是域名服务器注册指定的人。
对DNS的更改需要一些时间才能传播。 它最多可能需要24小时,但是对测试域所做的更改只需要大约15分钟。
您可以验证DNS更改已通过访问传播whatsmydns.net 。 搜索目标域的A和MX记录。 如果它们与您在此步骤中设置的内容相同,则可以继续执行第4步.否则,请重新执行此步骤或联系您的注册商寻求帮助。
第4步 - 安装邮箱收件箱
在此步骤中,您将运行脚本以在Droplet上安装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
你做出正确的选择了。
在某些时候,你会得到这个提示:
OutputOkay. 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界面管理帐户。
安装成功完成后,您应该看到一些安装后输出,包括:
Outputmail 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记录的输出,那么第三步没有正确完成。 重新访问此步骤或与注册商的技术支持团队联系以获得帮助。
如果你看到的唯一红色文字是因为SSL证书,恭喜你! 您现在已经使用Mail-in-a-Box成功设置了自己的邮件服务器。
如果你想重温这部分(例如,等待DNS传播之后),它是在系统>状态检查 。
第6步 - 访问网络邮件和发送测试电子邮件
要访问的webmail界面,点击邮件>说明从顶部导航栏,进入所提供的页面上的URL。 应该是这样的:
-
https:// box.example.com /mail
与电子邮件地址登录(包括@ example.com的一部分)和密码,您先前设置。
邮寄一箱使用Roundcube作为其网络邮件应用程序。 尝试将测试电子邮件发送到外部电子邮件地址。 然后,向由Mail-in-a-Box服务器管理的地址回复或发送新消息。
发送的电子邮件应该几乎立即被接收,但是因为在邮箱服务器上有效的灰名单,大约需要15分钟才能收到电子邮件。
如果DNS未正确设置,这将无法正常工作。
如果您可以发送和接收测试消息,则现在正在运行您自己的电子邮件服务器。 恭喜!
(可选)第7步 - 安装SSL证书
默认情况下,邮箱收件箱生成自己的自签名证书。 如果要在生产环境中使用此服务器,我们强烈建议安装官方SSL证书。
首先, 购买证书 。 或者,要学习如何创建一个免费的签名的SSL证书,请参阅如何设置Apache与自由签名SSL证书上的VPS教程。
然后,从Mail-IN-A-Box的管理仪表板,选择系统> SSL证书从顶部导航菜单。
从那里,使用安装证书按钮旁边到适当的域或子域。 将您的证书和任何链证书复制并粘贴到提供的文本字段中。 最后点击安装按钮。
现在,您和您的用户应该能够访问webmail和管理面板,而不会显示浏览器警告。
结论
可以轻松地将域和其他电子邮件地址添加到您的Mail-in-a-Box服务器。 要在新的或现有的域添加一个新的地址,只需要添加其它电子邮件帐户,从邮件>用户在管理仪表板。 如果电子邮件地址在一个新的域,邮箱收件箱将自动添加适当的新设置。
如果要添加新域,请确保您设置域的域名服务器ns1.box.example.com和ns2.box.example.com在域名注册机构(之前设置的第一个域相同的)。 您的Droplet将处理新域的所有DNS。
要查看当前的DNS设置,请访问System>外部DNS。 要添加您自己的条目,请访问System>自定义DNS。
Mail-in-a-Box还提供超出本文范围的功能。 它可以作为托管联系人和日历管理器由ownCloud礼貌。 它也可以用于托管静态网站。
有关Mail-IN-A-Box的更多信息,请访问该项目的主页 。