邮件服务器诊断在确保电子邮件正常运行方面发挥着重要作用。它允许识别和解决与发送、接收和处理电子邮件相关的问题。诊断的关键因素之一是在邮件服务器上使用过滤器,这些过滤器可防止垃圾邮件、病毒和其他安全威胁。
本文将考虑帮助从旁检查邮件服务器运行情况的外部服务,以及允许直接在服务器上运行诊断的内部工具。作为示例,所有操作都将在 私人服务器 由 Ubuntu 20.04.6 操作系统提供支持,并以 Postfix 和 Dovecot 的形式配置解决方案,但是,所提出的方法适用于几乎任何操作系统和邮件客户端。
邮件服务器在线检查服务
第一个也是最重要的一步是使用外部在线服务进行验证。这样,您可以检查邮件服务器的暴露情况、SPF、DKIM 和 DMARC 设置,还可以检查发送电子邮件的 IP 地址的信誉。在大多数情况下,仅使用这些工具就可以获得理想的结果。
让我们详细了解主要的验证服务及其功能:
工具箱 允许我们检查几乎所有可用的邮件服务器参数。该服务提供用于检查所有域记录、一般域可用性、检查 SSL 证书、IP 地址状态等的工具。要进行诊断,您需要转到 服务页面,输入 IP 地址或域名,选择所需工具并运行检查
屏幕截图中显示了所有可用工具的详细列表:
如上所示,该网站还会检查 IP/域名是否在黑名单中。所有主要来源都会被检查:Spamhaus、Barracuda、SURBL 等。如果地址在任何数据库中,该服务将提供有关被列入黑名单的原因的信息。这样,您将能够采取措施来纠正问题。
MailTester 是第二受欢迎的邮件服务器检查工具。该服务允许用户向特定地址发送测试邮件,然后收到有关发送邮件质量的详细报告。与 MxToolBox 不同,该资源的重点不是诊断邮件服务器,而是可能的电子邮件改进。但是,这并不意味着该服务无法对发件人的服务器进行全面分析。它测试邮件传递,进行研究并提出改进整个邮件服务的建议。
为了完成检查,只需前往 资源网站 并获得一个您要发送电子邮件的唯一电子邮件地址。提交后,您必须选择“检查评估”并等待页面刷新。一个好的结果如下所示:
如果有任何问题或建议,该服务将在报告的相应部分中报告。
上述服务足以从旁对邮件服务器进行全面检查。它们允许您识别电子邮件传递的潜在问题、检查您的安全设置,以及接收解决可能的错误的建议。接下来,我们将在服务器端进行测试。
邮件服务器设置检查
检查DNS记录
邮件服务器端最常见的问题之一是 DNS 记录配置不正确。您可以通过上述第三方服务检查其正确性。但是,在某些情况下,电子邮件可能根本无法发送到第三方邮箱。在这种情况下,您应该手动检查所有条目。为此,请转到 DNS 编辑器并启动检查。例如,让我们将以下内容作为源数据:域 profits.com,IP 地址 11.22.33.44,其中 @ 可用作域名(如果注册商不允许填写此表单)。 不要忘记将数值改为您自己的数值。 不要忘记将数值改为您自己的数值。
A 记录 定义邮件服务器的 IP 地址。简单地说,它们将域指向邮件服务器地址。它应该如下所示:
| 类型 | 主办方 | 价值 | TTL |
| A | @ | 11.22.33.44 | 1分钟 |
MX 记录 对于邮件服务器来说,最重要的是它们负责邮件的投递路线。换句话说,它们将邮件引导到邮箱。
| 类型 | 主办方 | 价值 | TTL |
| MX | @ | mail.profit.com | 1分钟 |
SPF记录 指向能够从特定域发送电子邮件的服务器。请注意:它们以 TXT 格式发布。 仅指示其中一个可能的值。
| 类型 | 主办方 | 价值 | TTL |
| TXT | @ | v=spf1 ip4:11.22.33.44 -all | 1分钟 |
DKIM 记录是 用于验证电子邮件的真实性。必须包含生成的 国家 键。同样,只指示其中一个值选项。
| 类型 | 主办方 | 价值 | TTL |
| TXT | s1._domainkey.profit.com | v=DKIM1;k=rsa;p=QWIOJNDSLUB… | 1分钟 |
DMARC 记录是下一个也是最后一个保护阶段。它适用于尚未通过 SPF 和 DKIM 检查.
| 类型 | 主办方 | 价值 | TTL |
| TXT | _dmarc.profit.com | v=DMARC1;p=无;pct=100;rua=mailto:[email protected] | 1分钟 |
此外,邮件服务器最重要的记录之一是 PTR记录。可以说,它的作用与 一个记录,即它将 IP 地址与域连接起来。此类记录只能通过向托管服务提供商的技术支持提出请求来添加,可以使用以下命令进行检查: nslookup IP,其中 IP 是您的服务器地址。响应应显示链接的域。
端口检查
关闭端口的问题也可能导致邮件服务器完全故障。首先,需要向提供商确认其是否对其所需端口有任何限制。我们不会限制客户端在任何服务器上开放的端口数量 专用 or 虚拟服务器然而,许多托管服务提供商的做法却不同。
您可以使用预安装的 netstat命令 实用程序。只需输入以下命令即可:
netstat – nat
安装并配置好SMTP/IMAP/POP3服务器后,我们将看到相应的开放端口:
正如我们在截图中看到的,主要的邮件客户端端口是开放的,即: SMTP (25)/ IMAPS (143,993)/ POP3S (110,995)。您还可以单独检查每个端口上的邮件服务。 远程登录 工具会帮你解决这个问题。我们来看一个 POP3 的例子,也就是端口 110:
telnet mail.yourdomain.com 110
我们使用 出口 命令并按照相同原则检查其余必要端口。请注意,此工具还提供了在不使用附加界面的情况下测试发送电子邮件的机会。这在用户只需设置服务器并计划在本地发送邮件的情况下非常有用。
如果在打开端口时遇到困难,您需要注意已安装的防火墙。大多数发行版都附带 Iptables/Firewalld 预安装的。
对于 iptables的 我们使用以下命令:
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
对于firewalld:
firewall-cmd --permanent --add-port=25/tcp
firewall-cmd --permanent --add-port=110/tcp
firewall-cmd --permanent --add-port=995/tcp
firewall-cmd --permanent --add-port=143/tcp
firewall-cmd --permanent --add-port=993/tcp
在某些情况下,SMTP 服务还需要打开端口 465 和 587 才能正常运行。 打开这些端口的方式相同。添加新规则后,重新启动防火墙服务。
检查邮件服务器的 SSL/TLS 证书
SSL/TLS 证书用于邮件服务器,以确保邮件客户端和服务器之间的安全数据传输,并确认发件人邮件服务器本身的真实性,从而消除中间人攻击的可能性。但是,它们也可能导致发送或接收邮件出现问题。要启动诊断,您需要查明服务器端是否安装了证书。让我们使用以下命令检查证书是否存在:
openssl s_client -showcerts -server mail.profit.com -connect IP:port
在此命令中,您需要用自己的值替换这些值:“mail.profit.com" 是邮件服务器的地址; IP:端口 是服务器数据。例如,让我们检查端口 993,属于 IMAP 协议。其他协议以相同的方式检查。
作为响应,服务器必须发送证书数据:
大多数邮件客户端都会自动安装证书。但是,在某些情况下,需要手动发布并将它们添加到特定客户端。不同的平台可能需要单独的安装和配置,因此我们建议您参考特定解决方案的说明。我们建议使用 让我们加密 作为证书,并使用Certbot作为其安装和配置的辅助工具。
日志检查
最后,我们找到了一个在大多数情况下都能有所帮助的解决方案——检查邮件服务器日志。大多数用户都自欺欺人,认为他们的问题没有解决方案。然而,现代邮件客户端在日志中存储了大量信息:
- 发送和接收邮件的日期和时间。
- 发件人和收件人的地址。
- 垃圾邮件和病毒的过滤结果。
- 发送和接收邮件的队列状态。
- 管理员和用户与邮件服务器相关的操作(例如创建、删除邮箱、更改设置)。
- 处理和传递电子邮件过程中出现的错误和问题。
存储大多数命令的日志的标准目录位于:/var/日志/。 根据使用的解决方案,特定日志文件的名称可能会有所不同。例如, mail.log 文件是 位于 Postfix 的同一目录中。我们建议您不要忽略此诊断方法,并在出现邮件客户端性能不佳的第一个迹象时立即使用日志。请阅读我们的手册 如何阅读 Linux 日志.
了解如何检查邮件服务器
我们对邮件服务器进行了详细的诊断。在测试期间,用于详细研究的在线工具和用于检测可能问题的本地解决方案都受到了影响。在进行所有必要的测试后,我们获得了邮件服务器当前状态的完整信息,以及消除潜在困难的建议。