Что такое прокси и для чего они нужны?


Proxy сервер - это промежуточный компьютер, который является посредником ("proxy" - посредник) между Вашим компьютером и интернетом. Через него проходят все Ваши обращения в Internet. Proxy их обрабатывает, и результаты (скаченные из Internet файлы) передает Вам. Proxy-сервер может многое. Он способен:
  • ускорить Вашу работу с Internet;
  • сделать Ваше путешествие по Сети анониным;
  • помочь посмотреть те сайты, к которым закрыл доступ Ваш системный администратор;
  • и многое другое.

Вы можете спросить "А зачем мне нужен какой-то там прокси? Мне и так хорошо". Действительно, еще с детства мы знаем, что кратчайшее расстояние между двумя точками - прямая Но хитрость состоит в том, что нам-то нужно не кратчайшее расстояние, а наилучшая скорость связи. А высокая скорость не обязательно является следствием кратчайшего расстояния.

Представьте себе следующую ситуацию: Вы живете в городе "A", и хотите попасть в далекий город "B" (или к Вам хотят приехать из этого города). Вы можете воспользоваться обычным транспортом - автобусом или железной дорогой. Но ехать таким транспортом до места назначения очень долго. А если Вы с помощью автобуса доберетесь до другого города - "C", где есть аэропорт, то самолетом долетите гораздо быстрее до Вашего пункта назначения (города "B"). Причем город "C" может находиться еще дальше от "B", чем Ваш город "A".

Попросту говоря:

"A" >>>>(поездом)>>>> "B"

получается дольше, чем

"A" >>>(поездом)>>> "C" >>>(самолетом)>>>>"B"

Аналогичная схема используется и тут: Вы соединяетесь с proxy-сервером (из "A" в "C"), а proxy-сервер, используя выделенную линию или оптоволокно (самолет) передает или получает данные с web-сервера (из "C" в "B").

То есть связь без proxy реализуется по следующей схеме:

Ваш компьютер >>>> web-сайты

А при использовании proxy-сервера схема выглядит так:

Ваш компьютер >>>> proxy >>>> web-сайты

Разумеется, для того чтобы proxy-сервер был "самолетом", Вам понадобится найти подходящий (поближе к Вам) и достаточно мощный сервер (это выявляется опытным путем).

За счет чего прокси сервер ускоряет соединение с Internet?​



Во-первых, это происходит за счет двух факторов:
  1. proxy-сервер находится близко к Вам - т.е. ближе чем большинство других сайтов, с которыми Вы работаете (скажем если речь идет о западных сайтах, то рекомендуется использовать русский proxy, а если это российские сайты, то лучше использовать proxy-сервер, расположенный в Вашем городе;
  2. у proxy-сервера мощный канал связи (выделенная сеть или оптоволокно) и большой пул (максимальная скорость обмена с Intenet).


В этом случае ускорение происходит за счет того, что:
  • между Вами и proxy-сервером устанавливается максимальная скорость передачи данных, допустимая вашим оборудованием (за счет того, что proxy близко от Вас): если Вы используете модем, то скорость обмена будет максимально допустимой для Вашей линии связи;
  • proxy-сервер использует заведомо более высокую скорость связи (за счет мощного канала) с web-сайтами, чем Вы;
  • поскольку при передаче данных по сети общая скорость обмена данными не может превышать минимальную скорость обмена между промежуточными компьютерами, то у Вас скорость связи как с российскими серверами (скажем Яndex), так и с иностранными (например microsoft) будет одинаковой! И эта скорость будет почти равна скорости обмена между вами и proxy-сервером! (ну...теоретически ).

Во-вторых, ускорение связи с Internet происходит за счет кэширования информации. Кэширование по сути аналогично кэшу в Вашем браузере (где хранятся временные файлы), однако является гораздо более эффективным за счет того, что:
  1. размер кэша в отличие от Вашего компьютера составляет не мегабайты, и даже не десятки мегабайт, а гигабайтыразмер кэша в отличие от Вашего компьютера составляет не мегабайты, и даже не десятки мегабайт, а гигабайты;
  2. этот кэш используете не только Вы, но еще десятки (сотни и тысячи) других пользователей. Представьте себе ситуацию: на сервере новостей появилась свежая информация. Первый пользователь обратился к proxy с запросом скачать новости. Proxy скачал новости себе, передал их пользователю, и сохранил в своем кэше. После этого Вы также обращаетесь к proxy за теми же новостями. Proxy-сервер обнаруживает эти новости в своем кэше, и передает их сразу Вам, не скачивая их с сервера новостей (и не тратя на это лишнее время). Таким образом, Вы получаете заметный выигрыш, используя общедоступные proxy-сервера.


Каким образом прокси сервер делает мое путешествие по Internet анонимным?​​



Когда Вы приходите на какие-либо web-сайты, Ваш компьютер посылает запрос на скачивание страничек, картинок, и т.д. с web-сервера. При этом компьютер передает Ваш IP-адрес - уникальный номер компьютера в Internet. Используя этот адрес, злоумышленник может "подвесить" Ваш компьютер, запустить к Вам вирус, подключиться к Вашему компьютеру и украсть конфиденциальную информацию, и т.д.

Для того чтобы этого не произошло, Вы можете установить на своем компьютере мощные системы защиты - Firewall. Однако, это не является панацеей - любую программу можно взломать. Поэтому в качестве дополнительных мер защиты, Вам имеет смысл использовать анонимный proxy-сервер. При обращении к web-серверам proxy "подменит" Ваш IP-адрес на свой, и злоумышленник будет пытаться вторгнуться не к Вам, а на proxy-сервер (у которого гораздо более мощная система защиты).

Однако обращаю внимание: далеко не все proxy-сервера в Internet являются анонимными (подменяют Ваш IP-адрес). Большинство из них предназначено именно для ускорения доступа в Internet, и не "прячет" Ваш IP-адрес. Чтобы найти анонимные proxy-сервера, Вам необходимо воспользоваться программой Proxy Checker (или аналогичной).

Цепочки из proxy серверов Используя один proxy сервер, Вы можете подключаться к другому proxy, через него - к следующему и т.д., т.е. выстроить цепочку из proxy серверов. Цепочка может состоять как из proxy одного типа (цепочки из HTTP или из socks proxy, цепочки из анонимайзеров), так и из proxy различных типов, например:

socks proxy -> socks proxy -> http proxy -> http proxy -> - cgi proxy -> cgi proxy -> web сервер

У каждого типа proxy свой способ построения цепочки. Самый сложный - у HTTP proxy (тем более, что не все HTTP proxy позволяют включать себя в цепочку). А самый простой - у CGI proxy.

А что еще может proxy?​



Все возможности proxy основаны на том, что он является промежуточным звеном между Вашим компьютером (или локальной сетью) и Internet. Поэтому как следствие, он также, в принципе, может:
  • фильтровать содержимое просматриваемых Вами страниц, в частности, удалять рекламу;
  • "изменить" географическое расположение Вашего компьютера (актуально для сайтов, показывающих разное содержимое в зависимости от того, из какого региона / страны идет обращение);
  • если proxy-сервер в одной локальной сети с Вами, то достаточно, чтобы только proxy был подключен к Internet - используя одно подключение, в Internet сможет выходить вся сеть;и так далее.

Классификация proxy для "чайников"​​



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

HTTP proxy
Это наиболее распространенный тип proxy серверов и говоря просто "proxy", имеют в виду именно его. Раньше с помощью этого типа proxy можно было только просматривать web страницы и картинки, скачивать файлы. Теперь же новые версии программ (ICQ и т.п.) умеют работать через HTTP proxy. С этим типом proxy умеют работать и браузеры любых версий.

Socks proxy
Эти proxy сервера умеют работать практически с любым типом информации в Internet (протокол TCP/IP), однако для их использования в программах должно быть явно указана возможность работы с socks proxy. Для использования socks proxy в браузере нужны дополнительные программы (браузеры не умеют сами работать через socks proxy). Однако любые версии ICQ (и многих других популярных программ) отлично могут работать через socks proxy. Напоследок хочу обратить внимание: при работе с socks proxy нужно указывать его версию: socks 4 или socks 5.

CGI proxy (анонимайзеры)
С этим типом proxy серверов можно работать только через браузер. В других программах их использование затруднено (да и не нужно - есть HTTP proxy). Однако поскольку этот тип proxy изначально рассчитан на работу через браузер, использовать их исключительно просто. Вы легко сможете не только задействовать анонимайзер в своей работе, но и без проблем построить цепочку из CGI proxy.

FTP proxy
Этот тип proxy серверов отдельно от корпоративных сетей встречается довольно редко. Обычно его использование связано с тем, что в организации имеется Firewall (система защиты компьютеров от вторжения извне), препятствующий прямому доступу в Internet. Использование proxy этого типа предусмотрено во многих популярных файловых менеджерах (FAR, Windows Commander), download менеджерах (GetRight, ReGet, ...) и в браузерах. Этот тип proxy является узко специализированным и предназначен для работы только с FTP серверами.

Как определить тип proxy? Как узнать, что это за proxy - HTTP, SOCKS или CGI?​​​



Прежде всего, отделим эти типы proxy серверов друг от друга по сути:
  1. HTTP proxy - это "обычный" proxy сервер, который встречается наиболее часто. Использовать этот прокси Вы можете, настроив браузер и многие другие программы (в программах должно быть предусмотрено использование proxy сервера, если не указан тип используемого proxy, то это HTTP proxy);
  2. SOCKS proxy - с этим типом прокси серверов браузеры работать не умеют, однако многие популярные программы предусматривают использование этого типа proxy серверов (например ICQ). Если программе требуются такие proxy, тип прокси сервера (SOCKS) всегда указывается, причем практически всегда обязательно указывается подтип (версия) SOCKS proxy сервера: SOCKS 4 или SOCKS 5 (иногда и SOCKS 4a);
  3. Анонимайзеры (CGI proxy) - это web-страница, адрес которой нужно просто набрать в панели адреса браузера. Не нужно изменять никаких настроек программ, настраивать браузер и т.д. - достаточно просто открыть web страницу. Другие программы (кроме браузеров) в 99,9% случаев не умеют использовать анонимайзеры;

Теперь о "внешних" отличиях между этими типами proxy серверов:
  • Поскольку CGI proxy - это web-страница, то адрес такого прокси начинается с http:// или https:// и содержит путь к web странице . Анонимайзер (как правило) не имеет номера порта;
  • HTTP и SOCKS proxy - состоят из имени сервера (хост) и номера порта, которые разделены между собой двоеточием (обычно) или пробелом
  • SOCKS proxy - в 90% случаев имеют номер порта 1080, 1081 или аналогичный;
  • HTTP proxy - в 99% случаев имеют номер порта 80, 8080, 81 или 3128;
  • Кроме того, определить тип proxy сервера можно, воспользовавшись любым proxy checker-ом: проверив proxy сначала на один, а потом на другой тип (HTTP / SOCKS). В 99,999% случаев прокси либо HTTP либо SOCKS (хотя может быть и тот и другой одновременно);
  • HTTPS proxy: этот тип прокси серверов является одним из подвидов HTTP, поэтому его можно выделить, только проверив каким-либо proxy checker-ом;

Что может делать прокси​​​​



В случае использования методов GET / POST (обычное перемещение по web сайтам):
  • запрещать доступ к определенным сайтам;
  • запрещать доступ к сайтам, содержащим на страницах запрещенные ключевые слова (скажем "порно" или даже "прокси");
  • вырезать определенные фрагменты страниц (баннеры);
  • запрещать прием файлов с определенным расширением и/или определенного размера (как в Kb, так и размера по габаритам, например баннеров - 468:60), например *.MP3, .ZIP, .EXE, .RAR и т.д.;
  • протоколировать все перемещения по web страницам и выдавать системному администратору отчет о посещаемых страницах;
  • запрещать использование любых протоколов (скажем запрещать доступ к https:// и/или ftp:// сайтам);
  • запрещать доступ с любых компьютеров к этому прокси. То есть вполне возможна ситуация, что у двух рядом стоящих компьютеров один может работать через прокси, а другой - нет;

В случае использования метода CONNECT (подключение к https:// сайтам, построение прокси в цепочку, port mapping через прокси и т.д.), либо в случае использования SOCKS proxy:
  • полностью запретить использование метода CONNECT (или отключения SOCKS proxy), тогда не будет работать ICQ и нельзя будет подключаться к любым https:// сайтам;
  • запретить подключение через прокси к определенным серверам (например login.icq.com, и т.д.);
  • запретить подключение через прокси к определенным портам, например: на 25-й порт (SMTP), на 6667 порт (IRC), на порт 5190 (ICQ);
  • запретить подключение через прокси к любым портам кроме указанных, например: кроме 443 (тогда это будет HTTPS proxy);

Чего прокси не может делать​​​


  • Использовать эвристический анализатор - то есть производить семантический анализ содержимого страниц и запрещать ВСЕ сайты, содержащие статьи на определенную тему, независимо от ключевых слов.
  • При использовании метода CONNECT (или в SOCKS proxy) - фильтровать передаваемую информацию (скажем блокировать страницы по определенным ключевым словам).
  • Пропускать обратные соединения из интернета (SOCKS 5 это может делать, но это тоже нетривиальная задача).
  • и многое многое другое :)

Резюме: прокси сервер - это компьютерная программа и как любой программе, ему присущи как достоинства, так и недостатки. Если администратор настроил прокси и забыл о нем, то прокси сервер всегда можно "обойти". В противном случае Ваши попытки обхода прокси - это борьба с сисадмином, и любые Ваши решения в этой области будут временными - пока сисадмин не обнаружит очередную "дыру" и не "заткнет" ее.