Прокси-сервер

Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служба (комплекс программ) в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем, прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кэш). В некоторых случаях, запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак и помогает сохранять анонимность клиента.

Прокси-сервер
Возможности прокси-сервера

Чаще всего прокси-серверы применяются для следующих целей:

  1. Обеспечение доступа с компьютеров локальной сети в Интернет.
  2. Кэширование данных: если часто происходят обращения к одним и тем же внешним ресурсам, то можно держать их копию на прокси-сервере и выдавать по запросу, снижая тем самым нагрузку на канал во внешнюю сеть и ускоряя получение клиентом запрошенной информации.
  3. Сжатие данных: прокси-сервер загружает информацию из Интернета и передаёт информацию конечному пользователю в сжатом виде. Такие прокси-серверы используются в основном с целью экономии внешнего трафика клиента или внутреннего — компании, в которой установлен прокси-сервер.
  4. Защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер).
  5. Ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определённым веб-сайтам, ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы.
  6. Анонимизация доступа к различным ресурсам. Прокси-сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о прокси-сервере, например, IP-адрес, но не имеет возможности определить истинный источник запроса. Существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе.
  7. Обход ограничений доступа. Прокси-серверы популярны среди пользователей несвободных стран, где доступ к некоторым ресурсам ограничен законодательно и фильтруется.

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

Виды прокси-серверов

Прозрачный прокси — схема связи, при которой трафик, или его часть, перенаправляется на прокси-сервер неявно (средствами маршрутизатора). При этом клиент может использовать все преимущества прокси-сервера без дополнительных настроек, но с другой стороны, не имеет выбора.

Обратный прокси — прокси-сервер, который в отличие от прямого, ретранслирует запросы клиентов из внешней сети на один или несколько серверов, логически расположенных во внутренней сети. Часто используется для балансировки сетевой нагрузки между несколькими веб-серверами и повышения их безопасности, играя при этом роль межсетевого экрана на прикладном уровне.

Прокси-сервер
Прозрачные прокси

Технические подробности

Клиентский компьютер имеет настройку (конкретной программы или операционной системы), в соответствии с которой все сетевые соединения по некоторому протоколу совершаются не на IP-адрес сервера (ресурса), выделяемый из DNS-имени ресурса, или напрямую заданный, а на ip-адрес (и другой порт) прокси-сервера.

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

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

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

Прокси-серверы являются самым популярным способом выхода в Интернет из локальных сетей предприятий и организаций. Этому способствуют следующие обстоятельства:

  • основной используемый в интернете протокол — HTTP, в стандарте которого описана поддержка работы через прокси;
  • поддержка прокси большинством браузеров и/или операционных систем;
  • контроль доступа и учёт трафика по пользователям;
  • фильтрация трафика (интеграция прокси с антивирусами);
  • прокси-сервер — может работать с минимальными правами на любой ОС с поддержкой сети (стека TCP/IP);
  • многие приложения, использующие собственные специализированные протоколы, могут использовать HTTP как альтернативный транспорт или SOCKS-прокси как универсальный прокси, подходящий для практически любого протокола;
  • отсутствие доступа в Интернет по другим (нестандартным) протоколам может повысить безопасность в корпоративной сети.

В настоящее время, несмотря на возрастание роли других сетевых протоколов, переход к тарификации услуг сети Интернет по скорости доступа, а также появлением дешёвых аппаратных маршрутизаторов с функцией NAT, прокси-серверы продолжают широко использоваться на предприятиях, так как NAT не может обеспечить достаточный уровень контроля над использованием Интернета (аутентификацию пользователей, фильтрацию контента). Поэтому, часто современный ПК с прокси — это еще и файерволл, и почтовый сервер, и сервер динамической раздачи IP-адресов в локальной сети (DHCP-сервер), и передатчик запросов разрешения имен интернета (DNS-ретранслятор).

Способы использования прокси

Существует несколько способов использования прокси. Самый простой — прибегнуть к услугам уже готового сервера своего провайдера. Другой вариант — общедоступный удаленный прокси-сервер. Но здесь необходимо помнить о том, что чем дальше будет этот сервер, тем меньше будет смысла в его кэширующей функции (может сложиться ситуация, когда сервер, с которым идет обмен, находится географически ближе, чем прокси – это ощутимо замедлит работу с Сетью). Третий способ — установка собственного локального прокси-сервера. Запоминать страницы он будет неплохо, однако о подмене своего IP-адреса вам придется забыть (по крайней мере, при работе в интернете). Наконец, возможна схема, при которой через один физический кэширующий сервер выходят в интернет все пользователи какой-либо локальной сети. Здесь работает все – и запоминание страниц, и подмена IP-адресов локальной сети (LAN) в один IP-адрес сети глобальной (WAN), и функции безопасности, которые подразумевают дополнительную защиту пользователя от непосредственных атак из Сети (в этом случае атакующий будет “ломать” прокси).

Настройка прокси в браузере

Для того чтобы воспользоваться прокси-сервером или сервером провайдера, нужно сделать соответствующие настройки в Свойствах обозревателя. В меню браузера IEвыбираем Сервис > Свойства обозревателя > Подключения > Настройка и там прописываем доменный или IP-адрес прокси и порт, по которому он работает.

Настройка прокси в NetscapeCommunicator, Mozilla, Chrom и Opera проходит по одному сценарию и сильно схожи. Например, в Operaпрокси сервер настраивается следующим образом: Настройки – общие настройки – расширенные – сеть – прокси-серверы.

Создание цепочки прокси

Может оказаться, что для полной анонимности и абсолютной безопасности одного прокси-сервера недостаточно. В этом случае применяются так называемые цепочки прокси-серверов. Однако HTTP-серверы не способны корректно выстраиваться в цепочки: HTTP-запросы могут в дальнейшем незаметно для пользователя перейти на работу с Сетью напрямую, минуя HTTP-прокси. Чтобы избежать этого, используются CGI-прокси – серверы интернета, которые корректно обрабатывают выстраивание прокси в цепочки с помощью скриптов, реализованных на Perl.

Эти серверы принято также называть анонимайзерами — по имени первого веб-ресурса, предоставлявшего такие услуги. Как правило, на главной странице сайта-анонимайзера есть строка, куда вводится адрес, по которому вы хотите обратиться через прокси. В эту строку можно ввести и адрес другого прокси. Таким образом, у вас получится цепочка. Но если один из серверов выйдет из строя, она разрушится.

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

Наиболее распространённые прокси-серверы

3proxy (BSD, многоплатформенный)

CoolProxy (proprietary, Windows)

Eserv (GPL, Windows)

HandyCache (shareware, Windows) бесплатен для домашнего использования

Kerio Control (proprietary, Windows, Linux)

Microsoft Forefront Threat Management Gateway, ранее Microsoft ISA Server (proprietary, Windows)

Nginx (веб-сервер, имеющий режим работы в качестве reverse proxy и часто для этого использующийся)

Squid (GPL, многоплатформенный)

Traffic Inspector (proprietary, Windows)

UserGate (proprietary, Windows)

Интернет Контроль Сервер (shareware, FreeBSD)

TOR (BSD, многоплатформенный)

Ideco ICS (Linux)

Для использования прокси-сервера в школе, я советую HandyCache, который бесплатен для использования в домашних условиях и довольно недорогой для использования в организациях. Он имеет приятный русскоязычный интерфейс, удобные настройки, управляемые чёрный и белый списки и т. д.

Оставьте ответ