浏览时阻止所有非 HTTPS 流量

浏览时阻止所有非 HTTPS 流量

我正在尝试批准从外部 Windows 系统进入我们公司网络的防火墙规则,以访问代理并返回到互联网。我的需求将涉及使用 Web 浏览器,例如提供用户名/密码。我的公司要求所有防火墙规则都只有通过它们的加密流量。虽然传输到代理本身是未加密的,但批准者已澄清,只要通过防火墙的数据包本身是加密的(例如访问基于 TLS(HTTPS)的网站),就可以接受。

我的问题是,如何确保浏览时只允许 HTTPS 流量的请求?

激进的解决方案是仅使用curland/or wget,手动解析 HTML 并根据响应手动发送请求,确保每次都使用 HTTPS。除了显然需要大量时间之外,这还意味着启用 javascript 的页面等将无法按预期工作。

我愿意接受各种解决方案,例如:

  1. Firefox/Chrome 插件
  2. 在外部机器上运行本地代理(例如 CNTLM),只有当 URL 与某种模式匹配时才转发到远程代理(我查看了 CNTLM 手册,但找不到它列出的任何命令行或配置选项以仅允许某些 URL 模式)
  3. 使用提供此类选项的特殊浏览器
  4. 有没有办法配置代理隧道(记住它必须在 Windows 上可用),它在一侧加密流量,在另一侧解密,那么这一切都没有必要

请注意,我不需要担心除我的 Web 浏览器之外的其他应用程序发送的流量,因为这仅适用于我在该应用程序中专门配置了代理的情况

答案1

有没有办法配置代理隧道(记住它必须在 Windows 上可用),它在一侧加密流量,在另一侧解密,那么这一切都没有必要

是的——最常见的情况是,你会使用 VPN(例如 IKEv2、OpenVPN 或某些专有产品),因为它可以加密全部IP 流量并不仅限于 HTTP。外部网络上的人们使用 VPN 软件连接回公司 LAN 的情况非常普遍。

还有一些软件可以通过 TLS 隧道传输单个 TCP 连接,例如 stunnel。

我建议要求使用 VPN 或其他安全传输是最好的方法,因为它可以在公司方面强制执行政策,并避免客户端丢失/“忘记”其配置等事故。

另一方面,通过 VPN 接入公司网络仅有的保护你和代理之间的通信,但不执行任何强制请求转发出去通过代理访问是安全的。(我不知道你的策略是只针对传入连接还是也针对传出连接。)如果一项要求,应该在代理本身上实现。

Firefox/Chrome 插件

对于手动配置,Firefox 支持 HTTP 和 HTTPS(“SSL”)的单独代理服务器地址;它曾经具有用于配置每个站点的扩展。

许多浏览器都支持PAC 文件它可以具有基于 URL 的代理选择自定义逻辑。

相关内容