Cloudflare 和 AWS - 间歇性 525 SSL 握手

Cloudflare 和 AWS - 间歇性 525 SSL 握手

我在 Cloudflare 和我们的 AWS EC2 Windows 2016 IIS 之间间歇性地(大约 0.01% 的请求)收到 525(SSL 握手失败),并使用以下方式安装了 Let's Encrypt CA赢胜以管理员身份运行。我们的前端是 ReactJs,后端是 .NET Framework 4.7.2。

我尝试过的事情

  • 我已经浏览过Cloudflare标准来源:社区提示调试文档
  • 我已经向 Cloudflare 提出了支持凭单,他们在握手期间告诉我“对等方重置了连接”。
  • 我检查了 IIS 日志,看到用户交互成功,但 IIS 没有记录任何故障。
  • IIS 失败请求跟踪已打开但未显示任何内容(它没有达到 IIS 的程度)。
  • 我有信道日志记录切换到详细:“HKLM:\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL”值 7 - 我只看到36880(SSL 协商成功)事件查看器中的状态代码。
  • 525 的发生与设备、浏览器、操作系统、方法或端点(图片的 POST 数据和 GET)无关。所有客户都位于英国地区。
  • 虽然大多数故障都是针对 API 的,但我们也在自动化系统中看到了 Cloudflare 错误页面。
  • 我的 CloudFlare SSL 设置是完整(严格)、1.2 和 1.3(SSL 3、TLS 1.0 和 1.1 在服务器的注册表中已关闭)。
  • 我们在服务器上安装了所有适用于 TLS 1.2 的密码,并支持 SNI。
  • 525 时,服务器 CPU、Mem、磁盘 I/O 和网络 I/O 都很低。
  • 我们没有弹性负载均衡器,服务器直接连接到 AWS 网关。
  • 当时没有发生其他进程(没有修补、证书更新或发布)。
  • 我们已关闭速率限制。
  • 请求负载非常低,最近的一次是 525(今天早上),大约为 50 个请求/分钟。
  • 我设置了第二个域,没有使用代理,而是使用 AWS Canary 不时访问网站。截至 2021/06/09,我没有遇到任何故障(现在说还为时过早)

我无法轻易做到的事情

  • 使用Cloudflare 原产地 CA证书 - 转移需要大量基础设施自动化变革,因为我们有大量需要单独指定的多级子域。
  • 通过将 Cloudflare IP 添加到将 EC2 实例加入网关的安全组,在 AWS 上将 Cloudflare IP 列入白名单。我需要一个Lambda 函数以保持列表为最新。

我不能做的事情

  • 删除代理(看看它是否会消失)。CF 为我们提供 DDoS 保护,我无法关闭它并保留我们的安全认证。
  • 安装 Wireshark在服务器上 - 这些发生得非常间歇,我会生成大量日志。我也有变更管理限制,所以我无法在生产服务器上安装任何我喜欢的东西。

我遗漏了什么吗?如果我找到解决方案,我会在这里发帖帮助其他人。

Cloudflare 社区上的配套帖子

答案1

解决方案 tldr;

我们在服务器上使用 ESET File Security 7,它正在创建一个临时的 IP 黑名单,有时包括 Cloudflare 的 IP。我将 Cloudflare IP 添加到IDS 异常

细节

Cloudflare 支持工程师(Andronicus - 谢谢!)发现该问题在 Cloudflare 内部是间歇性的,并建议寻找任何可以动态阻止 IP 的东西 - 尤其是 Cloudflare 的 IP。由于我们所有的流量都通过 Cloudflare,它可能看起来像是一次攻击,而攻击域端点的攻击者也会有一个 Cloudflare IP。

我接受了这个建议,并做了大量阅读。我们在 AWS EC2 上,所以他们使用的技术是AWS Shield,默认情况下处于开启状态,用于处理洪水,而不是低水位。

然后,我对服务器进行了全面盘点。详细检查了每个应用程序和 Windows 防火墙。我对 Windows 防火墙有丰富的经验,所以我知道没有任何配置错误。

ESET 文件安全软件Windows Server 版是一款相当不错的防病毒软件 - 尤其是用于检测僵尸网络入侵。它还具有一项称为网络攻击保护 (IDS) 的功能,用于扫描可疑网络流量。其中一部分是“临时 IP 地址黑名单”。来自 ESET:

查看被检测为攻击源并被添加到黑名单以在一定时间内阻止连接的 IP 地址列表。显示已被锁定的 IP 地址。

IP 会在短时间内被添加到黑名单中。通过查看黑名单(它不保留日志),我发现一些熟悉的 Cloudflare IP 出现了。

我已经添加了Cloudflare IPIDS 例外列表(它允许地址范围)并向 ESET 提出问题,询问他们如何保持该列表为最新,因为不能指望 Cloudflare 保持完整的 IP 列表为静态。

如果这对你没有帮助,请查看我的Cloudflare 社区上的完整帖子

相关内容