Я использую squid как явный прокси в своей организации для блокировки определенных веб-сайтов в моей инфраструктуре. Я успешно настроил его, используя функции url_rewrite_program и ssl_bump, и он работает как шарм.
Проблема в том, что до сих пор мне не удалось определить URL-адрес основного веб-сайта ни в журнале доступа squid, ни в url_rewrite_program. т.е. когда пользователь заходит на сайт, говорят http://www.yahoo.com, регистрируется большое количество запросов к разным хостам, и я не могу понять, какой пользователь веб-сайта действительно хотел получить доступ. Я также попытался посмотреть поле заголовка referer и обнаружил, что большую часть времени он не установлен. специально для запроса на соединение https.
Есть ли аккуратный и понятный способ узнать, какие веб-сайты фактически посещают пользователи и какие URL-адреса действительно запрашиваются внутри веб-страницей. Любая помощь будет высоко оценена.
Четкий и удобный способ определить, какой сайт посещал пользователь, - это посмотреть на Host
заголовок HTTP-запроса. Если пользователь вводит адрес в адресную строку и браузер пользователя открывает дюжину различных URL-адресов, это означает, что пользователь посещает все эти сайты. Разница между «пользователь посещает сайт» и «браузер посещает сайт» строго философская: браузер посещает сайт по запросу пользователя.
Единственная причина, по которой вы на самом деле не можете быть уверены, какой сайт посещает пользователь, - это случай, когда пользователь посещает сайт с запросом HTTPS, который squid будет регистрировать как CONNECT
запрос с IP-адресом пира. Но поскольку вы успешно реализовали sslBump, не должно возникнуть никаких сложностей: для сайтов, которые просматривают и просматривают, squid будет точно знать, что они из себя представляют. Остальные будут зависеть от ряда факторов.