Пикабу, привет! Привет Лиге админов!
Моральную сторону вопроса оставим за бортом. Идея проекта родилась из бизнес-запроса, с которым, как мне кажется, сталкивались многие из нас.
Примерно лет пять назад меня попросили получать инфу: на какие сайты ходят сотрудники компании с рабочих компов. Специалисты знают, что затык тут в шифровании HTTPS.
На тот момент по интернету ходила инфа о такой фиче squid-proxy, как ssl bumping (https://support.kaspersky.com/KWTS/6.0/en-US/166244.htm). Увы, идея оказалась нежизнеспособной, т.к. переставали корректно отрабатывать сервисы Google (с ними же такие популярные сайты, как YouTube и пр.).
В итоге был написан скрипт на питоне - https://github.com/aleksandr-oliferuk/pcap2squid/blob/main/p...
Основная идея была в протоколе TLS, точнее в его сообщении "hello" от клиента:
TLS v1.2 - https://datatracker.ietf.org/doc/html/rfc5246#section
TLS v1.3 - https://datatracker.ietf.org/doc/html/rfc8446#section
Как показала практика, в этой секции пакета часто передаётся как минимум доменное имя сайта, к которому пытается подключиться клиент.
Чуть позже я познакомился с docker'ом, и сварганил из всех наработок приложение - https://github.com/aleksandr-oliferuk/pcap2squid
Оно может получать трафик напрямую с центрального шлюза или от микротик-сниффера (чтобы получало напрямую, надо пересобрать контейнер) и выводить статистику в удобный графический отчёт (lightsquid). Причём всё это практически в режиме реального времени. Да, часть пакетов может потеряться, но я считаю, что если человек реально зашёл на сайт, то он на нём посидит - и мы это увидим.
P. S.
Пост написан ради обсуждения с коммьюнити. Мне кажется, что мой код говно, и я теряю слишком много данных... Или нет. Велкам в комменты.
P. P. S.
Моральную сторону вопроса предлагаю всё-таки оставить за бортом.
P. P. P. S.