对于鱿鱼的专属门户网站的局限性,我有些困惑。我正在运行一个鱿鱼代理作为本地网络和Internet之间的主要网关。它允许HTTP和https流量。未通过鱿鱼的互联网流量被阻止。没有SSL活跃,也没有计划引入,因为我想避免在客户端上安装证书。
我想在客户端第一次向互联网(或连接到网络)发出请求时显示一个强制门户。作为PoC,我使用了鱿鱼的“门户启动页面”功能:
acl localserver dstdomain <internal_server_IP>
http_access allow localserver
external_acl_type splash_page ttl=10 concurrency=100 %SRC /usr/lib64/squid/ext_session_acl -t 7200 -b /usr/libexec/squid/sessions
acl existing_users external splash_page
deny_info http://<internal_server_IP>/tos.html existing_users
http_access deny !existing_users
这对于任何HTTP流量都适用。 但是,任何HTTPS流量都会显示一个错误,指出该连接已关闭而未显示强制门户。
据我所知,这是可以预期的,因为浏览器仅在提供SSL握手时才会继续运行,并且会拒绝任何其他响应(例如上述示例中的重定向)。从安全的角度出发,这很有道理。
不管建立了什么连接,是否有任何方法可以显示俘虏的门户?我了解到我无法重定向HTTPS流量。除了发出SSL冲击/ MITM之外,是否有其他方法可以在发出CONNECT请求之前进行干预?还是根本无法在这样的环境中向打开HTTPS连接的用户显示强制门户?