Просмотр кода страницы Прокси Серверы страница

===ПРОКСИ-серверы.== 
{{toc}}
=====Общие понятия. (Proxy – посредник)==
Очень многие пользователи компьютеров имеют доступ в Интернет из локальных сетей своих фирм. При персональном доступе в Интернет, необходимости устанавливать прокси-сервер нет. Иное дело, когда необходимо обеспечить доступ нескольким компьютерам. Тогда становится необходимостью установка прокси-сервера. 
======Что же это такое?== 
По сути своей – это программа, являющаяся посредником между пользователем и глобальной сетью (в лице провайдера услуг Интернет). Ее назначение, транслировать запросы пользователя (точнее говоря, программ, обращающихся к ресурсам Сети). Проще говоря, когда пользователь обращается к какому-либо ресурсу (например, www.google.com), то фактически этот запрос посылается сначала на прокси-сервер (находящийся в одной локальной сети с клиентом). Потом, прокси-сервер направляет этот запрос на указанный адрес, но уже от своего имени и при получении ответа пересылает его клиенту, пославшему запрос. 
======Для чего это делается?== 
Дело в том, что IP адреса компьютеров локальной сети являются немаршрутизируемыми, т.е. исключенными из пространства адресов глобальной сети Интернет, а потому, например, отправив запрос с адреса 10.0.0.11, клиент не сможет получить ответ, поскольку WEB-сервер, где находится этот ресурс, не сможет обработать такой адрес и, соответственно, правильно направить ответ.  В тоже время, прокси-сервер имеет кроме внутреннего, внешний интерфейс, которому провайдером назначается реальный (т.е. маршрутизируемый) IP адрес. Поэтому на запрос прокси-сервера может быть направлен ответ. В памяти прокси-сервера динамически создается и изменяется список запросов-ответов. Таким образом, каждый клиент получает данные, запрос на которые был послан. Вот в чем заключается главная роль прокси-сервера. Еще одна немаловажная задача – кэширование полученных WEB-страниц, и вообще, полученных данных. Это сильно ускоряет процесс получения данных клиентом, поскольку в большинстве случаев, такие данные, как изображения, а то и целые страницы, могут быть получены не с требуемо-го ресурса, и из КЭШ-памяти прокси-сервера. Кстати говоря, это существенно снижает внешний входящий трафик.

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

=====1. Применение прокси-сервера для организации доступа в Интернет из рабочей группы.==
В этом случае проще всего установить прокси-сервер на одну из машин рабочей группы. Например, адрес этой машины 10.0.0.1. В этом случае достаточно в настройках вашего Интернет-браузера прописать прокси с адресом 10.0.0.1. 
======Какой же прокси выбрать для такого варианта?== 
Можно что-нибудь попроще, например **~WinGate**, **~WinRoute** или **~WinProxy**. Можно и **~FreeProxy**. Каждый из этих серверов обладает разными возможностями и настройками. Например, **~WinProxy** кроме функций прокси-сервера выполняет роль файрвола и антивируса (антивирусный агент от Panda Software). И это довольно удобно и полезно в разрезе защищенности вашей сети и от нападения извне и защите от вирусов, коих в Интернете огромное количество. Здесь ничего конкретного предлагать не буду, поскольку каждая из этих программ обладает своими достоинствами и недостатками. Большинство из предлагаемых сейчас прокси-серверов являются коммерческими продуктами, но всегда имеется Shareware (или Trial) версия для ознакомления и пробной работы. Очень часто эти версии обладают ограниченными возможностями (как правило, отсутствуют или заблокированы дополнительные сервисы), но вполне работоспособны по своему прямому назначению. 
======Как установить прокси на компьютер?== 
Очень просто. Во-первых, желательно, чтобы этот компьютер был оснащен двумя сетевыми платами. Одна из них будет использоваться для внутренней сети, вторая – для подключению к Интернету. Впрочем, тут могут быть варианты. Все зависит от способа подключения к Интернету. Как правило, это DSL-модем (либо кабельный модем). Исполнение этих устройств может быть разное, как с Ethernet, так и с USB интерфейсом. Но в любом случае на прокси сервере (теперь уже говорю о компьютере) должно быть как минимум два сетевых подключения: первое – к провайдеру услуг Интернет (внешнее), второе – к внутренней локальной сети. При инсталляции прокси-сервера, обычно сразу происходит настройка программы. Чаще всего (например, при использовании **~WinProxy**) это происходит автоматически, т.е. программа сама распознает имеющиеся сетевые подключения и ваша задача заключается в том, чтобы выбрать необходимое внешнее подключения, и то, только в том случае, если их больше одного. Порядок и возможности настройки зависят от используемой программы, поэтому давать здесь конкретные советы и рекомендации не имеет смысла. При необходимости всегда можно обратиться или к встроенной системе помощи или на ((http://forum.compowiki.info форум)). 
======Что еще надо знать при настройке любого прокси-сервера?== 
А знать надо минимально-необходимый перечень портов, которые должны быть открыты. Например, порт 80 необходим для работы с HTTP (практически все WEB-браузеры используют этот порт для работы с WWW). 21 порт необходим для работы с FTP-серверами и т.д. Для более полной информации о портах можно обратиться к статье: ПортыTCP. Так вот, хорошим правилом будет минимальное количество открытых портов. Тем самым вы уменьшите вероятность нападения извне на вашу сеть. Также, в зависимости от используемого прокси-сервера, можно установить список допущенных пользователей или компьютеров и период доступа. 

=====2. Доступ в Интернет из ЛВС, организованной как домен.== 
Здесь все немного сложнее. Если ваша ЛВС основана на Windows Server, то наиболее приемлемым будет использование **Microsoft ISA Server** (Internet Sharing & Acceleration). Во-первых, этот продукт полностью интегрируется с Active Directory. Во-вторых, имеет множество средств мониторинга и аудита. В-третьих, не требует особых знаний при настройке, которая производится при помощи специальной оснастки. Описывать процесс установки и настройки ISA Server в этой статье я не буду, поскольку для этого потребуется целая книга. В любом случае, при необходимости всегда можно найти требуемые мануалы и инструкции. Один из недостатков ISA Server – необходимость установки на каждую рабочую станцию домена, с которой предполагается доступ в Интернет, клиентской части (mspclnt). 

=====3. Как обойти закрытые порты ISA-сервера и как пройти через него браузером Opera?==
В достаточно большой (или не очень) корпоративной сети на базе операционных систем семейства Windows, системные администраторы, как правило, применяют в качестве прокси-сервера ISA Server. Это понятно и объяснимо, в силу родственности ISA и Windows Server, а так же прочих, типа Active Directory, свойств. Для обеспечения максимальной безопасности, администратор чаще всего оставляет открытыми минимальное количество портов – 80, 8080, 443, ну, и может быть, еще 21, 25 и 110. Т.е. многие программы, требующие для нормальной работы открытия специфических портов (например, как MIRC, требующий порт 6667 и т.д.), в этих условиях нормально функционировать не могут. Кроме того, хотя ISA Server предусматривает два типа авторизации – NTLM (когда для авторизации пользователя используется Active Directory) и т.н. базовую – когда для доступа необходимо ввести имя пользователя - пароль. Некоторые WEB – браузеры, в отличие от Internet Explorer не используют NTLM авторизацию (например, Opera) и поэтому их использование кажется невозможным. Однако, это не так. Есть способы обойти эти препятствия.
 
======Авторизация==
Начнем с обхода NTLM – авторизации. Это необходимо для почти полноценного функционирования браузера Opera (и некоторых других). Почему почти? Потому что, та же Опера имеет интегрированный Чат, для которого, кроме обхода NTLM – авторизации, необходим еще и доступ через специфичный порт, например 6667. В настоящее время одним из оптимальных решений является применение «NTLM Authorization Proxy Server». Это программа, написанная на языке Pyton, и для ее работы необходимо сначала установить интерпретатор Python (бесплатную версию можно скачать с офсайта компании http://www.python.org/). Сам APS можно взять с http://www.geocities.com/rozmanov/ntlm/. Pyton ставится без проблем, при настройке ASP необходимо лишь указать путь к папке с установленным Python, и поправить в соответствии с вашими настройками и параметрами файл server.cfg. Пример файла помещен ниже:

%%
[GENERAL]
# здесь номер порта (по умолчанию 5865)
LISTEN_PORT:9000

# If you want APS to authenticate you at WWW servers using NTLM then just leave this
# value blank like PARENT_PROXY: and APS will connect to web servers directly.
# And NOTE that NTLM cannot pass through another proxy server.

PARENT_PROXY: #здесь имя вашего ISA сервера, например OurISA.yoursite.org
PARENT_PROXY_PORT:80 #здесь открытый на ISA порт, например 80 или 8080

# Windows Domain
DOMAIN: #здесь имя домена, как в примере yoursite.org
 
# What user's name to use during authorization. It may differ form real current username.
USER: #здесь ваш (или не ваш) Логин для входа в домен

# Password. Just leave it blank here and server will request it at the start time.
PASSWORD: #здесь пароль для входа в домен/

# Experimental option. Set it to 1 to switch on UNICODE and NT response part in the auth action.
# In a nut shell, you may want to try setting it to 1 if you are sure that you have to use NTLM
# authentication and it just does not work for you. Most of times everything should work without
# this option.
FULL_NTLM:0

# Highly experimental option. Do not touch. See research.txt for details.
NTLM_FLAGS: 06820000

# Set to 1 if you want to grant this authorization service to clients from other computers.
# NOTE: all the users from other hosts that will be using you copy of APS for authentication
# will be using your credentials in NTLM auth at the remote host.
ALLOW_EXTERNAL_CLIENTS:0

# If you want to allow some other but not all computers to use your proxy for authorization,
# just set ALLOW_EXTERNAL_CLIENTS:0 and put friendly IP addresses here.
# Use space as a delimiter.
# NOTE that special addesses don't work here (192.168.3.0 for example).
FRIENDLY_IPS:

# Requested URLs are written to "url.log" file. May be useful.
URL_LOG:0

[CLIENT_HEADER]

# This section describes what and how the server should change in the clients headers.
# Made in order to prevent parent proxy from seeing that you are using wget instead of IE5.5

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, applica-tion/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)

# for windows 2000 emulation ;)
# User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT5)

# You can uncomment these chages in client's header to mimic IE5+ better, but in this case
# you may expirience problems with *.html if your client does not really handle compression.
#Accept-Encoding: gzip, deflate

[NTLM_AUTH]

#Тип аутентификации. Если не сработает так, как есть, можно поставить 1 и 1.

LM_PART:1

NT_PART:1

#Можно перевести NTLM'скую аутентификацию в базовый вид, поставив тут 1. Тогда при начале работы браузер попросит логин и пароль.

NTLM_TO_BASIC:1

[DEBUG]

# Set this to 1 if you want to see debug info in many log files. One per connection.
DEBUG:0

# Set this to 1 to get even more debug info.
BIN_DEBUG:0

# Set this to 1 to see some strange activity on screen. Actually you won't want it.
SCR_DEBUG:1

# Not actually a debug option but gives you some details on authentication process
# into *.auth logs. Also see research.txt.
AUTH_DEBUG:0
%%

После настройки запускаете runserver.bat и все. Далее, необходимо настроить подключение в Opera.

file:opera1.gif

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

======Обход закрытых портов==
Теперь перейдем ко второй части – обход закрытых портов. Здесь нам поможет один из т.н. мапперов – HTTPort. Кстати, для нормальной его работы в условиях ISA сервера с NT-авторизацией, необходимо запускать описанный раньше ASP. Качаем эту программулину здесь: http://www.htthost.com/download.boa
Устанавливаем и настраиваем.
Как показано на скриншоте ниже, в первую строку прописываем IP и номер порта (ip ло-кального компьютера, номер порта – согласно настроек в ASP). Ставим галочку «Proxy Requires authentication» и вписываем логин и пароль для входа в домен. User–Agent лучше оставить как есть, а Bypass mode установить в Auto. Нижние поля не заполняем, по крайней мере, пока у вас нет адреса удаленного хоста для HTTPort.

file:opera2.gif

Теперь настраиваем маппинг. Для примера возьмем настройку для IRC клиента MIRC. Прописываем локальный порт (6667), потом имя сервера IRC (в данном примере – irc.zix.ru) и удаленный порт (6667). Переходим на вторую закладку «Proxy» и жмем “Start”. Маппинг запущен. Теперь в сетевых настройках программы достаточно указать вместо реального адреса – 127.0.0.1 и реальный номер порта (для показанного примера 6667).

file:opera3.gif

Пример настройки MIRC.

file:opera4.gif

Все очень просто. Для настройки других клиентов надо только правильно прописать имя удаленного хоста и номера портов.

Теперь запускаем всю цепочку. Сначала ASP, потом HTTPort, и в итоге, при почти полностью закрытой ISA, получаем массу удовольствия от работы в любимом браузере и приятного общения в IRC и ICQ. 

Следует заметить, что применение HTTPort не ограничивается только вышеописанным примером. Если ISA сервер настроен на «базовую» аутентификацию, то применение ASP становится излишним. А при помощи HTTPort, через единственный открытый на ISA сервере порт, можно настроиться практически на любой WEB-сервис, в том числе подключиться к игровым серверам или использовать WEBMoney. (Эти сервисы, как правило, используют специфичные порты для доступа и через 80 порт до них никак не достучаться). Кроме того, сам производитель HTTPort не гарантирует стопроцентного успеха при использовании этого продукта, однако, в большинстве случаев, особых проблем не возникает. Важно лишь правильно настроить маппинг портов. Впрочем, в последнем окне программы есть несколько ссылок, в том числе и на FAQ по использованию HTTPort.

((Пользователи/NetJ NetJ))

----
Линки по теме :
http://www.freeproxy.ru/ru/free_proxy/faq/index.htm - FAQ Proxy, основные понятия и использование.
http://forum.ru-board.com/topic.cgi?forum=55&topic=0457#1 - Обход прокси сервера, тема на Ру-Борде.
http://sozhmi.net.ru/programs/ - Обзор программ для сжатия трафика.
НастройкаHTTPort