eserv.ru // WhatIsProxyServer

wikipost /2011-11-09 20:38/ (v6)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
News
15.05.2012
Eserv504
15.05.2012
ActiveSync
01.04.2012
Eproxy508
25.03.2012
Eserv503
26.02.2012
Eserv502
08.02.2012
UMI.CMS
22.12.2011
Eserv431
20.12.2011
Eproxy507
15.11.2011
Eproxy506
19.09.2011
Eproxy505
08.09.2011
Eserv430
07.09.2011
Lightning
19.07.2011
PoweredBy
16.07.2011
IPv6
08.07.2011
Eproxy5beta1
17.06.2011
IPv6DNS
13.06.2011
IPv6Mail
21.03.2011
Eserv428
22.10.2010
Eserv426
22.10.2010
SSL
22.04.2010
Eserv423
20.04.2010
Eserv4WhatsNew
19.04.2010
EservLDAP
19.04.2010
EservDHCP
19.04.2010
EservRubricator
08.04.2010
EservDNS
08.04.2010
NSСI
08.04.2010
WPAD
27.03.2010
Eserv422
27.03.2010
Eserv4Docs
26.03.2010
Eserv4FAQ
21.03.2010
EservIrc
05.03.2010
Eserv421
05.03.2010
HttpProxy
02.03.2010
EservVideo
02.12.2009
Eserv4Wiki
02.12.2009
Eserv4acWEB
02.12.2009
PopPull
22.11.2009
PigMailPigProxy2/WhatsNew
22.11.2009
PigMail/WhatsNew
23.09.2009
FossilEservHowTo
22.09.2009
SourceCodeManagement
22.09.2009
FossilScm
16.09.2009
SendEmail
08.09.2009
RoundCube
07.05.2009
GitScm
07.05.2009
GitEservHowTo
06.05.2009
SunBird

Что такое прокси-сервер, и зачем он нужен

#|
||Если вы ищете прокси-сервер для Windows, то попробуйте Eproxy из Eserv/4.||
|#

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

Из многочисленных значений английского слова proxy (см. Dictionary:proxy ) в данном контексте применимы такие: "доверенное лицо", "полномочный представитель". То есть некто, кто действует от вашего имени по вашему поручению вместо вас. В компьютерах прокси — это программа, которая передает запросы ваших программ (браузеров и других) в интернет, получает ответы и передает их обратно. Необходимость в такой программе возникает обычно, если с пользовательского компьютера невозможно работать в интернете непосредственно напрямую из-за того, что у него нет прямого подключения к интернету (модема, например), но есть на другом компьютере в его сети. Тогда на этом другом компьютере ставят программу прокси, а все остальные компьютеры в локальной сети настраивают таким образом, чтобы работа велась через прокси. Сейчас через прокси умеют работать практически все популярные интернет-программы. Это значит что все пользователи локальной сети могут получить полноценный доступ в интернет, если хотя бы один из них этот доступ уже имеет.

Возможна ли работа всех компьютеров локальной сети в интернете без прокси? Да, возможна. Когда-то все так работали Но такая работа требует выполнения определенных дополнительных условий и имеет свои минусы в сравнении с работой через прокси. Какие условия: каждому компьютеру должен быть выдан персональный IP-адрес в сети интернет, и построена схема маршрутизации так, что пакеты будут попадать именно на этот компьютер. Это невозможно сделать без участия провайдера. Провайдеры идут на это, но, как правило, за отдельную плату. Например, $5 за каждый IP в месяц. Это хлопотно, дорого и снижает уровень безопасности вцелом: каждый компьютер вашей сети станет потенциальной мишенью хакеров, вирусных атак и прочих "прелестей" интернета. При правильной настройке компьютеров это не очень страшно, но рядовые пользователи не склонны следить за безопасностью своих компьютеров, значит будут дополнительные хлопоты у администраторов сети. Возможностей контролировать работу пользователей у администратора будет немного, так как система децентрализована. Кстати, при таком способе подключения тоже нужна программа-посредник на том компьютере, который непосредственно подключен к интернету. Но при наличии реальных IP-адресов эта программа — обычный роутер (маршрутизатор) IP-пакетов, он является частью операционной системы. И к этой программе название "прокси" не применяют. Важное отличие маршрутизатора от прокси — при использовании маршрутизатора IP-пакеты остаются без изменений, в них сохраняются исходные адреса компьютеров ЛС. А прокси всегда работает от своего адреса, а адреса клиентов не передаются, т.к. недоступны из интернета. Маршрутизатор, меняющий адреса, уже является прокси (его называют NAT-proxy, NAT = network address translation).

Какие бывают виды прокси? Упомянутый выше NAT-proxy — самый простой вид прокси. Теперь он даже входит в состав Windows 2000 и Windows XP. Там он называется "Общий доступ к подключению интернета" и включается галочкой в свойствах модемного соединения. Этот прокси работает прозрачно для пользователя, никаких специальных настроек в программах не требуется. Но на этом удобства этого прокси заканчиваются. Влиять на работу "общего доступа" Windows (например, ограничивать список доступных сайтов для отдельных пользователей) вы не сможете. Другие NAT-proxy могут быть более гибкими, но их общая проблема — универсальность. Они не "вникают" в тонкости тех прикладных протоколов, которые через себя пропускают, поэтому и не имеют средств управления ими. Специализированные прокси (для каждого протокола интернета свой вид прокси) имеют ряд преимуществ и с точки зрения администраторов, и с точки зрения пользователей. Ниже перечислены виды специализированных прокси.

HTTP-прокси — самый распространенный. Он предназначен для организации работы браузеров и других программ, использующих протокол HTTP. Браузер передает прокси-серверу URL ресурса, прокси-сервер получает его с запрашиваемого веб-сервера (или с другого прокси-сервера) и отдает браузеру. У HTTP-прокси широкие возможности при выполнении запросов:

  • Можно сохранять полученные файлы на диске сервера. Впоследствии, если запрашиваемый файл уже скачивался, то можно выдать его с диска без обращения в интернет — увеличивается скорость и экономится внешний трафик (который может быть платным). Эта опция называется кэшированием — именно её очень любят администраторы и пользователи — настолько, что считают её главной функцией прокси. Однако приводимые оценки экономии (в описаниях встречалось от 30 до 60%) слишком оптимистичны, не верьте им. На деле получается не более 10-15% — современный интернет очень динамичен, страницы часто меняются, зависят от работающего с ними пользователя и т.д. — такие данные кэшировать нельзя, веб-серверы обычно вставляют в HTTP-заголовки специальные указания об этом, чтобы браузеры и прокси имели это в виду. Хотя многие прокси-серверы можно настроить так, чтобы эти указания частично игнорировались — например, перечитывать страницу не чаще одного раза в день.
  • Можно ограничивать доступ к ресурсам. Например, завести "черный список" сайтов, на которые прокси не будет пускать пользователей (или определенную часть пользователей, или в определенное время и т.д.). Ограничения можно реализовать по-разному. Можно просто не выдавать ресурс — например, выдавая вместо него страницу "запрещено администратором" или "не найдено". Можно спрашивать пароль и авторизованных пользователей допускать к просмотру. Можно, не спрашивая пароля, принимать решение на основании адреса или имени компьютера пользователя. Условия и действия в принципе могут быть сколь угодно сложными (не во всех прокси, но в нашем точно .
  • Можно выдавать не тот ресурс, который запрашивается браузером. Например, вместо рекламных баннеров и счетчиков показывать пользователям прозрачные картинки, не нарушающие дизайн сайта, но существенно экономящие время и трафик за счет исключения загрузки картинок извне.
  • Можно ограничивать скорость работы для отдельных пользователей, групп или ресурсов. Например, установить правило, чтобы файлы *.mp3 качались на скорости не более 1кб/сек, чтобы предотвратить забивание вашего интернет-канала трафиком меломанов, но не лишать их полностью этого удовольствия. Эта возможность, к сожалению, есть не во всех прокси. В Eproxy эта возможность есть. Она реализуется дополнением TrafC, который кроме ограничения пропускной способности (скорости) может ограничивать и суммарный трафик.
  • Ведутся журналы работы прокси — можно подсчитывать трафик за заданный период, по заданному пользователю, выяснять популярность тех или иных ресурсов и т.д.
  • Можно маршрутизировать веб-запросы — например, часть направлять напрямую, часть через другие прокси (прокси провайдера, спутниковые прокси и т.д.). Это тоже помогает эффективнее управлять стоимостью трафика и скоростью работы прокси вцелом.
Мы перечислили основные, но не все возможности HTTP-proxy. Но уже одних перечисленных достаточно чтобы убедиться, что без HTTP-proxy в серьезной сети не обойтись

FTP-прокси бывает двух основных видов в зависимости от протокола работы самого прокси. С ftp-серверами этот прокси, конечно, всегда работает по протоколу FTP. А вот с клиентскими программами — браузерами и ftp-клиентами (CuteFTP, FAR, и др.) прокси может работать как по FTP, так и по HTTP. Второй способ удобнее для браузеров, т.к. исторически является для них "родным". Браузер запрашивает ресурс у прокси, указывая протокол целевого сервера в URL — http или ftp. В зависимости от этого прокси выбирает протокол работы с целевым сервером, а протокол работы с браузером не меняется — HTTP. Поэтому, как правило, функцию работы с FTP-серверами также вставляют в HTTP-прокси, т.е. HTTP-прокси, описанный выше, обычно с одинаковым успехом работает как с HTTP, так и с FTP-серверами. Но при "конвертации" протоколов FTP<->HTTP теряется часть полезных функций протокола FTP. Поэтому специализированные ftp-клиенты предпочитают и специальный прокси, работающий с обеими сторонами по FTP. В Eserv и Eproxy мы называем этот прокси FTP-gate, чтобы подчеркнуть отличие от FTP-прокси внутри HTTP-прокси. Также этот прокси называется в некоторых ftp-клиентах. Хотя встречаются и вносящие путаницу названия. Например, в программе CuteFTP FTP-gate называют firewall, хотя FireWall в общем случае — это вообще не прокси, а фактически программа обратного назначения — не для подключения к интернету, а для изоляции от него Для прокси в FireWall оставляют специальные "дыры". FTP-gate поддерживают различные способы указания в FTP-протоколе целевого сервера, с которым FTP-клиент хочет работать, в настройке FTP-клиентов обычно предлагается выбор этого способа, например как показано на рисунке ниже:
cute proxy
Здесь USER user@site, OPEN site, и т.д. — способ указания сервера, с которым производится работа. Такое многообразие связано с тем, что нет общепринятого стандарта на этот вид прокси, и применяются такие хитрые добавки к стандартным командам FTP-протокола.


HTTPS-прокси — фактически часть HTTP-прокси. S в названии означает "secure", т.е. безопасный. Не смотря на то, что программно это часть HTTP-прокси, обычно HTTPS выделяют в отдельную категорию (и есть отдельное поле для него в настройке браузеров). Обычно этот протокол — безопасный HTTP — применяют, когда требуется передача секретной информации, например, номеров кредитных карт. При использовании обычного HTTP-прокси всю передаваемую информацию можно перехватить средствами самого прокси (т.е. это под силу администратору ЛС) или на более низком уровне, например, tcpdump (т.е. и администратор провайдера и любого промежуточного узла и вообще любой человек, имеющий физический доступ к маршрутам передачи ваших данных по сети, может при большом желании узнать ваши секреты). Поэтому в таких случаях применяют secure HTTP — всё передаваемое при этом шифруется. Прокси-серверу при этом дается только команда "соединится с таким-то сервером", и после соединения прокси передает в обе стороны шифрованный трафик, не имея возможности узнать подробности (соответственно и многие средства управления доступом — такие как фильтрация картинок — не могут быть реализованы для HTTPS, т.к. прокси в этом случае неизвестно, что именно передается). Собственно в процессе шифрации/дешифрации прокси тоже участия не принимает — это делают клиентская программа и целевой сервер. Наличие команды "соединиться с таким-то сервером" в HTTPS-прокси приводит к интересному и полезному побочному эффекту, которым все чаще пользуются разработчики клиентских программ. Так как после соединения с указанным сервером HTTPS-прокси лишь пассивно передает данные в обе стороны, не производя никакой обработки этого потока вплоть до отключения клиента или сервера, это позволяет использовать прокси для передачи почти любого TCP-протокола, а не только HTTP. То есть HTTPS-прокси одновременно является и простым POP3-прокси, SMTP-прокси, IMAP-прокси, NNTP-прокси и т.д. — при условии, что соответствующая клиентская программа умеет так эксплуатировать HTTPS-прокси (увы, далеко не все еще это умеют, но есть вспомогательные программы, "заворачивающие" трафик обычных клиентов через HTTPS-прокси). Никаких модификаций целевого сервера не требуется. Фактически HTTPS-прокси является программируемым mapping-proxy, как и Socks-proxy.

Mapping-прокси — способ заставить работать через прокси те программы, которые умеют работать с интернетом только напрямую. При настройке такого прокси администратор создает как бы "копию" целевого сервера, но доступную через один из портов прокси-сервера для всех клиентов локальной сети — устанавливает локальное "отображение" заданного сервера. Например, пользователи локальной сети хотят работать с почтовым сервером mail.ru не через браузер, а с использованием почтовой программы Outlook Express или TheBat. Эти программы не умеют работать через прокси (кроме случая, когда Outlook получает почту по HTTP с hotmail.com — тогда он, как и браузер, пользуется HTTP-прокси). Простейший способ работать с mail.ru по POP3 через прокси — установить локальное отображение сервера pop.mail.ru. И в Outlook'ах вместо pop.mail.ru написать имя прокси-сервера и порт отображения. Outlook будет соединяться с прокси-сервером ("думая", что это почтовый сервер), а прокси при этом будет соединяться с pop.mail.ru и прозрачно передавать всю информацию между Outlook и pop.mail.ru, таким образом "превращаясь" на время соединения в POP3-сервер. Неудобство mapping-прокси в том, что для каждого необходимого внешнего сервера нужно вручную устанавливать отдельный порт на прокси. Но зато не требуется модификация ни серверов, ни клиентов. Особенно это помогает в случае необходимости "проксирования" многочисленных "доморощенных" протоколов, реализованных в играх или финансовых программах. Почему-то они часто игнорируют существование прокси и стандартных протоколов. Такие программы можно "обмануть" и направить через прокси практически всегда, если они не делают другой глупости — передачи клиентского IP-адреса внутри протокола и пытаются с ним соединяться напрямую еще раз (что невозможно, т.к. локальные адреса недоступны извне).

Socks-прокси. Об этом виде прокси и его уникальных возможностях мы писали отдельную статью в "Компьютерре" в марте 1998 года. С тех пор протокол Socks не менялся. А программ, работающих через Socks, стало заметно больше. Кроме того исправили ошибки ICQ при работе с Socks-сервером Прочтите эту статью, может быть лучше прояснится и описанное выше. См. также Socks5

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

Все перечисленные виды прокси (кроме NAT ) реализованы в Eserv и Eproxy. NAT реализован в Windows.

--
Андрей Черезов, 26 декабря 2001 г.


Примечание: Эта статья была скопирована неким "Мишаней" и в измененном виде опубликована в Softerre — с приписками, превращающими её в "самоучитель хакера". Позже статья с сайта Софтерры в многочисленных копиях разошлась по другим сайтам. Я не имею отношения к этим публикациям, если не считать нарушения моих авторских прав. Оригинал статьи изначально был опубликован мною на сайте Eproxy, а потом скопирован сюда. (А.Ч.) 21 августа 2003 после двухмесячной переписки Софтерра убрала пиратскую статью с сайта, спасибо

См. также Статьи





unknown: YandexDirect|
Работает на Eserv/7.0.beta1/Linux/arm64 (Dec 25 2023)