Прокси-сервер (от англ. proxy - «представитель, уполномоченный») - служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент пидмикаеться к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail ), расположенный на другом сервере.Затем прокси-сервер или пидмикаеться к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кеш). В некоторых случаях запрос клиента или ответ сервера может быть изменена прокси-сервером в определенных целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак и помогает сохранять анонимность клиента.
Использование
Зачастую прокси-серверы применяются для следующих целей:
-
Обеспечение доступа с компьютеров локальной сети в интернете.
-
Кэширование данных: если часто происходят обращения к одним и тем же внешним ресурсам, то можно держать их копию на прокси-сервере и выдавать по запросу, снижая тем самым нагрузку на канал во внешнюю сеть и ускоряя получение клиентом искомой информации.
-
Сжатие данных : прокси-сервер загружает информацию из Интернета и передает информацию конечному пользователю в сжатом виде. Такие прокси-серверы используются в основном в целях экономии внешнего трафика.
-
Защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер ). См. также NAT.
-
Ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определенным веб-сайтам, ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы.
-
анонимизации доступа к различным ресурсам. Прокси-сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о прокси-сервер, например, IP-адрес, но не имеет возможности определить истинный источник запроса. Существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе.
Прокси-сервер, к которому может получить доступ любой пользователь сети интернет, называется открытым.
Виды прокси-серверов
Прозрачный прокси - схема связи, при которой трафик, либо его часть, перенаправляется на прокси-сервер неявно (средствами маршрутизатора ). При этом клиент может использовать все преимущества прокси-сервера без дополнительных настроек, но с другой стороны, нет выбора.
Обратный прокси - прокси-сервер, который в отличие от прямого, ретранслирует запросы клиентов из внешней сети на один или несколько серверов, логично расположенных во внутренней сети. Часто используется для балансировки сетевой нагрузки между несколькими веб-серверами и повышения их безопасности, играя при этом рольмежсетевого экрана на прикладном уровне.
Технические подробности
Клиентский компьютер имеет настройку (конкретной программы или операционной системы), согласно которой все сетевые соединения по некоторому протоколу осуществлять не на ip-адрес сервера (ресурса), который выделяется из DNS-имени ресурса, либо непосредственно заданный, а на ip-адрес (и другой порт) прокси-сервера.
При необходимости обращения к любому ресурсу по этому протоколу, клиентский компьютер открывает сетевое соединение с прокси-сервером (на нужном порту) и осуществляет обычный запрос, так если бы он обращался непосредственно к ресурсу.
Распознав данные запроса, проверив его корректность и разрешение для клиентского компьютера, прокси-сервер, не разрывая соединения, сам открывает новое сетевое соединение непосредственно с ресурсом и делает тот же самый запрос. Получив данные (или сообщение об ошибке), прокси-сервер передает их клиентскому компьютеру.
Из этого следует два основных ограничения обычного прокси-сервера:
-
Прокси-сервер должен быть полнофункциональным сервером и клиентом для каждого поддерживаемого протокола
-
Прокси-сервер может обслуживать только те сетевые протоколы, в запросе которых передается имя или ip-адрес ресурса (не относится к прозрачным прокси - они получают ip-адрес непосредственно с перехваченного соединения).
На заре распространения интернета прокси-серверы были популярным способом выхода в Интернет из локальных сетей. Этому способствовали следующие обстоятельства:
-
Основной протокол, использовавшийся - http, который легко проксиюеться;
-
Поддержка прокси большинством браузеров и / или операционных систем;
-
Контроль доступа и учет трафика по пользователям;
-
Прокси-сервер - это обычная программа (а не системная), которая может работать с минимальными правами на любой ОС с поддержкой сети (стека TCP / IP);
-
Отсутствие доступа в Интернет по другим протоколам часто было более преимуществом, чем недостатком.
В связи с возрастанием роли других сетевых протоколов, переходом к тарификации услуг интернета по скорости доступа, а также появлением дешевых аппаратных маршрутизаторов с функцией NAT, использование обычных прокси-серверов для выхода пользователей в Интернет применяется крайне редко.
Однако большое распространение получили прозрачные прокси-серверы (протокол http, иногда некоторые другие), в том числе и те, что входят в состав многих аппаратныхмаршрутизаторов для доступа в интернет, с целью сбора статистики и контроля доступа к сайтам. Другие порты (протоколы) при этом проходят через NAT.
Наиболее распространенные прокси-серверы
-
3proxy (BSD, многоплатформенный)
-
CoolProxy (proprietary, Windows)
-
HandyCache (shareware, Windows) бесплатный для домашнего использования
-
Kerio Control (proprietary, Windows, Linux)
-
Microsoft Forefront Threat Management Gateway (proprietary, Windows)
-
Nginx (веб-сервер, имеющий режим работы в качестве reverse proxy и часто для этого используется)
-
Squid (GPL, многоплатформенный)
-
Traffic Inspector (proprietary, Windows)
-
UserGate (proprietary, Windows)
-
Интернет Контроль Сервер (shareware, FreeBSD)
-
TOR (shareware, многоплатформенный)