Прокси Серверы
ПРОКСИ-серверы.
Общие понятия. (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) это происходит автоматически, т.е. программа сама распознает имеющиеся сетевые подключения и ваша задача заключается в том, чтобы выбрать необходимое внешнее подключения, и то, только в том случае, если их больше одного. Порядок и возможности настройки зависят от используемой программы, поэтому давать здесь конкретные советы и рекомендации не имеет смысла. При необходимости всегда можно обратиться или к встроенной системе помощи или на форум.Что еще надо знать при настройке любого прокси-сервера?
А знать надо минимально-необходимый перечень портов, которые должны быть открыты. Например, порт 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.

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

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

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

Все очень просто. Для настройки других клиентов надо только правильно прописать имя удаленного хоста и номера портов.
Теперь запускаем всю цепочку. Сначала ASP, потом HTTPort, и в итоге, при почти полностью закрытой ISA, получаем массу удовольствия от работы в любимом браузере и приятного общения в IRC и ICQ.
Следует заметить, что применение HTTPort не ограничивается только вышеописанным примером. Если ISA сервер настроен на «базовую» аутентификацию, то применение ASP становится излишним. А при помощи HTTPort, через единственный открытый на ISA сервере порт, можно настроиться практически на любой WEB-сервис, в том числе подключиться к игровым серверам или использовать WEBMoney. (Эти сервисы, как правило, используют специфичные порты для доступа и через 80 порт до них никак не достучаться). Кроме того, сам производитель HTTPort не гарантирует стопроцентного успеха при использовании этого продукта, однако, в большинстве случаев, особых проблем не возникает. Важно лишь правильно настроить маппинг портов. Впрочем, в последнем окне программы есть несколько ссылок, в том числе и на FAQ по использованию HTTPort.
NetJ
Линки по теме :
http://www.freeproxy.ru/ru/free_proxy/faq/index.htm – FAQ Proxy, основные понятия и использование.
http://forum.ru-board.com/topi[...]orum=55&topic=0457#1 – Обход прокси сервера, тема на Ру-Борде.
http://sozhmi.net.ru/programs/ – Обзор программ для сжатия трафика.
Настройка HTT Port