Стандартный порт http. TCP, порт, NAT и другие

» TCP, порт, NAT и другие

Протоколы

Сетевым протоколом называют набор правил, описывающий какой-нибудь вид связи.

Протоколы бывают разных уровней, и протоколы более высоких уровней обычно используют протоколы предыдущих низких уровней.

    Например
  • передачу звука по воздуху или по проводам можно считать разными протоколами физического уровня связи
  • разные языки человеческой речи - это протоколы транспортного уровня
  • команды сержанта солдатам - это протокол еще более высокого - прикладного уровня

TCP/IP

Стеком протоколов TCP/IP называют набор протоколов, используемых в интернете.

    Например, на канальном уровне это протоколы
  • Ethernet для передачи по проводам,
  • 802.11 WiFi для беспроводных соединений,
  • и некоторые другие.

IP

На более высоком сетевом уровне находится IP (Internet Protocol) - самый базовый протокол интернета.

Это маршрутизируемый протокол: узлы в интернете не «видят» друг друга непосредственно, а объединены в подсети по «похожести» их IP адресов - четырех байтов, обычно записываемых как n.n.n.n.

Для передачи пакета с данными узел указывает в пакете свой IP адрес и адрес назначения и передает пакет ближайшему узлу. Тот смотрит на IP адрес назначения и решает куда передать пакет дальше, все ближе и ближе к узлу назначения - это и есть маршрутизация. Такая система позволяет иметь в сети очень много узлов.

IP описывает передачу одного пакета, он не устанавливает «соединений» и не даже гарантирует доставку.

TCP

TCP - основной протокол транспортного уровня в интернете.
    Он базируется на IP, но добавляет
  • установление соединений
  • гарантироанную доставку
  • разделение приложений по портам
    Согласно протоколу сперва происходит handshake (рукопожатие):
  • Узел A посылает узлу B специальный пакет SYN - приглашение к соединению
  • B отвечает пакетом SYN-ACK - согласием об установлении соединения
  • A посылает пакет ACK - подтверждение, что согласие получено
После этого считается, что TCP соединение установлено, и узлы могут пересылать друг другу пакеты с данными.

Когда один из узлов решает, что пора заканчивать соединение, он посылает специальный пакет FIN, после этого узлы прощаются и разрывают соединение.

«Соединение» понимается в том смысле, что узлы помнят друг о друге, нумеруют все пакеты идущие в обе стороны, посылают подтверждение о получении каждого пакета и перепосылают потерявшиеся по дороге пакеты. Все это очень сильно упрощает работу любого «верхнего» протокола, базирующегося на TCP.

Для локального узла, пославшего приглашение, это соединение исходящее . Для удаленного узла, принявшего приглашение, это соединение входящее . Эти термины показывают только инициатора соединения. Любое установленное TCP соединение симметрично, и пакеты с данными по нему всегда идут в обе стороны.

Сетевой порт

Порт - условное число от 1 до 65535, указывающее, какому приложению предназначается пакет.

Концепция портов позволяет независимо использовать TCP протокол сразу многим программам на одном и том же компьютере. Если прибегнуть к аналогии, то IP адрес - почтовый адрес дома, а порт - номер квартиры конкретного жильца.

    В каждом TCP пакете, кроме IP адресов узлов, еще указываются:
  • порт источника , используемый приложением-отправителем
  • порт назначения , используемый приложением-получателем

Конечный узел, получив пакет, смотрит на порт назначения и передает пакет соответствующему приложению.


Использование портов

Клиентом называют приложение, которое пользуется каким-то сервисом, предоставляемым другим приложением - сервером , обычно на удаленном компьютере. Примеры: браузер и веб сервер, почтовая программа и почтовый сервер.

Практически всегда клиент начинает исходящие соединения к серверу, а сервер ожидает входящих соединений от клиентов, хотя бывают и исключения.

Сервер при запуске сообщает ОС, что хотел бы «занять» определенный порт (или несколько портов). После этого все пакеты, приходящие на компьютер к этому порту, ОС будет передавать этому серверу. Еще говорят, что сервер «слушает» этот порт.

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

    Таким образом, сервер:
  • слушает на определенном известном клиенту порту
  • занимает этот порт все время, пока не завершит работу
  • об IP адресе/порте клиента узнает из приглашения, посланного клиентом
    Клиент:
  • заранее знает IP адрес и порт сервера
  • выбирает у себя произвольный порт, к-й освобождает после окончания соединения
  • посылает приглашение к соединению

После того, как клиент и сервер установили соединение, с точки зрения сети никакой разницы между ними больше нет.

Стандартные порты

Для большинства программ-серверов определены стандартные порты. Это значит, что по умолчанию ожидается, что сервер на компьютере будет слушать именно этот порт. Самыe известные стандартные порты: 80 для http (web), 21 для ftp и 25 для smtp (пересылки почты).

И большинство веб серверов в сети действительно слушают порт 80. Поэтому в браузере мы набираем адреса веб серверов и обычно не указываем порт - наши браузеры сами добавляют стандартный номер порта. Например, адрес http://yahoo.com/ на самом деле полностью выглядит так: http://yahoo.com:80/

Разумеется, стандартный - не значит обязательный. Владелец компьютера может по желанию указать в настройках своему веб серверу слушать любой порт. А если, например, 80й порт уже занят работающим веб сервером, а владелец хочет запустить еще один, то он просто вынужден указать любой другой свободный порт. Часто выбирают порт 8080 - стандартный “альтернативный” веб порт. В таком случае владелец, публикуя адрес своего веб сервера, указывает адрес вместе с портом (например http://vasyapupkin.com:8080 ).

Как работает NAT


Принимая пакет от локального компьютера, раутер смотрит на IP адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому раутер «на лету» производит трансляцию IP адреса и порта источника и запоминает эту трансляцию у себя во временной таблице.

Рассмотрим это на примере. Пусть внешний адрес раутера 15.15.15.15 . Компьютер с локальным адресом 10.0.0.5 передал раутеру пакет

10.0.0.5: 500 => yahoo.com: 80


Раутер выбрал у себя временный порт 600 и переслал в интернет пакет

15.15.15.15: 600 => yahoo.com: 80


Чуть позже, получив от сервера ответные пакеты на свой порт 600, раутер сверяется со своими записями, производит обратную трансляцию, на этот раз адреса и порта назначения, и пересылает пакеты на локальный компьютер

yahoo.com: 80 => 10.0.0.5: 500


Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, раутер сотрет у себя в таблице запись о 600м порту за сроком давности.

Отметим, что с точки зрения сервера пакеты приходят просто с адреса 15.15.15.15:600 , и ни о каком раутере или локальной сети позади него сервер не знает. С точки зрения компьютера тоже вроде бы никакого раутера и трансляции адресов по дороге не было.

Таким образом, для исходящих из локальной сети соединений NAT работает “прозрачно”, никак не мешая установлению соединений.

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

Существуют два типа межкомпьютерного обмена данны­ми- датагроммы и сеансы. Датаграмма — это сообщение, которое не требует подтверждения о приеме от принимающей стороны, а если такое подтверждение необходимо, то адресат должен сам послать специальное сообщение. Для осуществ­ления обмена данными таким способом принимающая и пере­дающая стороны должны строго придерживаться определен­ного протокола во избежание потери информации. Каждая датаграмма является самостоятельным сообщением, и при наличии нескольких датаграмм в ЛВС их доставка адресату, вообще говоря, не гарантируется. При этом датаграмма обычно является частью какого-либо сообщения, и в большинстве ЛВС скорость передачи датаграмм гораздо выше, чем сооб­щений в сеансах.

В сеансе предполагается создание логической связи для обмена сообщениями между компьютерами и гарантируется получение сообщений. В то время как датаграммы могут пе­редаваться в произвольные моменты времени, в сеансе перед передачей сообщения происходит от1фытие сеанса, а по окон­чании обмена данными сеанс должен быть закрыт.

Операционные системы большинства компьютеров под­держивают мультипрограммный режим, т.е. несколько про­грамм выполняются одновременно (параллельно выполняется несколько процессов). С некоторой степенью точности можно говорить о том, что процесс — это и есть окончательное место назначения для сообщения. Однако в силу того, что процессы создаются и завершаются динамически, отправитель редко имеет информацию, достаточную для идентификации процес­са на другом компьютере. Поэтому возникает необходимость в определении места назначения данных на основе выполняе­мых процессами функций, ничего не зная о тех процессах, которые реализуются этими функциями.

На практике вместо того, чтобы считать процесс конечным местом назначения, полагают, что каждый компьютер имеет набор некоторых точек назначения, называемых протоколь­ными портами. Каждый порт идентифицируют целым поло­жительным числом (от 0 до 65535). В этом случае операцион­ная система обеспечивает механизм взаимодействия, исполь­зуемый процессами для указания порта, на котором они работают, или порта, к которому нужен доступ. Обычно пор­ты являются Буферизированными, и данные, приходящие в конкретный порт до того, как процесс готов их получить, не будут потеряны: они будут помещены в очередь до тех пор, пока процесс не извлечет их.

Чтобы лучше понять технологию портов, представьте, что вы пришли в банк, чтобы сделать вклад. Для этого вам необхо­димо подойти к определенному окошку, где оператор оформит документы и вы откроете счет. В этом примере банк представ­ляет собой компьютер, а операторы банка — программы, кото­рые выполняют определенную работу, А вот окошки — это и есть порты, при этом каждое окошко в банке часто нумеруется (1, 2,3 …).

То же самое относится и к портам, следовательно, чтобы связаться с портом на другом компьютере, отправитель должен знать как IP-адрес компьютера-получателя, так и номер порта в компьютере. Каждое сообще­ние содержит как номер порта компьютера, которому адресо­вано сообщение, так и номер порта-источника компьютера, которому должен прийти ответ. Таким образом реализуется возможность ответить отправителю для каждого процесса.

Порты TCP/IP с номерами от 0 до 1023 являются привилегирован­ными и используются сетевыми службами, которые, в свою очередь, запущены с привилегиями администратора (супер пользователя). Например, служба доступа к файлам и папкам Windows использует порт 139, однако если она не запущена на компьютере, то при попытке обратиться к данной службе (т.е. к данному порту) будет получено сообщение об ошибке.

Порты TCP/IP с 1023 до 65535 являются непривилегированными и используются программами-клиентами для получения ответов от серверов. Например, web-браузер пользователя, обращаясь к web-серверу, использует порт 44587 своего компьютера, но обращается к 80 порту web-сервера. Получив запрос, web-сервер отправляет ответ на порт 44587, который используется web-браузером.

Порт в компьютерных сетях является конечной точкой связи в ОС. Данный термин также применяется и для аппаратных устройств, однако в программном обеспечении он обозначает логическую конструкцию, идентифицирующую конкретный вид услуг или процесс. Порт всегда связан с IP адресом хоста или типом протокола связи. Он завершает назначение адреса сеанса связи. Порт идентифицируется для каждого протокола и адреса при помощи 16-битного числа, которое также известно, как номер порта. Часто конкретные номера портов применяются для определения конкретных услуг. Из нескольких тысяч перечисленных 1024 известных номеров защищены в соответствии со специальным соглашением. Они определяют конкретные типы услуг на хосте. Протоколы, которые в основном используют порты, применяются для управления процессами. В качестве примера можно привести протокол управления передачей TCP или User Datagram Protocol из комплекта Internet протоколов.

Значение

Порты TCP не нужны по прямым ссылкам типа «точка-точка», когда на каждом конце компьютеры могут одновременно работать только с одной программой. Необходимость в них появилась после того, как эти машины оказались способны выполнять в одно и то же время более одной программы. Они оказались подключены к современным сетям с пакетной коммутацией. В модели клиент-серверной архитектуры порты, приложения и сетевые клиенты подключаются к инициации обслуживания. Они предоставляют услуги мультиплексирования после того, как первоначальный обмен информацией связывается с номером порта. Освобождается он путем переключения каждого экземпляра обслуживания запросов к выделенной линии. Осуществляется подключение к конкретному номеру. Благодаря этому дополнительные клиенты могут обслуживаться безо всякого ожидания.

Детали

Протоколы передачи данных UDP иTCP используются для того, чтобы указать в своих заголовках сегментов номер порта назначения и источник. Номер порта – это 16-разрядное число без знака. Оно может находится в пределах от 0 до 65535. TCP порты тем не менее не могут использовать номер 0. Для UDP порт источника не обязателен. Равное нулю значение означает его отсутствие. Данный процесс связывает входные или выходные каналы посредством транспортного протокола, номера порта и адреса IP через интернет сокет. Данный процесс также известен как связывание. Он дает возможность приема и передачи информации через сеть. Сетевое ПО операционной системы используется для передачи исходящих данных всех портов приложений в сеть. Также оно осуществляет переадресацию прибывающих сетевых пакетов путем сопоставления номера и IP адреса. К определенному IP адресу и комбинации портов, используя один и тот же транспортный протокол, можно привязать только один процесс. Сбои в работе приложений, которые также называют конфликтами, возникают в тех случаях, когда сразу несколько программ пытаются связаться с одними и теми же номерами портов на том же IP адресе, используя один и тот же протокол.

Как они применяются

Приложения, которые реализуют общие службы, довольно часто используют специально зарезервированный и известный список портов UDP и TCP для приема запросов на обслуживание клиентов. Данный процесс также известен под названием прослушивание. Он включает в себя получение запроса с хорошо известного порта и установление диалога между клиентом и сервером один к другому при использовании одного и того же номера локального порта. Другие клиенты могут продолжать подключаться. Это возможно, поскольку соединение TCP идентифицируется как цепочка, которая состоит из локального и удаленного портов и адресов. Стандартные порты UDP и TCP могут быть определены по соглашению под контролем IANA или Internet Assigned Numbers Authority. Как правило, ядро сетевых сервисов, прежде всего это World Wide Web, использует небольшие номера портов, меньше 1024. Во многих ОС для приложений для привязки к ним требуются специальные привилегии. По этой причине они часто считаются критическими для работы сетей IP. Конечный клиент соединения с другой стороны, как правило, использует большее их количество, выделенных для краткосрочного использования. По этой причине и существуют так называемые эфемерные порты.

Структура

Порты TCP закодированы в заголовке пакета транспортного пакета. Они легко могут быть интерпретированы не только принимающими и передающими ПК, но и другими компонентами сетевой инфраструктуры. Межсетевые экраны в частности, как правило, настроены на различение пакетов в зависимости от номеров портов назначения и их источника. Классическим примером этому является перенаправление. Попытки подключения последовательно к диапазону портов на одном компьютере также известны как их сканирование. Подобные процедуры, как правило, связаны либо с попытками злонамеренного сбоя, либо с тем, что сетевые администраторы специально ищут возможные уязвимости для того, чтобы предотвратить подобные нападения. Действия, направленные на открытие TCP порта, регистрируются и контролируются при помощи компьютеров. Данная техника использует целый ряд запасных соединений для того, чтобы обеспечить бесперебойное взаимодействие с сервером.

Примеры использования

Основной пример, в котором активно применяются порты UDP иTCP, это почтовая система Интернет. Сервер используется для работы с электронной почтой. В целом он нуждается в двух услугах. Первый сервис применяется для транспортировки по электронной почте и с других серверов. Достигается это при помощи Simple Mail Transfer Protocol (SMTP). Приложение службы SMTP, как правило, прослушивает порт TCP номер 25 для того, чтобы обрабатывать входящие запросы. Другая услуга представляет собой POP или IMAP. Они необходимы для клиентских приложений в электронной почте на машинах пользователей для того, чтобы получать с сервера сообщения электронной почты. Прослушиваются службами POP номера с порта TCP 110. Все указанные выше службы могут запускаться на одном и том же хост-компьютере. Номер порта, когда это происходит, отличает сервис, запрашиваемый удаленным устройством. Если номер порта прослушивания сервера определен корректно, данный параметр для клиента определяется из динамического диапазона. Клиенты и сервер по отдельности в некоторых случаях используют определенные порты TCP, которые назначены в IANA. В качестве наглядного примера можно привести DHCP. Здесь клиентом в любом случае используется UDP 68, а сервером UDP 67.

Использование в URL-адресах

Иногда номера портов хорошо видны в интернете или на других унифицированных указателях информационных ресурсов, вроде URL. HTTP по умолчанию использует порт TCP 80, а HTTPS – порт 443. Также существуют и другие вариации. Так, например, адрес URL http://www.example.com:8080/pathуказывает на то, что веб-браузер вместо сервера HTTP подключается к 8080.

Список портов UDP и TCP

Как уже было отмечено ранее, IANA или InternetA ssigned Numbers Authority, несет ответственность за глобальную координацию DNS-Root, адресации IP и других ресурсов интернет протокола. Эти процедуры включают в себя регистрацию часто используемых портов для известных интернет-сервисов. Все номера портов разделены между собой на три диапазона: хорошо известные, зарегистрированные и частные или динамические. Известными называют порты, имеющие номера от 0 до 1023. Их также называют системными. Требования, которые предъявляются к новым значения в данном диапазоне, являются более строгими, чем для других регистраций.

Примеры

К примерам портов, находящихся в списке известных, можно отнести:

  • TCP 443 порт – HTTPS;
  • 21 – File Transfer Protocol;
  • 22- Secure Shell;
  • 25 – простой протокол передачи почты STMP;
  • 53 – система доменных имен DNS;
  • 119 – протокол передачи сетевых новостей или NNTP;
  • 80 – протокол передачи гипертекста HTTP;
  • 143 – Internet Message Access Protocol;
  • 123 – протокол сетевого времени NTP;
  • 161- простой протокол управления сетью SNMP.

Зарегистрированные порты обязательно имеют номера от 1024 до 49151. Internet Assigned Numbers Authority поддерживает официальный перечень всех известных и зарегистрированных диапазонов. Частотные или динамические порты находятся в диапазоне от 29152 до 65535. Одним из вариантов использования данного диапазона являются временные порты.

История создания

Концепция номеров портов была разработана ранними создателями ARPANET. Она разрабатывалась в условиях неформального сотрудничества между авторами программного обеспечения и системными администраторами. В то время еще не использовался термин «номер порта». Номерной ряд удаленного хоста представлял собой 40-битное число. Первые 32 бита напоминали сегодняшний адрес IPv4. Наиболее значимыми при этом являлась первые 8 бит. Менее значимая часть числа (это биты с 33 по 40) обозначали объект под названием AEN. Он представлял собой прототип современного номера порта. Впервые создание каталога номеров сокета было предложено 26 марта 1972 года. Администраторов сети тогда призвали описать каждый постоянный номер на предмет сетевых услуг и его функций. Данный каталог впоследствии был опубликован в RFC 433 зимой 1972 года. В него вошел список хостов, их номера портов и соответствующая функция, используемая в каждом узле в сети. Впервые официальные значения номеров портов были задокументированы в мае 1972 года. Тогда же была предложена и специальная административная функция для ведения данного реестра. В первый список портов TCP вошло 256 значений AEN.Они были разделены на следующие диапазоны:

— от 0 до 63 – стандартные функции всей сети;

— от 64 до 127 – хост-специфичные функции;

— от 128 до 239 – функции, зарезервированные для будущего использования;

— от 240 до 255 – любая экспериментальная функция.

Термином AEN в начале существования ARPANET также называли имя сокета, которое применялось с первоначальным протоколом соединения и компонентом программы для управления сетью или NCP. В данном случае NCP представлял собой предшественника современных интернет-протоколов, которые используют порты TCP/IP.

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

Блокирование сетевых приложений

Поверхность атаки по сети - общепринятый термин для описания уязвимости сети. Многие сетевые нападения проходят через уязвимые приложения, и можно существенно уменьшить площадь атаки, сократив число активных приложений в сети. Другими словами, следует отключить неиспользуемые службы, установить брандмауэр на выделенной системе для проверки законности трафика и составить исчерпывающий список управления доступом (access control list - ACL) для брандмауэра на периметре сети.

Каждый открытый сетевой порт представляет приложение, прослушивающее сеть. Поверхность атаки каждого сервера, подключенного к сети, можно уменьшить, отключив все необязательные сетевые службы и приложения. Версия Windows Server 2003 превосходит предшествующие версии операционной системы, так как в ней по умолчанию активизируется меньше сетевых служб. Однако аудит все же необходим, чтобы обнаружить вновь установленные приложения и изменения в конфигурации, которые открывают лишние сетевые порты.

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

Сканирование портов

Сканирование портов - процесс обнаружения прослушивающих приложений путем активного опроса сетевых портов компьютера или другого сетевого устройства. Умение читать результаты сканирования и сравнивать сетевые отчеты с результатами хост-опроса портов позволяет составить ясную картину трафика, проходящего через сеть. Знание сетевой топологии - важное условие подготовки стратегического плана сканирования конкретных областей. Например, сканируя диапазон внешних IP-адресов, можно собрать ценные данные о взломщике, проникшем из Internet. Поэтому следует чаще сканировать сеть и закрыть все необязательные сетевые порты.

Внешнее сканирование портов брандмауэра позволяет обнаружить все откликающиеся службы (например, Web или электронная почта), размещенные на внутренних серверах. Эти серверы также следует защитить. Настройте привычный сканер портов (например, Network Mapper - Nmap) на проверку нужной группы портов UDP или TCP. Как правило, сканирование портов TCP - процедура более надежная, чем сканирование UDP, благодаря более глубокой обратной связи с ориентированными на соединения протоколами TCP. Существуют версии Nmap как для Windows, так и для Unix. Запустить базовую процедуру сканирования просто, хотя в программе реализованы и гораздо более сложные функции. Для поиска открытых портов на тестовом компьютере я запустил команду

Nmap 192.168.0.161

На экране 1 показаны результаты сеанса сканирования - в данном случае компьютера Windows 2003 в стандартной конфигурации. Данные, собранные в результате сканирования портов, показывают наличие шести открытых портов TCP.

Экран 1. Базовый сеанс сканирования Nmap
  • Порт 135 используется функцией отображения конечных точек RPC, реализованной во многих технологиях Windows - например, приложениях COM/DCOM, DFS, журналах событий, механизмах репликации файлов, формирования очередей сообщений и Microsoft Outlook. Данный порт должен быть блокирован в брандмауэре на периметре сети, но трудно закрыть его и одновременно сохранить функциональность Windows.
  • Порт 139 используется сеансовой службой NetBIOS, которая активизирует браузер поиска других компьютеров, службы совместного использования файлов, Net Logon и службу сервера. Его трудно закрыть, как и порт 135.
  • Порт 445 используется Windows для совместной работы с файлами. Чтобы закрыть этот порт, следует блокировать File and Printer Sharing for Microsoft Networks. Закрытие этого порта не мешает соединению компьютера с другими удаленными ресурсами; однако другие компьютеры не смогут подключиться к данной системе.
  • Порты 1025 и 1026 открываются динамически и используются другими системными процессами Windows, в частности различными службами.
  • Порт 3389 используется Remote Desktop, которая не активизирована по умолчанию, но на моем тестовом компьютере активна. Чтобы закрыть порт, следует перейти к вкладке Remote в диалоговом окне System Properties и сбросить флажок Allow users to connect remotely to this computer.

Обязательно следует выполнить поиск открытых портов UDP и закрыть лишние. Программа сканирования показывает открытые порты компьютера, которые видны из сети. Аналогичные результаты можно получить с помощью инструментов, расположенных на хост-системе.

Хост-сканирование

Помимо использования сетевого сканера портов, открытые порты на хост-системе можно обнаружить с помощью следующей команды (запускается на хост-системе):

Netstat -an

Эта команда работает как в Windows, так и в UNIX. Netstat выдает список активных портов компьютера. В Windows 2003 Windows XP следует добавить параметр -o, чтобы получить соответствующий идентификатор процесса (program identifier - PID). На экране 2 показаны выходные результаты Netstat для того же компьютера, сканирование портов которого выполнялось ранее. Следует обратить внимание на то, что закрыто несколько портов, которые прежде были активны.

Аудит журнала брандмауэра

Еще один полезный способ обнаружения сетевых приложений, которые отправляют или получают данные по сети, - собирать и анализировать больше данных в журнале брандмауэра. Записи Deny, в которых приводится информация с внешнего интерфейса брандмауэра, вряд ли будут полезны из-за «шумового трафика» (например, от червей, сканеров, тестирования по ping), засоряющего Internet. Но если записывать в журнал разрешенные пакеты с внутреннего интерфейса, то можно увидеть весь входящий и исходящий сетевой трафик.

Чтобы увидеть «сырые» данные трафика в сети, можно установить сетевой анализатор, который подключается к сети и записывает все обнаруженные сетевые пакеты. Самый широко распространенный бесплатный сетевой анализатор - Tcpdump для UNIX (версия для Windows называется Windump), который легко устанавливается на компьютере. После установки программы следует настроить ее для работы в режиме приема всех сетевых пакетов, чтобы регистрировать весь трафик, а затем подключить к монитору порта на сетевом коммутаторе и отслеживать весь трафик, проходящий через сеть. О настройке монитора порта будет рассказано ниже. Tcpdump - чрезвычайно гибкая программа, с помощью которой можно просматривать сетевой трафик с использованием специализированных фильтров и показывать только информацию об IP-адресах и портах либо все пакеты. Трудно просмотреть сетевые дампы в больших сетях без помощи соответствующих фильтров, но следует соблюдать осторожность, чтобы не потерять важные данные.

Объединение компонентов

До сих пор мы рассматривали различные методы и инструменты, с помощью которых можно обнаружить приложения, использующие сеть. Пришло время объединить их и показать, как определить открытые сетевые порты. Поразительно, как «болтливы» компьютеры в сети! Во-первых, рекомендуется познакомиться с документом Microsoft «Service overview and network port requirements for the Windows Server system» (http://support.microsoft.com/default.aspx?scid=kb;en-us;832017 ), в котором перечислены протоколы (TCP и UDP) и номера портов, используемые приложениями и большинством основных служб Windows Server. В документе описаны эти службы и используемые ими ассоциированные сетевые порты. Рекомендуется загрузить и распечатать это полезное для администраторов сетей Windows справочное руководство.

Настройка сетевого анализатора

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

Для этого требуется настроить монитор порта (разные поставщики называют его span port или mirrored port) в коммутаторе. Установить монитор порта в коммутаторе Cisco Catalyst компании Cisco Systems не составляет труда. Нужно зарегистрироваться на коммутаторе и активизировать режим Enable, затем перейти в режим configure terminal и ввести номер интерфейса порта коммутатора, на который следует посылать весь контролируемый трафик. Наконец, необходимо указать все отслеживаемые порты. Например, следующие команды обеспечивают мониторинг трех портов Fast Ethernet и пересылку копии трафика в порт 24.

Interface FastEthernet0/24 port monitor FastEthernet0/1 port monitor FastEthernet0/2 port monitor FastEthernet0/3 end

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

Write memory

Первоначальный анализ

Рассмотрим пример анализа данных, проходящих через сеть. Если для сетевого анализа используется компьютер Linux, то можно получить исчерпывающее представление о типе и частоте пакетов в сети с помощью такой программы, как IPTraf в режиме Statistical. Детали трафика можно выяснить с использованием программы Tcpdump.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: