Прокси-сервер
Прокси-сервер (от англ. proxy — представитель, уполномоченный; часто просто прокси, сервер-посредник) — промежуточный сервер (комплекс программ) в компьютерных сетях, выполняющий роль посредника между пользователем и целевым сервером (при этом о посредничестве могут как знать, так и не знать обе стороны), позволяющий клиентам как выполнять косвенные запросы (принимая и передавая их через прокси-сервер) к другим сетевым службам, так и получать ответы. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Прокси-сервер позволяет защищать компьютер клиента от некоторых сетевых атак и помогает сохранять анонимность клиента, но также может использоваться мошенниками для скрытия адреса сайта, уличённого в мошенничестве, изменения содержимого целевого сайта (подмена), а также перехвата запросов самого пользователя.
Использование
Чаще всего прокси-серверы применяются для следующих целей:
- обеспечение доступа компьютеров локальной сети к сети Интернет;
- кэширование данных: если часто происходят обращения к одним и тем же внешним ресурсам для снижения нагрузки на канал во внешнюю сеть и ускорения получения клиентом запрошенной информации;
- сжатие данных: прокси-сервер загружает информацию из Интернета и передаёт информацию конечному пользователю в сжатом виде для экономии внешнего сетевого трафика клиента или внутреннего — организации, в которой установлен прокси-сервер;
- защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер);
- ограничение доступа из локальной сети к внешней: например, можно запрещать доступ к определённым веб-сайтам, ограничивать использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы;
- анонимизация доступа к различным ресурсам: прокси-сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о прокси-сервере, например IP-адрес, но не имеет возможности определить истинный источник запроса; существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе;
- обход ограничений доступа: используется, например, пользователями стран, где доступ к некоторым ресурсам ограничен законодательно и фильтруется.
Прокси-сервер, к которому может получить доступ любой пользователь сети интернет, называется открытым.
Виды прокси-серверов
Прозрачный прокси — схема связи, при которой трафик или его часть перенаправляется на прокси-сервер неявно (средствами маршрутизатора). При этом клиент может использовать все преимущества прокси-сервера без дополнительных настроек браузера (или другого приложения для работы с интернетом). Пример создания маршрута для такой схемы: route -p add 10.32.5.5 mask 255.255.255.255 10.32.1.14.
Обратный прокси — прокси-сервер, который, в отличие от прямого, ретранслирует запросы клиентов из внешней сети на один или несколько серверов, логически расположенных во внутренней сети. Часто используется для балансировки сетевой нагрузки между несколькими веб-серверами и повышения их безопасности, играя при этом роль межсетевого экрана на прикладном уровне.
Веб-прокси — широкий класс прокси-серверов, выполненных в форме веб-приложения.
Технические подробности
Клиентский компьютер имеет настройку (конкретной программы или операционной системы), в соответствии с которой все сетевые соединения по некоторому протоколу совершаются не на IP-адрес сервера (ресурса), выделяемый из DNS-имени ресурса или напрямую заданный, а на IP-адрес (и другой порт) прокси-сервера.
При необходимости обращения к любому ресурсу по этому протоколу клиентский компьютер открывает сетевое соединение с прокси-сервером (на нужном порту) и совершает обычный запрос, как если бы он обращался непосредственно к ресурсу.
Распознав данные запроса, проверив его корректность и разрешения для клиентского компьютера, прокси-сервер, не разрывая соединения, сам открывает новое сетевое соединение непосредственно с ресурсом и делает тот же самый запрос. Получив данные (или сообщение об ошибке), прокси-сервер передаёт их клиентскому компьютеру.
Таким образом, прокси-сервер является полнофункциональным сервером и клиентом для каждого поддерживаемого протокола и имеет полный контроль над всеми деталями реализации этого протокола, имеет возможность применения заданных администратором политик доступа на каждом этапе работы протокола.
Прокси-серверы являются самым популярным способом выхода в Интернет из локальных сетей предприятий и организаций. Этому способствуют следующие обстоятельства:
- основной используемый во Всемирной паутине протокол — HTTP, в стандарте которого описана поддержка работы через прокси;
- поддержка прокси большинством браузеров и операционных систем;
- контроль доступа и учёт трафика по пользователям;
- фильтрация трафика (интеграция прокси с антивирусами);
- прокси-сервер — может работать с минимальными правами на любой ОС с поддержкой сети (стека TCP/IP);
- многие приложения, использующие собственные специализированные протоколы, могут использовать HTTP как альтернативный транспорт или SOCKS-прокси как универсальный прокси, подходящий для практически любого протокола;
- отсутствие доступа в Интернет по другим (нестандартным) протоколам может повысить безопасность в корпоративной сети.
В настоящее время[уточнить], несмотря на возрастание роли других сетевых протоколов, переход к тарификации услуг сети Интернет по скорости доступа, а также появлением дешёвых аппаратных маршрутизаторов с функцией NAT, прокси-серверы продолжают широко использоваться на предприятиях, так как NAT не может обеспечить достаточный уровень контроля над использованием Интернета (аутентификацию пользователей, фильтрацию контента).
Проксификаторы
Проксификатор — это программа, перенаправляющая другие программы через прокси-серверы. Проксификаторы часто применяются для интернет-клиентов, которые не поддерживают прокси-серверы.