我正在尝试使用 WifiDog、AuthPuppy 和 Squid 创建一个强制门户。我们想仅提供对选定数量的资源的访问,例如 2-3 个网站和应用商店(Apple 和 Google)。
虽然阻止和允许 http 请求很容易:WifiDog 有一个将 http 重定向到透明代理的选项。我将所需的 URL 列入白名单,其余的都被阻止了。但是有没有类似的方法可以对安全 (https) 连接执行此操作?
非常感谢您的任何建议。
答案1
不容易。
默认情况下,HTTPS 连接是加密的,您无法通过代理传递它们...您可以做的是通过目标 IP 过滤它们,通过仅允许某些地址并拒绝使用防火墙的所有其他地址;然而,一些服务器使用虚拟主机并在同一个 IP 下托管不同的网站,因此如果同一台服务器同时托管白名单网站和黑名单网站,您就不能只阻止其中一个。
然而,一个解决方案是征得用户的同意,将 Squid 服务器的 IP 配置为浏览器的代理,在这种情况下,流量仍然是加密的(它将使用通过CONNECT
代理的请求进行隧道传输),但目标主机名将以纯文本形式显示,您将能够对其应用 ACL。
因此,一个可能的解决方案是将所有 HTTP 流量重定向到一个页面,该页面说明如何在设备上设置代理服务器的地址,并阻止直接 HTTPS 流量。一旦用户在其设备上配置了代理,他们就能够按照您的规则浏览网页。
哦,与您的问题无关,但是,除了令人讨厌的强制门户之外,您是否考虑过使用 EAP 来验证您的用户(并提供一个开放的网络仅供新用户注册并获取他们的 EAP 凭据)?