如何找到位于 NAT 网关之后的 SMTP 客户端的 IP 地址?

2 分钟阅读
内容级别:中级
2

如何找到位于 NAT 网关之后的 SMTP 客户端的 IP 地址以升级它们使用的 TLS 版本?

我的 SMTP 客户端正在通过 NAT 网关向 Amazon Simple Email Service (SES) SMTP 接口发送 TLS 1.0 / 1.1 请求。我该如何找到 NAT 网关后的实例?


简短描述

在2022 年 6 月,Amazon 宣布 TLS 1.2 将成为用于 AWS 服务公共端点的最低 TLS 版本。如果客户使用 TLS 1.0 或 1.1 发送 SMTP 电子邮件消息,则会通过个人健康仪表板 (PHD) 向他们发送通知。

SES 提供了两个用于发送电子邮件的端点。用户可以调用标准 AWS API,或者使用 SMTP 接口。SMTP 是第三方产品预期使用的协议。这些 PHD 通知或来自 Amazon 的消息代表通过 SMTP 接口发送的电子邮件消息。

为了继续不间断地使用 SES,您需要将客户端(操作系统和/或第三方软件)升级到支持 TLS 1.2 的版本。为了升级客户端,您需要先识别出它。许多客户将他们的 SMTP 客户端放在 NAT 网关之后,所以当 AWS 报告客户端的 IP 地址时,它报告的是 NAT 网关的地址,而不是客户端的地址。


解决方案

SMTP 客户端通过端口 25、587、2587 进行通信。如果它们使用较旧的 TLS 加密协议,也可以通过端口 465 或 2465 进行通信。

这些端口通常用于发送 SMTP 电子邮件,这意味着您可以使用 VPC 流日志来识别客户端的内部 IP 地址。

在接下来的步骤中,我们将创建 VPC 流日志并将其发送到 CloudWatch Logs,并使用 CloudWatch Insights 搜索 SMTP 事件。

注意:启用 VPC 流日志并将其发送到 CloudWatch Logs 会对您的账户产生额外费用。请查看 CloudWatch 定价以获取更多信息。


创建 VPC 流日志并发送到 CloudWatch Logs

如果您未使用 VPC 流日志,请完成以下步骤或查看文档

  1. 打开 Amazon VPC 控制台并点击VPCs
  2. 选择与 NAT 网关关联的 VPC。如果您有多个 VPC,您可以通过打开 Amazon VPC 网关控制台并点击 NAT 网关来确定与 NAT 网关关联的 VPC。与您的 NAT 网关关联的 VPC 将显示出来。
  3. 点击流日志 (Flow Logs) 选项卡
  4. 点击创建流日志 (Create Flow Log)
  5. 对于过滤器 (Filter) 选择所有 (All)
  6. 选择一个新的 CloudWatch 日志组 —— 为便于识别,将其命名为 “VPC Logs”
  7. 创建一个新的或选择一个现有的角色。如果您创建一个新角色,请按照此处描述创建 IAM 和信任策略。
  8. 选择默认格式
  9. 根据需要添加标签 (Tags)
  10. 点击创建流日志 (Create Flow Logs)


使用 CloudWatch Insights 查找 SMTP 事件

  1. 打开 CloudWatch 控制台
  2. 点击日志 Insights
  3. 点击日志组并选择包含您的 VPC 日志的日志组
  4. 选择您希望搜索的时间范围

Enter image description here

  1. 编写一个查询,过滤仅选择以下日志条目:
  • 来源于您的 VPC —— 您可以使用正则表达式实现
  • 目标不是您的 VPC —— 使用相同的正则表达式并加上非 (not) 子句
  • 使用一个 SMTP 端口 25、587、2587
  1. 添加显示的字段:
  • 源地址 (srcAddr) —— 这是客户端的内部 IP 地址
  • 目标地址 (dstAddr) —— 这是 SES 地址之一,或可能是另一个 SMTP 服务器
  • 目标端口 (dstPort) —— 用于通信的端口
  • 最早时间
  • 最晚时间


默认 172.31.0.0/16 CIDR 的示例查询:

filter dstPort in [25,587,2587] and srcAddr like /172\.31\..*/ and dstAddr not like  /172\.31\..*/
| stats min(@timestamp), max(@timestamp), count() by srcAddr, dstAddr, dstPort
  1. 点击运行查询 (Run Query)

Enter image description here

  1. 流日志将显示从您创建日志或选择的时间间隔开始的结果。如果您有定期运行的 SMTP 作业,请定期检查。


如上所述,将 VPC 流日志发送到 CloudWatch Logs 会产生额外费用。一旦您完成了 SMTP 客户端的升级并确认解决后,您可以关闭它们。

如果需要,您可以使用 VPC 终端节点发送电子邮件。VPC 终端节点会将您的流量保持在 AWS 网络内,因此它将更快、更安全,并且在大多数情况下更便宜。VPC 终端节点还将提供 SMTP 客户端的私有 IP 地址。添加地址时,您无需进行任何其他更改。


结论

一旦您确定了 TLS 1.0 / 1.1 流量的来源,下一步就是升级客户端。您可以在我们的博客文章中找到更多关于如何实现这一点的信息。

如果需要更多帮助,请开立支持案例或联系您的技术客户经理(如果您有企业支持)。


本文章翻译自于:How do I find IP addresses of SMTP Clients behind a NAT gateway?