🔗 故障排除:Hotmail.com
🔗 摘要
此网站包含几个相当糟糕的系统。截至 2011 年 3 月,这些问题已存在近十年,但网站管理员一直未予修复。
🔗 症状
- 网站抱怨:已记录入侵。访问被拒绝。
🔗 解释
HTTP 被设计成一种中继模型,内置代理概念和定义的行为。它以无状态请求运行。在考虑 Hotmail 网站时,这些细节很重要。
Hotmail 是许多网站之一,其安全系统被设计成假设端到端客户端到服务器连接的模型。
- 它要求所有请求来自同一客户端 IP 地址。
- 它要求所有请求 **发送到** 同一服务器 IP 地址。
后一个细节揭示了浏览器一种历史行为,即找到一个对网站有效的 IP 并重复使用它进行许多连接。Squid 过去曾在所有 DNS 提供的 IP 地址之间进行负载平衡。
Hotmail 在存在此问题方面并非独一无二。有许多较小的网站也表现出这些糟糕的安全决策。Hotmail 只是最受欢迎的,因此也是最知名(且持续时间最长)的此类问题。
🔗 规避方法
需要对 Hotmail 进行几项更改才能正常工作。每一项都有其自身的问题。
要强制所有客户端请求发送到一致的 IP 地址,您必须在连接到 Hotmail 时禁用所有网络系统中的目标负载平衡。关闭 Squid 的 balance_on_multiple_ip 指令。其他负载平衡软件可能有或没有类似的控件。
要强制所有客户端请求以一致的 IP 发送给 Hotmail。您可以执行以下几项操作之一
- 代理集群可以使用 **usernamehash** 或 **sourcehash** cache_peer 算法来限制 HTTP 请求流,而不会过度影响负载平衡。
- 支持 TPROXYv4 的较新 Squid 版本能够欺骗其联系人的客户端 IP。此欺骗通过允许网站访问客户端 IP 来绕过网站安全系统。有效地让网站认为代理不存在。如果出现问题,这可能难以调试,并且需要从内核开始的现代系统。
- 旧版 Squid 可以使用 tcp_outgoing_address 指令强制所有发往 Hotmail 的出站请求使用固定的 Squid 出站 IP。这有 Hotmail 单点登录 与 IP 地址相关联的旧有已知问题,通过代理访问的所有客户端可能会看到彼此的邮箱。
- 或者,您可以使用 NAT 将出站连接 IP 设置为一个 IP 范围,这样每个客户端在其整个 Hotmail 会话中都有一个临时但不同的 IP。
类别: 知识库
导航: 站点搜索、站点页面、类别、🔼 向上