Linux HTTPS 标头检查

Linux HTTPS 标头检查

我需要检查通过我的 Linux(CentOS 6.5)路由器的部分 HTTPS 流量。特别是我需要知道用户正在请求哪个目标网站主机。用户可以是我无法控制的访客浏览器/设备(即无法部署证书)。我不关心内容/有效负载,我只需要将目标 URL 记录到日志文件中 :-)

从技术角度来说,它是开放的,我不受任何限制,因此可以使用 iptables、squid 或任何其他在 Linux 上运行的过滤器(最好不是商业过滤器 - 其中一些是按设备授权的)。甚至可以是上述的组合。

我很确定这可以做到这一点,因为如果我可以在我的 Windows 机器上安装 Fiddler 并使用 Chrome 浏览 HTTPS 网站而不会出现证书警告并在 Fiddler 中看到“主机”。

我花了一些时间寻找如何做到这一点,但到目前为止,由于需要在客户端浏览器上安装证书,因此遇到了限制。此外,我只能找到 iptables 的字符串匹配,但据我所知,这不适用于 HTTPS 数据包,因为它们是加密的(我错误地认为目的地不会被加密?)

如能得到任何帮助我将非常感激,希望我已经足够详细地涵盖了要求。

答案1

  1. 捕获并缓存用户发出的 DNS 查询。然后,您可以将其与传出端口 443 连接的 IP 进行匹配
  2. tshark。你应该能够以某种方式从中获取 SNI
  3. 谷歌搜索“p0f ssl”。你可以用它获取用户代理。

如果你有正在运行的东西请发帖,我也对这样的事情感兴趣

答案2

谢谢信噪比,您可以轻松获取正在请求数据的服务器名称,但对话的其余部分(包括 URL 的其余部分)的全部内容(按照设计)都是加密的,除非您控制 TLS 私钥,否则您将无法使用它们。

相关内容