首页 > 服务部署 > ◦LINUX服务 > 如何在Ubuntu 18.04上设置Zimbra开源邮件服务器

1123

浏览

0

评论

如何在Ubuntu 18.04上设置Zimbra开源邮件服务器

作者:stephen | 分类:◦LINUX服务 | 标签:

在Linux上从头开始设置自己的电子邮件服务器是一个漫长而乏味的过程,如果你不是高级用户,这将是一个痛苦的过程。本教程将向您展示如何使用Zimbra在Ubuntu18.04上快速设置一个功能齐全的邮件服务器,为您节省大量时间和麻烦。

Set-Up-Zimbra-Mail-Server-on-Ubuntu-20.04

Zimbra是什么?

Zimbra是Synacor,Inc.开发的开源电子邮件、日历和协作软件套件。它附带一个shell脚本,可以自动在Linux服务器上安装和配置所有必要的邮件服务器组件,从而消除手动安装和配置。使用Zimbra,您可以轻松地在基于web的管理面板中创建无限邮箱和无限邮件域。电子邮件帐户可以在MariaDB或OpenLDAP中管理。以下是Zimbra将自动安装和配置的开源软件列表。

  • 后缀SMTP服务器

  • Nginx web服务器为管理控制台和webmail提供服务。它还将用作IMAP/POP3代理。

  • Jetty:运行Zimbra软件的web应用服务器。

  • OpenLDAP存储Zimbra系统配置、Zimbra全局地址列表,并提供用户身份验证。

  • MariaDB数据库

  • OpenDKIM:用于DKIM签名和验证

  • 一个新的:MTA和内容扫描程序之间的接口。

  • SpamAssassin用于反垃圾邮件

  • ClamAV:反病毒扫描仪

  • Lucene:开源全功能文本和搜索引擎

  • ApacheJSieve:电子邮件过滤器

  • LibreOffice:高保真文档预览

  • Aspell:Zimbra Web客户端上使用的开源拼写检查器

  • memcached:开源对象缓存系统。

  • 未绑定:轻量级快速DNS解析程序。

Zimbra还附带了一些自己开发的软件:

  • zimbra drive:云存储。

  • zimbra聊天:文本聊天。

  • zimbra talk:具有屏幕共享和文件共享功能的群信息和视频会议。

  • mailboxd:它自己开发的IMAP/POP3服务器。

Zimbra有两个版本:

  • 免费开源版。

  • 商业支持的网络版,60天免费试用。

一些著名的Zimbra用户包括:Mozilla、Skype、O'Reilly Media、斯坦福大学和康卡斯特。在本文中,我们将使用开源版本(OSE)。

服务器要求

  • 全新的Ubuntu 18.04操作系统。

  • 至少2个CPU核和3GB RAM。如果使用单核CPU,Zimbra的运行速度会非常慢。你需要一台至少有3GB内存的服务器,因为安装后,你的服务器将使用超过2GB的内存。

第一步:选择合适的主机提供商并购买域名

Zimbra必须安装在干净干净的服务器上。

本教程是在每月9美元的Kamatera VPS(虚拟专用服务器)上完成的,该服务器具有1个CPU和3GB RAM。他们提供30天的免费试用期。

Kamatera是运行邮件服务器的一个非常好的选择,因为

  • 它们不会阻止端口25,因此您可以发送无限量的电子邮件(事务性电子邮件和时事通讯),而无需在SMTP中继服务上花钱。Kamatera没有任何SMTP限制。你每天可以发送一百万封电子邮件。

  • IP地址不在任何电子邮件黑名单上。(至少对我来说是这样。我选择了达拉斯数据中心。)你肯定不想被列入可怕的微软Outlook IP黑名单或spamrats黑名单。有些黑名单会屏蔽整个IP范围,你无法从此类黑名单中删除你的IP地址。

  • 您可以编辑PTR记录以提高电子邮件的可交付性。

  • 它们允许你向你的电子邮件订阅者发送时事通讯,而不受每小时或每天的限制。

  • 您可以为一台服务器订购多个IP地址。这对需要发送大量电子邮件的人非常有用。您可以在多个IP地址上传播电子邮件流量,以实现更好的电子邮件交付。

其他VPS提供商,如DigitalOcean阻止了端口25。DigitalOcean不会解锁端口25,因此您需要设置SMTP中继以绕过阻止,这可能会增加您的费用。如果您使用Vultr VPS,则默认情况下端口25被阻止。如果您打开支持票证,他们可以解除阻止,但如果他们决定不允许您的电子邮件发送活动,他们可能会在任何时候再次阻止。如果你使用他们的服务器发送时事通讯,Vultr实际上可能会重新阻止它。

转到Kamatera网站创建帐户,然后在帐户仪表板中创建服务器。

kamatera server types

我建议遵循下面链接的教程,在Kamatera上正确设置Linux VPS服务器。

  • 如何在Kamatera上创建Linux VPS服务器

创建服务器后,Kamatera将向您发送一封包含服务器SSH登录详细信息的电子邮件。要登录到服务器,可以使用SSH客户端。如果您在计算机上使用Linux或macOS,只需打开一个终端窗口并运行以下命令即可登录服务器。将12.34.56.78替换为服务器的IP地址。

ssh

系统将要求您输入密码。

强烈建议您使用UbuntuLTS,比如Ubuntu18.04。不鼓励在非LTS Ubuntu上安装Zimbra这样的复杂服务器软件,因为每9个月升级一次操作系统可能会遇到问题。对于你的邮件服务器来说,保持2到5年的稳定状态要好得多。

你还需要一个域名。我从namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。

第2步:创建DNS MX记录

MX记录指定哪个或多个主机处理特定域名的电子邮件。例如,为linuxbabe处理电子邮件的主机。com是邮件。利努克斯宝贝。通用域名格式。如果拥有Gmail账户的人向发送电子邮件,Gmail服务器将查询linuxbabe的MX记录。通用域名格式。当它发现那封邮件。利努克斯宝贝。com负责接收电子邮件,然后查询邮件记录。利努克斯宝贝。com获取IP地址,从而可以发送电子邮件。

你需要去你的DNS托管服务(通常是你的域名注册)创建DNS记录。在DNS管理器中,为域名创建MX记录。在名称字段中输入@代表主域名,然后输入mail。你的领域。com在值字段中。

iredmail email server create MX record

注意:MX记录的主机名不能是其他名称的别名。此外,强烈建议您使用主机名,而不是MX记录的裸IP地址。

DNS管理员可能会要求您输入首选项值(也称为优先级值)。它可以是0到65356之间的任何数字。小数字的优先级高于大数字。建议将该值设置为0,以便此邮件服务器具有接收电子邮件的最高优先级。创建MX记录后,还需要为邮件创建一个记录。你的领域。com,以便将其解析为IP地址。如果您的服务器使用IPv6地址,请确保添加AAAA记录。

提示:如果使用Cloudflare DNS服务,则在创建邮件记录时不应启用CDN功能。你的领域。通用域名格式。Cloudflare不支持SMTP代理。

第3步:配置主机名

通过SSH登录服务器,然后运行以下命令更新现有软件包。

sudo apt update  sudo apt upgrade -y

我强烈建议创建一个sudo用户来管理服务器,而不是使用默认的root用户。运行以下命令创建用户。将用户名替换为首选用户名。

adduser username

adduser scalahosting

然后将用户添加到sudo组。

adduser username sudo

切换到新用户。

su - username

接下来,使用以下命令为服务器设置完全限定的域名(FQDN)。

sudo hostnamectl set-hostname mail.your-domain.com

我们还需要使用命令行文本编辑器(如Nano)更新/etc/hosts文件。

sudo nano /etc/hosts

像下面那样编辑它。使用箭头键在文件中移动光标。必须将邮件服务器主机名放在localhost之后。

127.0.0.1       localhost.localdomain localhost mail.your-domain.com

保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要关闭文件,请按Ctrl+X。)

要查看更改,请重新登录,然后运行以下命令查看主机名。

hostname -f

第4步:在Ubuntu 18.04上安装Zimbra邮件服务器

Zimbra 9仍然提供开源版本。但是,它不提供二进制文件。只有源代码可用。幸运的是,有一家名为Zextras的第三方Zimbra解决方案提供商提供Zimbra二进制下载。

你可以登录Zextras网站,填写表格,获得Zimbra 9二进制下载链接。如果不想填写表单,请在服务器上运行以下命令下载Zimbra 9安装程序。

wget download.zextras.com/zcs-9.0.0_OSE_UBUNTU18_latest-zextras.tgz

提取存档文件。

tar xvf zcs-9.*.tgz

然后切换到新创建的目录。

cd zcs-9*/

在运行安装程序脚本之前,请安装netstat实用程序。

sudo apt install net-tools

接下来,使用sudo权限运行Bash脚本。

sudo bash install.sh

邮件服务器安装向导将出现。首先,您需要同意软件许可协议的条款。

zimbra software license agreement

然后键入y确认您想要使用Zimbra的包存储库。

ubuntu-18.04-zimbra-package-repository

接下来,它将要求您选择要安装的软件包。您可以按y键安装它们。(y是大写的,这意味着当您按Enter键时,这是默认答案。)请注意,zimbra imapd软件包目前处于测试阶段,不建议安装。我只需按Enter键即可使用默认答案。

ubuntu 18.04 zimbra Select the packages to install

按y确认您选择的包裹。

zimbra-core ubuntu 18.04

现在开始安装。

ubuntu 18.04 zimbra begin installation

它可能会告诉您需要更改主机名。回答y并输入邮件服务器主机名(mail.your domain.com)。

zimbra hostname

它还可能会告诉你需要更改域名。本教程假设您需要这样的电子邮件地址。在这种情况下,键入Y,然后输入您的域。com在这里,没有子域。

zimbra ubuntu 18.04 DNS ERROR resolving MX

如果它告诉您没有一条MX记录解析到此主机,那么您需要为邮件创建DNS记录。你的领域。通用域名格式。

如果检测到zimbra dnscache(端口53)存在端口冲突,则需要打开另一个SSH会话,并运行以下命令来停止systemd已解决的服务。

sudo systemctl stop systemd-resolved

zimbra dnscache port conflict

然后继续安装。

然后显示主菜单。它告诉你管理员密码没有设置,所以你需要按7,然后按4来设置管理员密码。

ubuntu-zimbra-address-unconfigured-item-set-admin-password

zimbra-store-configuration-ubuntu

为管理员帐户设置密码后,按r返回主菜单,然后按以下键。

  • 按a键应用配置。

  • 按y键将配置保存到文件中。

  • 按Enter键使用默认文件名。

  • 按y键继续。

ubuntu zimbra main menu save config

等待安装过程完成。在安装结束时,您可以选择通知Zimbra您的安装。

ubuntu 18.04 notifying Zimbra of your installation

配置完成后,按Enter键退出安装向导。现在,您可以访问基于web的管理面板https://mail.your-domain.com.因为它使用的是自签名的TLS证书,所以需要在web浏览器中添加安全异常。在第7步中,您将了解如何安装有效的Let's Encrypt TLS证书。

第5步:配置系统

Systemd resolved是Ubuntu上默认的DNS解析程序管理器。我们需要改变它的配置,使其与Zimbra一起工作。它应该在系统启动时在Zimbra服务之后启动。

systemd的服务配置文件已解析为/lib/systemd/system/systemd resolved。服务为了覆盖默认的systemd服务配置,我们创建了一个单独的目录。

sudo mkdir -p /etc/systemd/system/systemd-resolved.service.d/

然后在这个目录下创建一个文件。

sudo nano /etc/systemd/system/systemd-resolved.service.d/custom.conf

在文件中添加以下行,这将使systemd resolved在Zimbra启动后启动,并使其在启动前休眠60秒。

[Unit] After=zimbra.service Before=  [Service] ExecStartPre=/bin/sleep 60

保存并关闭文件。然后重新加载systemd以使更改生效。

sudo systemctl daemon-reload

步骤6:测试未绑定的DNS解析程序

未绑定DNS解析程序由Zimbra安装。然而,它可能无法开箱即用。重新启动服务器。

sudo shutdown -r now

然后通过SSH再次登录到服务器,并运行以下命令来测试DNS解析是否有效。

dig A linuxbabe.com

如果您看到SERVFAIL错误,这意味着Unbound没有正常运行。

zimbra unbound servfail ubuntu

要修复它,请切换到zimbra用户。

sudo su - zimbra

并检查未绑定的上游DNS解析程序正在使用哪个。

zmprov getServer `zmhostname` | grep DNSMasterIP

正确的设置应该会显示8.8.8.8是上游DNS解析程序。

zimbraDNSMasterIP: 8.8.8.8

如果127.0.0.53是上游解析器,则会出现问题。用以下方法将其移除:

zmprov ms `zmhostname` -zimbraDNSMasterIP 127.0.0.53

然后添加8.8.8.8作为上游分解器。

zmprov ms `zmhostname` +zimbraDNSMasterIP 8.8.8.8

现在退出zimbra用户

exit

请稍等片刻,然后再次运行以下命令进行测试。

dig A linuxbabe.com

您应该看到以下输出,这意味着它现在工作正常。

unbound master DNS IP zimbra ubuntu

如果运行以下命令以显示服务器正在使用的DNS解析程序,

cat /etc/resolv.conf

它告诉你

/etc/resolv.conf: No such file or directory

检查系统故障是否已解决。服务正在运行。

sudo systemctl status systemd-resolved

运行以下命令以确保它将在引导时自动启动。

sudo systemctl enable --now systemd-resolved

第7步:安装Let's Encrypt TLS证书

由于邮件服务器正在使用自签名TLS证书,桌面邮件客户端用户和webmail客户端用户都将看到警告。为了解决这个问题,我们可以获得并安装免费的Let's Encrypt TLS证书。

获取证书

首先,运行以下命令从Snap store安装最新的Let's Encrypt(certbot)客户端。

sudo snap install certbot --classic

Zimbra已经在Nginx中配置了TLS设置,我们可以使用独立插件通过TCP端口80获得证书。运行以下命令。用实际数据替换红色文本。

sudo /snap/bin/certbot certonly --standalone --agree-tos --staple-ocsp --email  -d mail.your-domain.com --preferred-chain 'ISRG Root X1'
  • certonly:获取证书,但不要自动安装。

  • --standalone:使用standalone插件获取证书。

  • -首选链“ISRG根X1”:使用ISRG根X1证书链,因为默认的DST根CA证书在2021年9月31日到期。

当它询问您是否希望接收EFF的通信时,您可以选择否。

iredmail letsencrypt

如果一切顺利,您将看到以下文本,表明您已成功获得TLS证书。您的证书和链已保存在/etc/letsencrypt/live/mail。你的领域。com/directory。

zimbra ubuntu certbot TLS certificate

未能获得TLS证书

如果certbot无法获得TLS证书,可能是因为您的DNS记录没有传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://dnsmap.io,输入邮件服务器的主机名(mail.your domain.com)以检查DNS传播。

在Zimbra中安装证书

获得TLS证书后,让我们配置Zimbra以使用它。授予zimbra用户权限,使其可以读取Let's Encrypt文件。

sudo apt install acl  sudo setfacl -R -m u:zimbra:rwx /etc/letsencrypt/

切换到zimbra用户。

sudo su - zimbra

复制私钥。

cp /etc/letsencrypt/live/mail.your-domain.com/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

下载让我们加密根CA证书。

wget -O /tmp/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt

创建一个证书链。以下命令将根CA证书(isrgrotx1.pem)置于中间CA证书(chain.pem)之下。你不应该颠倒顺序,否则就行不通了。

cat /etc/letsencrypt/live/mail.your-domain.com/chain.pem /tmp/isrgrootx1.pem > /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

部署证书。

/opt/zimbra/bin/zmcertmgr deploycrt comm /etc/letsencrypt/live/mail.your-domain.com/cert.pem /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt

zimbra depoly letsencrypt certificate

查看已部署的证书。

/opt/zimbra/bin/zmcertmgr viewdeployedcrt

zmcertmgr viewdeployedcrt

重新启动Zimbra。

zmcontrol restart

以zimbra用户身份运行以下命令,检查是否所有zimbra服务都在运行。

zmcontrol status

如果一切正常,它应该会显示出来

zmcontrol status

故障排除

错误的主机名

如果zmcontrol status命令显示localhost。localdomain主机名,然后需要将主机名更改为mail。你的领域。通用域名格式。

/opt/zimbra/libexec/zmsetservername -n mail.your-domain.com

然后删除localhost。本地域。

zmloggerhostmap -d localhost.localdomain localhost.localdomain

OpenLDAP失败

如果OpenLDAP无法重新启动,它会说

Unable to start TLS: SSL connect attempt failed error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed when connecting to ldap master.

然后可以使用以下两个命令禁用OpenLDAP上的TLS。有些人可能想知道在OpenLDAP上禁用TLS是否安全。这是安全的,因为LDAP连接只在邮件服务器本身上建立。无法从另一台主机建立LDAP连接。

zmlocalconfig -e ldap_starttls_required=false  zmlocalconfig -e ldap_starttls_supported=0

然后重启Zimbra服务。

zmcontrol restart

提示:如果您已经按照前面的说明成功地在Zimbra中部署了Let's Encrypt TLS certificate,那么您的OpenLDAP服务器在启动TLS时应该没有问题。

阿玛维斯失败

如果Amavis未运行,请使用以下命令重新启动它:

zmamavisdctl restart

如果重启失败,应该检查Zimbra日志文件(/var/log/Zimbra.log)。例如,我在这个文件中有以下错误消息。

Ignoring stale PID file /opt/zimbra/log/amavisd.pid, older than system uptime 0 0:01:00 Pid_file already exists for running process (3340)

所以我需要删除陈旧的PID文件。

rm /opt/zimbra/log/amavisd.pid

然后重启Amavis。

zmamavisdctl restart

减少CPU和;内存使用

尽可能避免使用zmcontrol restart命令,因为它会向管理员帐户生成许多报告电子邮件。每封邮件都会调用ClamAV进行病毒扫描。ClamAV是一个资源猪。如果需要启动/停止单个Zimbra服务,请使用特定工具来完成任务。

  • zopendkimctl:OpenDKIM。

  • zmamavisdctl:Amavis

  • zmantispamctl:反垃圾邮件

  • zmdnscachectl:未绑定的DNS解析程序。

  • ZMTL:反病毒

  • zmmtactl:后缀SMTP服务器

  • zmspellctl:拼写检查

  • zmzimletctl:Zimlet webapp

  • zmmailboxdctl:mailboxd

  • zmstatctl:stats

  • zmconfigdctl:zmconfigd

  • zmmcachedctl:memcached

  • zmloggerctl:记录器

为了减少Amavis和ClamAV对CPU和RAM的使用,以zimbra用户的身份运行以下两个命令。

zmprov ms `zmhostname` zimbraAmavisMaxServers 1 zmprov ms `zmhostname` zimbraClamAVMaxThreads 1

这将使Amavis和ClamAV只使用一个线程来处理电子邮件。(默认值为10)如果您有4核CPU和16 GB RAM,则可以增加线程数以加快电子邮件处理速度。

第9步:发送测试电子邮件

现在,您可以再次访问Zimbra web客户端。您的web浏览器将不再向您发出警告,因为Nginx现在使用的是有效的TLS证书。

ubuntu-18.04-zimbra-web-client

使用管理员帐户()登录Zimbra web客户端,您可以测试电子邮件的发送和接收。

Set Up Zimbra Mail Server on Ubuntu 18.04

Zimbra有一个内置日历。

zimbra calendar

您可以登录管理控制台,可以从右上角的下拉菜单访问该控制台。或者你可以通过https://mail.your-domain.com:7071/zimbraAdmin/.

zimbra admin console

单击添加帐户链接添加新的电子邮件地址。

zimbra add new email addresses

步骤10:检查端口25(出站)是否被阻止

您的ISP或主机服务提供商不会阻止与服务器端口25的传入连接,这意味着您可以接收来自其他邮件服务器的电子邮件。然而,许多ISP/主机提供商会阻止与其他邮件服务器端口25的传出连接,这意味着您无法发送电子邮件。

提示:如果使用Kamatera VPS,则出站端口25默认打开。

如果你的电子邮件没有到达你的其他电子邮件地址,比如Gmail,那么在你的邮件服务器上运行以下命令,检查端口25(出站)是否被阻止。

telnet gmail-smtp-in.l.google.com 25

如果未被阻止,您将看到如下消息,这表明已成功建立连接。(提示:输入quit并按Enter键关闭连接。)

Trying 74.125.68.26... Connected to gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp

如果端口25(出站)被阻止,您将看到如下情况:

Trying 2607:f8b0:400e:c06::1a... Trying 74.125.195.27... telnet: Unable to connect to remote host: Connection timed out

在这种情况下,您的Postfix无法向其他SMTP服务器发送电子邮件。请您的ISP/主机提供商为您打开它。如果他们拒绝您的请求,您需要设置SMTP中继以绕过端口25阻塞。

还是不能发邮件?

如果端口25(出站)未被阻止,但您仍然无法从自己的邮件服务器向Gmail等其他电子邮件地址发送电子邮件,那么您应该检查邮件日志(/var/log/mail.log)。

sudo tail -n 30 /var/log/mail.log

例如,有些人可能会看到错误消息。

host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1  for more information

这意味着您的邮件服务器正在使用IPv6发送电子邮件,但您没有设置IPv6记录。你应该去你的DNS管理员那里,为邮件设置AAAA记录。你的领域。com,那么您应该为IPv6地址设置PTR记录,这将在步骤9中讨论。

步骤11:从邮件客户端登录

启动你的桌面电子邮件客户端,比如Mozilla Thunderbird,并添加一个邮件帐户。

  • 在“传入服务器”部分,选择IMAP协议,输入mail。你的领域。com作为服务器名,选择端口143和STARTTLS。选择普通密码作为身份验证方法。

  • 在“发送”部分,选择SMTP协议,输入mail。你的领域。com作为服务器名,选择端口587和STARTTLS。选择普通密码作为身份验证方法。

zimbra mail client configuration

第12步:提高电子邮件交付能力

为了防止您的电子邮件被标记为垃圾邮件,您应该设置PTR、SPF、DKIM和DMARC记录。

PTR记录

指针记录或PTR记录将IP地址映射到FQDN(完全限定域名)。它与A记录相对应,用于反向DNS查找,这有助于阻止垃圾邮件发送者。如果没有找到发送服务器的PTR记录,许多SMTP服务器会拒绝电子邮件。

要检查PTR记录中的IP地址,请运行以下命令:

dig -x IP-address +short

host IP-address

PTR记录不由您的域注册器管理。它由提供IP地址的组织管理。因为您从主机提供商或ISP获得IP地址,而不是从域注册商获得,所以您必须在主机提供商的控制面板中为您的IP设置PTR记录,或者询问ISP。它的值应该是邮件服务器的主机名:mail。你的领域。通用域名格式。如果您的服务器使用IPv6地址,请确保也为您的IPv6地址添加PTR记录。

要编辑Kamatera VP的反向DNS记录,请登录Kamatera客户端区域,然后打开支持票证,告诉他们为服务器IP地址添加PTR记录,以将IP地址指向邮件。你的领域。通用域名格式。你可能会想,这并不方便,但这是为了让垃圾邮件发送者远离平台,因此像我们这样的合法电子邮件发送者将拥有良好的IP声誉。

SPF记录

SPF(发件人策略框架)记录指定允许哪些主机或IP地址代表域发送电子邮件。您应该只允许您自己的电子邮件服务器或ISP的服务器为您的域发送电子邮件。在DNS管理界面中,创建一个新的TXT记录,如下所示。

modoboa spf record

说明:

  • TXT表示这是一条TXT记录。

  • 在名称字段中输入@代表主域名。

  • v=spf1表示这是一条SPF记录,版本为spf1。

  • mx意味着mx记录中列出的所有主机都被允许为您的域发送电子邮件,而所有其他主机都被禁止。

  • ~all表示来自您域的电子邮件应该只来自SPF记录中指定的主机。来自其他主机的电子邮件将被标记为伪造。

要检查您的SPF记录是否传播到公共互联网,您可以在Linux邮件服务器上使用dig实用程序,如下所示:

dig your-domain.com txt

txt选项告诉dig我们只想查询txt记录。

DKIM记录

DKIM(DomainKeys Identified Mail)使用私钥对从您的域发送的电子邮件进行数字签名。接收SMTP服务器使用在DNS DKIM记录中发布的公钥验证签名。

运行以下命令在Zimbra邮件服务器上生成DKIM密钥。

/opt/zimbra/libexec/zmdkimkeyutil -a -d your-domain.com

zimbra dkim

DKIM公钥在括号中。我的DKIM选择器是F9421034-2BCF-11EC-80AF-728BCB6E6C77。DKIM子域是F9421034-2BCF-11EC-80AF-728BCB6E6C77_域名。利努克斯宝贝。通用域名格式。你的可能不一样。

然后在DNS管理器中,创建一个TXT记录,输入F9421034-2BCF-11EC-80AF-728BCB6E6C77_名称字段中的domainkey。(您的DKIM子域可能不同。)复制括号中的所有内容,并将其粘贴到值字段中。删除所有双引号和换行符。

zimbra mail server dkim record

请注意,您的DKIM记录可能需要一些时间才能传播到Internet。根据您使用的域注册器,您的DNS记录可能会立即传播,或者传播可能需要24小时。你可以去https://www.dmarcanalyzer.com/dkim/dkim-check/检查您的DKIM记录是否有效。

DMARC记录

DMARC代表基于域的消息身份验证、报告和一致性。DMARC可以帮助接收电子邮件服务器识别合法电子邮件,并防止电子邮件欺骗使用您的域名。

要创建DMARC记录,请转到DNS管理器并添加TXT记录。在名称字段中,输入_dmarc。在“值”字段中,输入以下内容。(您应该创建电子邮件地址。)

v=DMARC1; p=none; pct=100; rua=mailto:

create dmarc record txt

上述DMARC记录是一个安全的起点。如果你想阅读DMARC的完整解释,请查看以下文章。请注意,这是可选的。

  • 创建DMARC记录以保护您的域名免受电子邮件欺骗

第13步:测试电子邮件分数和位置

创建PTR、SPF、DKIM记录后,转到https://www.mail-tester.com.你会看到一个独特的电子邮件地址。从你的域名发送电子邮件到此地址,然后检查你的分数。如你所见,我得了满分。在测试结果中,您应该检查您的PTR记录、SPF和DKIM记录是否有效。

Testing Email Score and Placement邮件测试员。com只能显示发件人分数。还有另一个名为GlockApps的服务,可以让你检查你的电子邮件是否被放在收件人的收件箱或垃圾邮件文件夹中,或者被直接拒绝。它支持许多流行的电子邮件提供商,如Gmail、Outlook、Hotmail、YahooMail、iCloud mail等。

glockapps-email-placement-test-scalahosting-vps

如果你的电子邮件仍被标记为垃圾邮件呢?

在这篇文章中,我有更多提示:如何阻止你的电子邮件被标记为垃圾邮件。虽然这需要一些时间和精力,但在应用这些技巧后,你的电子邮件最终会被放入收件箱。

如果您的电子邮件被Microsoft邮箱拒绝怎么办?

微软似乎正在使用一个内部黑名单来屏蔽许多合法的IP地址。如果您的电子邮件被Outlook或Hotmail拒绝,您需要提交发件人信息表。之后,Outlook/Hotmail将接受您的电子邮件。

故障排除

首先,请使用至少4GB内存的VPS。在2GB RAM VPS上运行Zimbra会导致数据库、SpamAssassin或ClamAV因内存不足而被杀死。如果你真的想使用2GB内存VPS,你会丢失收到的电子邮件,并有其他不良后果。

根据经验,您应该始终检查邮件日志/var/log/mail。当出现电子邮件发送问题时,请登录。

HTTP错误502

如果无法访问Zimbra web界面,例如502网关错误,则服务器可能需要更多RAM。

zimbra HTTP ERROR 502

您还可以尝试重新启动所有Zimbra服务来解决此问题。

以zimbra用户身份运行以下命令,检查是否所有zimbra服务都在运行。

zmcontrol status

如果启用了防火墙,则应在防火墙中打开以下端口。

HTTP port:  80 HTTPS port: 443 SMTP port:  25 Submission port: 587 SMTPS port: 465 (For Microsoft Outlook mail client) IMAP port:  143 and 993

如果你想使用UFW防火墙,请查看我的指南:Debian和Ubuntu上的UFW防火墙入门。

如何更新TLS证书

让我们加密颁发的TLS证书仅在90天内有效,设置Cron作业以自动续订证书非常重要。您可以运行以下命令来续订证书。

sudo certbot renew

您可以使用--dry run选项来测试更新过程,而不是进行真正的更新。

sudo /snap/bin/certbot renew --dry-run

创建Cron作业

如果试运行成功,您可以创建Cron作业来自动续订证书。只需打开root用户的crontab文件。

sudo crontab -e

然后在文件底部添加以下行。

@daily /snap/bin/certbot renew --quiet

保存并关闭文件。

设置备份邮件服务器

主邮件服务器有时可能会关闭。如果您将邮件服务器托管在数据中心,那么停机时间非常短,因此您不必担心丢失入站邮件。如果您在家中托管邮件服务器,则无法预测停机时间,因此在数据中心运行备份邮件服务器是一种很好的做法,以防止丢失入站邮件。备份邮件服务器只需要512MB内存即可运行。请在下面的文章中查看全部细节。

  • 如何在Ubuntu上设置带有后缀的备份电子邮件服务器(完整指南)

为你的网站设置SMTP

如果您的网站和邮件服务器运行在两个不同的VP(虚拟专用服务器)上,您可以在网站和邮件服务器之间设置SMTP中继,以便您的网站可以通过邮件服务器发送电子邮件。请参阅下面的文章。

  • 如何在Ubuntu上的两个Postfix SMTP服务器之间设置SMTP中继

收尾

就这样!我希望本教程能帮助你在Ubuntu18.04上用Zimbra安装邮件服务器。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?


本文链接:https://www.stephenwxf.com/post/195.html
原创文章如转载请注明:转载自王显璠的个人博客谢谢!

Copyright Your stephenwxf.com Rights Reserved.