|
Немного о портах
и прокси-серверах
Антон Орлов
http://antorlov.nm.ru
Когда большинство
пользователей компьютеров видят слово
"порт", то обычно с ним ассоиируются такие аббревиатуры, как
COM, LPT, PS/2. То есть, попросту говоря,
названия "гнезд", куда можно
присоединить какие-либо периферийные
устройства вроде сканера, принтера или
модема. Такие порты служат для
подключения различных устройств к
персональному компьютеру. Но при чтении
литературы, описывающей работу в
интернете, равно как и при работе с
сетевыми программами, становится ясно,
что слово "порт" имеет не только это,
привычное всем нам, значение. Но какое
именно? И что, например, означает поле
"номер порта", встречающееся,
например, почти во всех окнах настройки
прокси-серверов?
А вот вы никогда
не задумывались, каким образом
происходит обмен данными между
компьютером и серверами интернета?
Конечно - с помощью пакетов данных. Ну а
как эти самые данные находят на
компьютере нужную им программу? Ведь
почти все используемые сейчас
операионные системы - многозадачные, и
в них можно одновременно, скажем, и
электронную почту отправлять или
получать, и файлы на сервер помещать, и
веб-странички смотреть, и по интернет-пейджеру
общаться. Приходит, например, такой
пакет данных с электронным письмом на
компьютер. Как он понимает, в какую
программу ему пойти - в браузер или все
же в почтовый клиент? IP-адрес-то всего
один? Для этого и существует система
портов.
Представим себе
интернет как большой город, состоящий из
домов-компьютеров. Если адресом дома в
такой аналогии будет служить IP-адрес,
выделяемый компьютеру, то порт будет
служить адресом квартиры. Каждый пакет
данных имеет при себе адрес дома - то
есть IP компьютера, которому он
предназначен. По этому адресу
происходит маршрутизаия пакета при его
передаче от компьютера-сервера к
компьютеру-получателю. Квартиры в доме-компьютере
могут быть заняты (а могут и не быть)
различными программами. И внутри этого
дома маршрутизация осуществляется
именно по номерам квартир-портов.
Заведует этим всем операционная система
- выделяет программам порты и
распределяет по ним приходящие пакеты.
Впрочем, точнее будет сказать, что
каждая из программ, предназначенная для
работы с ресурсами интернета, принимает
только те пакеты приходящих на
компьютер данных, которые адресованы
именно ей.
На номер порта
выделается 16 бит, то есть максимальное
количество портов в таком случае равно 65
536. Некоторые номера традиционно
закреплены за определенными сервисами.
К примеру, веб-сервер отвечает на
запросы с указанием порта 80, а ftp-сервер
оперирует портом 21. Иными словами, когда
ваш браузер запрашивает, например,
сервер www.pravda.ru, то он посылает пакет
данных на порт 80 компьютера с IP-адресом,
соответствующим www.pravda.ru. В этом пакете
компьютер указывает номер своего порта,
выделенного ему операционной системой.
Сервер www.pravda.ru, в свою очередь, посылает
на ваш компьютер ответный пакет данных.
Операционная система, увидев по
заголовку, что пакет адресован 80 порту,
отдаст его в браузер, который и
обработает его по собственному
усмотрению.
Если основная
задача компьютера - выдавать информацию
в Сеть по запросам, то на нем может быть
одновременно запущено сразу несколько
программ: веб-сервер, ftp-сервер, почтовый
клиент и др. Каждая из них работает с
запросами, используя свои порты. Номера
портов, по которым работают программы,
указываются в настройках.

В этой
программе - ftp-менеджере Bullet Proof - есть
возможность быстро и легко задавать
номер порта для связи. В других
программах такая возможность тоже есть,
но обычно доступна только через
настройки.
Можно провести
еще одну аналогию для лучшего
восприятия: порт - это некая "радиочастота",
а каждая программа - своего рода
приемник. Чтобы программа могла
услышать запрос, надо настроиться на ее
"волну" - послать запрос на этой
частоте. В свою очередь, программа
должна будет выйти на связь с тем, кто ее
запросил, используя тот же диапазон
частот (имеются в виду протоколы с
обязательным квитированием - прим. ред.).
Firewalls
С системой портов
тесно связана такая система защиты, как
Firewall - программа, которая обеспечивает
санкционированность всей информации,
приходящей или уходящей с компьютера. К
примеру, при отправке почты
используется порт 25, а при получении -
порт 110. С этими портами работает
почтовая программа. Если же какая-нибудь
другая программа - например, вирус-"троян"
- попытается запросить этот порт, то Firewall
не даст ей это сделать (в принципе, "трояну"
ничего не стоит замаскироваться под
почтовую программу, но это сложнее - прим.
ред.). Кроме того, Firewall вообще не
позволяет осуществлять связь с
удаленным компьютером, если это не
разрешено пользователем. Перед началом
использования программы необходимо
произвести ее настройку - указать
номеров портов, через которые может идти
обмен данных, и программ, которые с этими
портами работают. В современных "файерволлах"
настройка может проходить и
автоматически.
Иными словами,
если с компьютера отправляется пакет
данных, то Firewall посмотрит, какая
программа его отправляет, по какому
порту, и на какой порт. Обеспечение
информационной безопасности и защита от
проникновения "извне" также тесно
связаны с управлением системой портов.
На компьютере постоянно запущено
множество программ. И не исключено, что
при обращении к какому-либо порту некая
программа возьмет и ответит на запрос,
да еще и проигнорировав положенную
авторизацию доступа. Это так называемая
"дыра" - за что программистов обычно
нещадно ругают. В другом случае,
операционная система, принимая данные
по какому-либо порту, может попросту "повиснуть"
- опять-таки из-за ошибки в своем
программном коде. Так, до появления Service
Pack 3 для Windows NT, пакеты, адресованные на 139
порт компьютера с этой операционной
системой, приводили либо к перезагрузке
ОС, либо к ее "зависанию" (кстати,
"дыры" могут появляться и по иным
причинам - не только из-за системы портов,
просто "дыра через порт" - самый
распространенный вариант).
Порты компьютера
можно просканировать - то есть послать
ему пакеты данных, адресованные на все
порты подряд, и ждать ответа хоть от
какого-нибудь из них. Если отклик есть,
значит, с этим портом можно попробовать
"договориться" - в частности,
заставить программу, которая им
заведует, работать в своих целях. "Прослушать"
порты можно, например, с помощью
программы Internet Maniac (рис. 4). С такого
сканирования и поиска "дыр" в
программном обеспечении обычно
начинается любая хакерская атака,
поэтому многие провайдеры, банковские
системы и другие большие сетевые
представительства отслеживают подобные
действия и принимают адекватные меры в
адрес того, кто это делает.

Вот так
сканируются порты. Это пример - а при
настоящей хакерской атаке можно было бы
и "дыру" отловить, да и самому
попасться - зависит от опыта обоих
сторон.
Использование
Firewall позволяет в определенной степени
свести "на нет" риск от
несанкционированного сканирования
портов. Эта программа не дает
возможности получить с портов, не
входящих в список разрешенных, какой-либо
ответ, так как вообще не пропускает к ним
подобного рода запросы. Но Firewall не
сможет помочь, если атака ведется с
помощью вполне законного доступа -
скажем, в вашей почте окажется письмо,
содержащее вирус.
Proxy-серверы
Основная функция
у прокси-сервера одна - сделать
соединение с интернетом более удобным.
Большинство из них позволяют
организовывать доступ с нескольких
компьютеров по одному IP-адресу. Работает
прокси довольно просто - в своих
настройках вы указываете его адрес и
порт, а остальную работу по обработке
ваших запросов он берет на себя.
Кроме как у
провайдерских контор, существуют еще и
просто публичные сервера. Зачем это
нужно? Допустим, вы - житель Саудовской
Аравии, и вам не дают поглазеть на сайт
Yahoo!. Элементарно, вы прописываете в
настройках браузера публичный прокси - и проблема отпадает, так как он-то не
ограничен подобными запретами (ага, если
только в Саудовской Аравии не запрещен
доступ к этому прокси-серверу - прим. ред.).
К примеру, в
браузере Microsoft Internet Explorer 5.0
соответствующие настройки находятся в:
"Сервис - Свойства обозревателя -
Подключение - Настройки локальной сети -
Прокси-сервер".
Прокси-сервер
также выполняет еще две важные задачи.
Во-первых, он кэширует данные - все веб-страницы,
хоть раз запрошенные с одного из
компьютеров локальной сети, здесь
некоторое время сохраняются (зависит от
заданной конфигурации). Поэтому работа с
интернетом через прокси может стать
несколько быстрее, чем при прямом
подключении - однажды загруженные
страницы будут взяты прямо оттуда, а не
из Сети. Во-вторых, будет затруднено
проникновение из интернета на
компьютеры локальной сети - защита
информации вам обеспечена. При подобной
работе с веб-ресурсами "выследить"
вас будет довольно сложно - максимум, что
можно будет узнать сразу, это адрес
самого прокси.
Строго говоря, для
того, чтобы воспользоваться этими
преимуществами, не обязательно быть
подключенным именно к локальной сети.
Если вы хотите использовать возможность
кэширования веб-страниц или защититься
от взлома (или выслеживания), то можно
настроить свой компьютер на работу с
каким-нибудь публичным прокси-сервером.
Тогда вы станете как бы частью его
локальной сети, и все эти услуги станут
вам доступны. Можно также использовать
прокси только для работы с веб-страницами
(то есть по протоколу HTTP), а по всем
остальным протоколам работать без него.
Здесь надо опять-таки особым способом
настроить браузер - в Microsoft Internet Explorer 5.0 (рис.6)
для этого служит вкладка "Дополнительно",
а в ней окна "Настройки локальной сети"
(путь - см.выше). Это имеет смысл, когда
прокси-сервер работает недостаточно
быстро, и выигрыш в скорости возможен
только для интернет-ресурсов за счет
кэширования их содержимого.
Разумеется,
администратор такого сервера может и
запретить доступ к нему вне своей
локальной сети, если он не заинтересован
в повышенной о нагрузке на свое детище.
Обычной является практика, когда
провайдер интернет-услуг предоставляет
свой прокси-сервер только тем, кто
подключается через его доступ (подключение
определяется, ясное дело, по IP-адресу). В
этом случае клиенты имеют возможность
выбора - пользоваться подобной услугой
или нет. Как уже говорилось, в интернете
есть и общедоступные ресурсы подобного
рода, с которыми могут работать все
желающие, но их список часто меняется.
Обычных
пользователей Сети функции прокси-сервера
могут заинтересовать исключительно как
хороший способ кэширования данных. А для
небольших локальных сетей и доступа к
интернету по одному IP-адресу чаще всего
используются программы типа WinGate или
WinProxy. Кроме того, функциями прокси-сервера
обладает операционная система Windows NT, а
также в последних версиях Windows 9x – то
есть, Windows 98SE и Me имеется встроенный
прокси сервер, который называется там ICS
– Internet Connection Sharing.
|