Transparent proxy что это
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Transparent proxy
Прозрачный прокси (Transparent Proxy) — схема связи, при которой трафик, или его часть, перенаправляется на прокси-сервер неявно (средствами маршрутизатора). При этом клиент может использовать все преимущества прокси-сервера без дополнительных настроек браузера (или другого приложения для работы с интернетом).
Содержание
Описание
Такие прокси помогают ускорить доступ к страницам сайтов, которые определяет пользователь – в основном часто посещаемым. Ускорение загрузки происходит за счет помещения сайтов в кэш. Как правило, прозрачные прокси работают быстрее (скорость загрузки выше), чем их элитные или анонимные «товарищи». Работодатели используют этот тип прокси для ограничения доступа сотрудников к определенным сайтам (социальные сети, например). Основной недостаток – низкий уровень скрытности. В основном прозрачные прокси применяются для накрутки счетчиков на странице, при скачивании файлов с файлообменников, для блокировки локальных фаерволов.
Transparent Proxy примерно так передают HTTP-заголовки:
REMOTE_ADDR – демонстрирует IP прокси
HTTP_VIA – демонстрирует адрес прокси-сервера
Присутствие переменной _X_ говорит о необязательности использования данной переменной. Передача аналогичной переменной происходит в виде HTTP_X_FORWARDER_FOR. Однако лидеры прокси (Cash Engine, Squid) довольно активно поддерживают эту переменную. [2]
Squid
Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом (распространяется в соответствии с GNU GPL). Все запросы выполняет как один неблокируемый процесс ввода-вывода. В сочетании с некоторыми межсетевыми экранами и маршрутизаторами squid может работать в режиме прозрачного прокси. В этом режиме маршрутизатор вместо того, чтобы сразу пересылать HTTP-запросы пользователя HTTP-серверу в Интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кеша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер. При таком подходе проксирования аутентификация не предусмотрена, так как прозрачность проксирования это и подразумевает.
На сегодняшний момент реализована поддержка HTTPS. [3]
Типы прокси и их различия
Прозрачные прокси (Transparent Proxy)
Под прозрачными прокси понимаются стандартные прокси-серверы, которые не изменяют данные пользователя, оставляя их в «первозданном» виде. То есть они не прячут IP-адрес.
Transparent Proxy обрабатывает весь HTTP-трафик, при этом пользователю не нужно указывать никаких настроек.
Такие прокси помогают ускорить доступ к страницам сайтов, которые определяет пользователь – в основном часто посещаемым. Ускорение загрузки происходит за счет помещения сайтов в кэш. Как правило, прозрачные прокси работают быстрее (скорость загрузки выше), чем их элитные или анонимные «товарищи».
Работодатели используют этот тип прокси для ограничения доступа сотрудников к определенным сайтам (социальные сети, например).
Основной недостаток – низкий уровень скрытности. В основном прозрачные прокси применяются для накрутки счетчиков на странице, при скачивании файлов с файлообменников, для блокировки локальных фаерволов.
Transparent Proxy примерно так передают HTTP-заголовки:
REMOTE_ADDR – демонстрирует IP прокси
HTTP_VIA – демонстрирует адрес прокси-сервера
Присутствие переменной _X_ говорит о необязательности использования данной переменной. Передача аналогичной переменной происходит в виде HTTP_X_FORWARDER_FOR.
Однако лидеры прокси (Cash Engine, Squid) довольно активно поддерживают эту переменную.
Анонимные прокси (Anonymous proxy)
Если говорить о кэшировании, анонимные прокси имеют преимущества, аналогичные прозрачным. Плюс еще одно неоспоримое преимущество, суть которого передается в самом названии, – анонимность. А поскольку конфиденциальность в интернете – это гарантия того, что компьютер не будет взломан со всеми вытекающими отсюда последствиями, любителей анонимных прокси становится все больше и больше.
Анонимные прокси скрывают данные пользователя при интернет-серфинге. Они меняют IP-адрес случайным образом. И IP-адрес не является зарегистрированным по простой причине: значение HTTP_X_FORWARDER_FOR конечному сайту вообще не передается. Впечатляет, не правда ли?!
Анонимный прокси тоже выдает:
HTTP_VIA – демонстрирует адрес прокси-сервера
Однако все сведения заполняются исключительно «для галочки» и не несут правдивой информации. А больше ничего и не нужно, как считают многие интернет-пользователи.
Элитные прокси (Elite Proxy)
Использование элитного прокси – наиболее продвинутый уровень защиты, потому как такой прокси может в максимальной степени обеспечить безопасность нахождения в интернете.
Elite Proxy превосходно маскируется. Это значит, что в интернет-пространстве не появится никаких признаков использования прокси-сервера. Но узнать ваш IP-адрес будет невозможно. Заголовки HTTP_X_FORWARDED_FOR, HTTP_PROXY_CONNECTION, HTTP_VIA вообще не отправляются. Хост не получает никаких сведений: ни об использовании прокси, ни IP-адрес. В этом плане элитные прокси превосходят все остальные прокси-серверы.
Однако недостаток у Elite Proxy тоже имеется: заголовок REMOTE_ADDR сохраняет IP-адрес прокси. Поэтому при отправке пакетов с куками, сохраненными в результате интернет-серфинга, когда вы не использовали элитный прокси, сайты вас не узнают. Не хотите допустить подобное? Чистите кэш и cookies заранее.
«Прозрачный» HTTPS прокси для обхода блокировок Роскомнадзора
Привет, хабровчане! Я думаю, многие в последнее время столкнулись с проблемами доступа к нужным ресурсам из-за попыток Роскомпозоранадзора заблокировать Телеграм. И я думаю, комментарии тут излишни. Факт — эти ресурсы ни в чем не виноваты, но они заблокированы. Проблемы возникли с Viber, ReCaptcha, GoogleFonts, Youtube и др. (кроме самого телеграма). Это случилось и в моей организации, причем некоторые невинные сервисы нужны нам как воздух. В какое-то время решалось все использованием прокси серверов, но они были нестабильны или вовсе отключались (их также блокировал наш великий и могучий РКН).
После прочтения кучи статей, пришла идея научить Squid пускать отдельные URL через Tor. Использовать ли такой метод, решать вам. Но скажу, что после реализации пропали все проблемы, которые были до этого. Кому интересно, идем под кат.
Итак, для начала немного теории. Как мы все знаем, Tor — это не HTTP-прокси, его нельзя сделать прямым peer для нижележащего Squid’а. Он предоставляет SOCKS-проксирование (конечно же, не только, но нам нужно именно это). Чтобы нам поженить Tor со Squid, нужно что-то, что могло бы играть роль проводника от Tor к Squid и обратно. И конечно же, дамы и господа, это Privoxy. Как раз таки он способен быть прямым peer, и отправлять все далее в Tor.
Было, как я уже говорил, прочтено куча статей, но ни одна не подходила мне. Попалась вот эта статья, но и она мне не совсем подходила, так как мне не нужен bump. Вообще, все имеющиеся статьи, практически все, подразумевают либо бамп, либо только http, а в моем случае нужно и HTTPS, и splice, и прозрачность. Также видал вот это и это, но там совсем другие подходы. Свои плюсы и минусы. Я выбрал для себя именно связку Squid + Tor.
Я уже ранее писал о том, как сделать прозрачный Squid с проксированием HTTPS без подмены сертификатов. И конечно же, я попробовал реализовать идею на нем. Но меня ждало разочарование. HTTP запросы прекрасно уходили в TOR, а вот HTTPS нет. Проблема не очень-то и известная, и я узнал у одного из разработчиков, что это недостаток старых версий Squid. Но в ходе экспериментов было найдено решение — Squid 3.5.27, в котором исправлен данный баг + красивые доменные имена в логах (https), вместо ip адресов. Но и тут меня ждали несколько разочарований, о которых речь пойдет ниже. Но всё, как говорится, допиливается напильником.
Итак, исходные данные:
Итак, подготовимся к сборке:
Далее получаем исходники Squid 3.5.23
Качаем именно этот архив с исходниками Squid:
Переходим в каталог исходников Squid и обновляем исходники до новоскаченных сорцов:
Переходим в новоиспеченный каталог с обновленными исходниками:
Добавляем в debian/rules опции для компиляции:
Дальше нужно пропатчить исходники вот таким патчем:
Для чего он нужен? Я объясню. Когда я писал первую статью про peek and splice, я говорил что более новые версии не работают, и это было так, и вот как раз таки этот патч исправляет ту самую проблему, которая заключалась в том, что Squid выборочно рвет HTTPS соединения, с интересным сообщением в cache.log:
Дело в том, что на одном хосте что-то резолвится в один IP, на соседнем иногда в другой, на самом Squid в третий, т.к. существует кеш DNS и обновляется он не синхронно. Squid не находит соответствия ip-домен в своём кеше (потому что обновил свой кеш немного раньше или позже) и прерывает соединение. Вроде как, защита, но в наше время это считается нормальным (round-robin DNS). Разработчики перестраховались. И нам это не нужно совершенно! Тем, кто скажет, что данный патч, возможно, несет в себе угрозу безопасности, я отвечу, что по поводу этого патча я консультировался с Юрием Воиновым, который имеет непосредственное отношение к команде разработчиков Squid. Никакой угрозы здесь нет!
Итак, файлик для патча создали, код кинули, надо пропатчить:
Далее необходимо отменить применение одного патча при компиляции (иначе получите ошибку, что этот патч применить невозможно, так как он уже применен). Идем в debian/patches/series и закомментим там 0003-SQUID-2018_1.patch, поставив перед ним знак #:
Ну а дальше — компиляция и сборка пакетов!
и установим свеженькие пакеты
Если apt матерится на зависимости, сделайте
Далее нужно выключить Squid из автозагрузки (по умолчанию используется init файл, Squid жалуется на недоступность PID файла)
и создать systemd сервис в директории /etc/systemd/system (файл сервиса есть в исходниках, и полностью скопирован сюда)
Установим tor, privoxy
Конфиг Tor я лично вообще не трогал, а вот конфиг Privoxy можно привести к такому виду:
Почти готово. Перейдем в каталог /etc/squid, кое-что там изменим. Создадим pem файлик, необходимый для splice:
И приведем squid.conf к следующему виду:
Список url_regex имеет примерно такой вид (список дан для примера!):
Более подробно про этот формат списка читайте в оф документации. Результат себя долго ждать не заставил — все заработало, как и было запланировано. И работает по сей день. Возможно, со статьей опоздал, но она, вероятно, пригодится в будущем).
Тему буду пополнять по возможности.
UPD 04.05.18: можно добавить в torcc строчку
и в принципе отказаться от Privoxy. Спасибо dartraiden за замечание
Найден баг. Не рекомендуется использование HTTPTunnelPort, Privoxy нужен пока-что, пока не закроется вот это. Спасибо Юрию Воинову!
Также поправил статью по части libecap3. Не нужно компилировать ничего, а просто установить из репозитория Stretch. Спасибо AlucoST за замечание
UPD 05.05.18: товарищ dartraiden подсказывает, что в конфиг Tor можно добавить
Это исключает использование выходных узлов в указанных странах
Огромное спасибо Юрию Воинову, который помогал в решении проблем с работой данной связки!
Прозрачный прокси
Прокси предоставляет пользователям возможность работать в сети с большими преимуществами. Он фильтрует сайты, позволяет экономить трафик, предоставляет защищенный серфинг в интернете, а также позволят войти на запрещенные сайты. Это причины, по которым сервер используется повсеместно.
Существует 3 типа серверов:
Рассмотрим подробнее, что такое прозрачные прокси.
Особенности прозрачных прокси
Прозрачный прокси сервер является самым доступным, но он имеет свои особенности и преимущества, среди которых.:
Кто выбирает transparent proxy:
Единственный недостаток такого типа защиты – низкий уровень анонимности. Поэтому, если пользователю важна конфиденциальность в сети больше, чем скорость серфинга, лучше купить прокси-сервер анонимного типа.
Что такое Squid пакет
Squid прозрачный прокси относится к лидерам proxy.Он выполняет функцию сервера для HTTP, HTTPS, FTP, Gopher. Этот программный пакет может работать в режиме прозрачного прокси. В этом случае маршрутизатор посылает запросы прокси-серверу вместо того, чтобы направлять их сразу в интернет. Неоспоримый плюс использования пакета в том, что нет необходимости настраивать каждую клиентскую машину для работы с сервером.
Возможности transparent proxy позволяют работать в сети с минимальными усилиями по подключению сервера, а администраторам можно не настраивать браузеры вручную. Этот тип защиты не потеряет популярности в ближайшее время, ведь высокая скорость доступа к веб-страницам – одна из важнейших характеристик успешной работы в сети.
Прозрачный прокси-сервер.
в Интернет 09.11.2018 0 325 Просмотров
Прозрачный прокси-сервер, также известный как перехватывающий прокси-сервер или принудительный прокси-сервер, является сервером, который перехватывает исходящую информацию в сети до того, как она попадает в Интернет, без какой-либо конфигурации на клиентском компьютере. В отличие от явных прокси, которые требуют конфигурации на основе программного обеспечения, прозрачные прокси требуют только серверной конфигурации, что означает, что они могут использоваться в сети без ведома конечного пользователя. Эти серверы часто используются для оптимизации баланса нагрузки или содержимого фильтра. Многие школы и рабочие места используют этот прокси-сервер.
Как явный прокси-сервер, прозрачный прокси-сервер может повысить производительность сети с помощью процесса, известного как кеширование. Данные хранятся локально по первому запросу, что позволяет обрабатывать последующие запросы намного быстрее. В сети с использованием прозрачного прокси-сервера все запросы с клиентских компьютеров проходят через один хост, поэтому хост может хранить большую часть часто запрашиваемых данных локально, сохраняя необходимость передачи данных через Интернет. Когда выполняется большое количество веб-запросов – например, во многих школьных или бизнес-сетях – кэширование может сэкономить много времени и пропускной способности.
Прозрачный прокси-сервер также может использоваться для фильтрации или блокировки определенного веб-контента от доступа к сети. Сетевой администратор может установить список веб-сайтов, которые прокси-сервер будет фильтровать, прежде чем к ним смогут получить доступ конечные пользователи. Например, работодатель, возможно, пожелает запретить работникам просматривать спортивные сайты во время работы. При правильной конфигурации прозрачного прокси-сервера попытка проверить вчерашние спортивные результаты приведёт к ошибке страницы для сотрудника, не позволяя ему или ей тратить часы работы на веб-сайт, не связанный с работой. Хотя этот метод фильтрации часто будет достаточным для предотвращения случайного доступа пользователей к нежелательному контенту, опытные пользователи могут найти способы обхода процесса фильтрации из-за ограничений в этой технологии.
Прозрачные прокси-серверы полезны для многих образовательных и коммерческих компьютерных сетей. Прозрачный прокси-сервер не требует настройки на каждом клиентском компьютере, поэтому сетевые администраторы часто используют их в качестве средства экономии времени для отдельных настроек системы. Хотя прозрачный прокси обеспечивает те же преимущества кэширования и фильтрации, что и большинство явных прокси, он не предлагает никаких функций маскирования адресов интернет-протокола (IP). Поэтому прозрачный прокси не подходит для многих целей онлайн безопасности, часто связанных с веб-прокси-серверами.