Обход ограничений сети на рабочем ПК

Представим ситуацию:

На рабочем ноутбуке заблокировали половину нужных сайтов без объяснения причин. Даже не попросили "отнестись с пониманием". Работать неудобно: на элементарные действия и решение мелких проблем уходит вдвое больше времени без нормального ИИ и привычных инструментов.

Подобные ограничения - чисто гипотетически - можно было бы обойти с помощью обратного прокси, развернутого в одной локальной сети с рабочим ПК.

Поэтому, исключительно в целях эксперимента, я попробовал реализовать данный способ на практике. Так уж получилось, что я случайно выложил код в репозиторий на гитхабе и упаковал его в Docker, чтобы все работало без установки, по одной команде в консоли.

Техническая реализация довольно проста: Nginx предоставляет reverse proxy. Python управляет его конфигурацией и рендерит веб-морду с помощью Flask.
Приложение поднимается в Docker, забирая себе для работы диапазон портов.

Принцип действия схемой
Обход ограничений сети на рабочем ПК

Условия

  1. Рабочий ноут находится в одной локальной сети с вашим личным ПК (например, вы работаете на удаленке и раздаете на оба компа интернет с одного Wi-Fi роутера)

  2. Возможность с рабочего ноута подключаться к IP-адресам внутри вашей локальной сети (как правило, такая возможность есть, когда выключен корпоративный ВПН)

Запуск

  1. Скачиваем Locality архивом или тянем гитом (на домашний ПК, не рабочий!):
    git clone https://github.com/novibe/locality.git

  2. В папке программы выполняем команду:
    docker-compose up -d
    По умолчанию, веб-интерфейс расположен на порту 48000, а диапазон используемых портов для прокси выставлен на 8100-8200. Вы можете изменить эти настройки перед запуском в файле .env

  3. С другого устройства подключаемся к этому порту по ссылке вида
    https://{IP устройства с запущенным Locality}:{порт с веб-интерфейсом}
    Например: https:/192.168.0.233:48000

    Подключение не защищено

    При первом подключении браузер обратит внримание на неизвестный сертификат. Он встретит вас подобным окном:

    Нажмите на кнопку Дополнительные настойки и затем на строку вида
    Перейти на сайт 192.168....
    Предупреждение возникает, потому что браузер ничего не знает о данном сертификате, поскольку он не опубликован в авторизованных центрах сертификации / не добавлен в хранилище сертификатов на самом устройстве.

    Тем не менее, свою работу он сделает - между ПК и Locality будет установлено защищенное соединение.

  4. В веб-интерфейсе Locality добавляем нужные нам сайты. Каждый добавленный сайт встанет на свой порт. По умолчанию, порт назначится автоматически. Если нужно, можно вписать желаемое значение самостоятельно.
    В качестве примера добавил Telegram и Gemini.

Готово! При нажатии на плитку произойдет автоматический редирект на нужный порт.

Помним о последствиях

Обычно, обращение на локальный IP не вызывает никаких подозрений. Тем более, что данные передаются в зашифрованном виде, препятствуя анализу трафика.

Тем не менее, есть способ, которым можно "вскрыть" шифрование: MITM-атака.
Так что перед использованием Locality я бы советовал убедиться, что в вашем случае такого риска нет.
Ну, и банальные кейлоггеры да скриншоты экрана тоже никто не отменял.

Как проверить, использует ли рабочий ПК анализ трафика через Man-in-the-middle

Установка корпоративного сертификата позволяет компании перехватывать и расшифровывать весь HTTPS-трафик. Система безопасности генерирует подменные сертификаты для сайтов на лету. Это открывает доступ к содержимому трафика несмотря на шифрование.

Зачастую, системы, которые используют этот подход, понижают уровень шифрования с TLSv1.3 до TLSv1.2, что позволяет их обнаружить. Этим признаком пользуется Locality, чтобы детектить вмешательство

Особо продвинутые системы могут работать и с TLSv1.3. Тем не менее, их вмешательство тоже можно легко обнаружить, проверив сертификат, который использует браузер.
Для примера, зайдем в Google и посмотрим, какой сертификат используется поисковиком. Если в сертификате указан издатель не Google, а "Рога и Копыта" - вы под колпаком!

Итог

Удобный инструмент, который позволяет немного облегчить себе жизнь. Чисто гипотетически.


Внимание!

Официальный сайт бота по ссылке ниже.

Официальный сайт