简洁版本:
您是否知道任何代理或防火墙设备仅允许与具有批准* SSL 证书的主机进行出站 SSL 连接?
长版:
考虑以下场景。
我有一个服务器场,它通过防火墙保护免受 Internet 的影响。假设 HTTPS 允许从 Internet 进入,但防火墙阻止了从这些计算机到 Internet 的出站访问。我不希望我的服务器管理员感到无聊并浏览 /. 来自数据中心,我不希望恶意软件或恶意行为者能够在发生违规时轻松连接出站。
不过,我确实想允许一些出站访问。例如,假设我希望我的 Windows 服务器访问 windowsupdate.microsoft.com。如果我能确定windowsupdate使用的IP,没问题,我专门在防火墙里打开,没问题。
但是,如果这些 IP 不为人所知或不可知怎么办?具体来说,假设 Microsoft 正在使用 Akamai 或其他CDN来提供他们的文件。您联系的 IP 地址将很难提前确定,并且会定期更改。在这种情况下,我不能按 IP 列入白名单。
一种优雅的解决方案 - 假设我们正在访问受 SSL 保护的服务 - 是基于 SSL 证书而不是 IP 地址来列入白名单。因此,如果服务器证书是 *.windowsupdate.microsoft.com 并且由有效的 CA 签名,则允许连接。如果不是 *.windowsupdate.microsoft.com,或者它是由 SnakeOil 签名的,则禁止连接。
(批准的证书可能意味着任何数量的灵活事物。名称和受信任的 CA;名称和特定的 CA;特定的 CA 签名证书;等等)
控制点不能位于内部服务器 - 如果恶意行为者获得访问权限,他们必须无法禁用此保护。与 IP 白名单一样,删除对外围的控制作为代理或防火墙设备是有意义的。
在我看来,这似乎是正确的做法。我这样做的选择是什么?这是任何人都曾经实施过的范式,是免费的还是商业的?我应该知道他们的其他范例是否可以以灵活但强大的方式限制传出访问,以满足现代(Akamai、AWS、Dyn-ish)动态服务?
任何帮助表示赞赏!