如何找到位于 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 流日志,请完成以下步骤或查看文档。
- 打开 Amazon VPC 控制台并点击VPCs
- 选择与 NAT 网关关联的 VPC。如果您有多个 VPC,您可以通过打开 Amazon VPC 网关控制台并点击 NAT 网关来确定与 NAT 网关关联的 VPC。与您的 NAT 网关关联的 VPC 将显示出来。
- 点击流日志 (Flow Logs) 选项卡
- 点击创建流日志 (Create Flow Log)
- 对于过滤器 (Filter) 选择所有 (All)
- 选择一个新的 CloudWatch 日志组 —— 为便于识别,将其命名为 “VPC Logs”
- 创建一个新的或选择一个现有的角色。如果您创建一个新角色,请按照此处描述创建 IAM 和信任策略。
- 选择默认格式
- 根据需要添加标签 (Tags)
- 点击创建流日志 (Create Flow Logs)
使用 CloudWatch Insights 查找 SMTP 事件
- 打开 CloudWatch 控制台
- 点击日志 Insights
- 点击日志组并选择包含您的 VPC 日志的日志组
- 选择您希望搜索的时间范围

- 编写一个查询,过滤仅选择以下日志条目:
- 来源于您的 VPC —— 您可以使用正则表达式实现
- 目标不是您的 VPC —— 使用相同的正则表达式并加上非 (not) 子句
- 使用一个 SMTP 端口 25、587、2587
- 添加显示的字段:
- 源地址 (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
- 点击运行查询 (Run Query)

- 流日志将显示从您创建日志或选择的时间间隔开始的结果。如果您有定期运行的 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?