SQUID: detect Website name entered by user in browser

I am using squid as an explicit proxy within my organization to block certain websites in my infrastructure. I have successfully set it up using url_rewrite_program and ssl_bump features and its working like a charm.

The problem is, so far, i am not successful in figuring out the main website url either in squid's access.log or url_rewrite_program. i.e. when user accesses a website say http://www.yahoo.com, a large number of requests to many different hosts are logged and i cannot figure out which website user actually wanted to access. I also tried looking at referer header field and found out most of the time its not set. specially for https connect request.

Is there a neat and clean way to find out which websites are actually visited by users and which urls are actually requested internally by the webpage. Any help will be highly appreciated.

0
задан 18 January 2016 в 10:00
1 ответ

Простой и удобный способ определить, какой сайт посещал пользователь, - это посмотреть на заголовок Host HTTP-запроса. Если пользователь вводит адрес в адресную строку и браузер пользователя открывает дюжину различных URL-адресов, это означает, что пользователь посещает все эти сайты. Разница между «пользователь посещает сайт» и «браузер посещает сайт» строго философская: браузер посещает сайт по запросу пользователя.

Единственная причина, по которой вы на самом деле не можете быть уверены, какой сайт посещает пользователь, - это случай, когда пользователь заходит на сайт с запросом HTTPS, который squid регистрирует как запрос CONNECT с IP-адресом сверстник. Но так как вы успешно реализовали sslBump, не должно возникнуть никаких сложностей: для сайтов, на которые смотрели и смотрели, squid точно знает, что это такое. Остальные будут зависеть от ряда факторов.

0
ответ дан 5 December 2019 в 10:53

Теги

Похожие вопросы