"порты и за что они отвечают" "какие бывают порты и для чего они" "протоколы связи в инете" " мануал". Сети

Протокол TCP/IP представляет собой фундамент Internet, с помощью которого компьютеры отправляют и принимают информацию из любой точки земного шара, независимо от географического положения. Обратиться к компьютеру с TCP/IP в другой стране так же просто, как к компьютеру, который находится в соседней комнате. Процедура доступа в обоих случаях идентична, хотя для соединения с машиной в другой стране может потребоваться на несколько миллисекунд больше. В результате граждане любой страны могут без труда делать покупки в Amazon.com; однако из-за логической близости усложняется задача информационной защиты: любой владелец подключенного к Internet компьютера в любой точке мира может попытаться установить несанкционированное соединение с любой другой машиной.

Обязанность ИТ-специалистов - установить брандмауэры и системы обнаружения подозрительного трафика. В ходе анализа пакетов извлекается информация об IP-адресах отправителя и назначения и задействованных сетевых портах. Значение сетевых портов не уступает IP-адресам; это важнейшие критерии для отделения полезного трафика от фальшивых и вредных посылок, поступающих в сеть и исходящих из нее. Основная часть сетевого трафика Internet состоит из пакетов TCP и UDP, которые содержат информацию о сетевых портах, используемых компьютерами для того, чтобы направлять трафик от одного приложения в другое. Необходимое условие безопасности брандмауэра и сети - исчерпывающее понимание администратором принципов использования этих портов компьютерами и сетевыми устройствами.

Изучаем порты

Знание основных принципов работы сетевых портов пригодится любому системному администратору. Имея базовые знания об устройстве портов TCP и UDP, администратор может самостоятельно выполнить диагностику отказавшего сетевого приложения или защитить компьютер, которому предстоит обратиться в Internet, не вызывая сетевого инженера или консультанта по брандмауэрам.

В первой части данной статьи (состоящей из двух частей) дается описание основных понятий, необходимых для рассмотрения сетевых портов. Будет показано место сетевых портов в общей сетевой модели и роль сетевых портов и NAT (Network Address Translation - трансляция сетевых адресов) брандмауэра в соединениях компьютеров компании с Internet. И наконец, будут указаны точки сети, в которых удобно идентифицировать и фильтровать сетевой трафик по соответствующим сетевым портам. Во второй части рассматриваются некоторые порты, используемые широко распространенными приложениями и операционными системами, и рассказывается о некоторых инструментах для поиска открытых портов сети.

Краткий обзор сетевых протоколов

TCP/IP - набор сетевых протоколов, через которые компьютеры устанавливают связь друг с другом. Набор TCP/IP - не более чем фрагменты программного кода, установленные в операционной системе и открывающие доступ к этим протоколам. TCP/IP является стандартом, поэтому приложения TCP/IP на компьютере Windows должны успешно обмениваться данными с аналогичным приложением на машине UNIX. В начальный период развития сетей, в 1983 г., инженеры разработали семиуровневую модель взаимодействия OSI для описания процессов сетевого обмена компьютеров, от кабеля до приложения. Модель OSI состоит из физического, канального, сетевого, транспортного, сеансового представления данных и прикладного уровней. Администраторы, постоянно работающие с Internet и TCP/IP, в основном имеют дело с сетевым, транспортным и прикладным уровнями, но для успешной диагностики необходимо знать и другие уровни. Несмотря на солидный возраст модели OSI, ею по-прежнему пользуются многие специалисты. Например, когда сетевой инженер говорит о коммутаторах уровней 1 или 2, а поставщик брандмауэров - о контроле на уровне 7, они имеют в виду уровни, определенные в модели OSI.

В данной статье рассказывается о сетевых портах, расположенных на уровне 4 - транспортном. В наборе TCP/IP эти порты используются протоколами TCP и UDP. Но прежде чем перейти к подробному описанию одного уровня, необходимо кратко ознакомиться с семью уровнями OSI и той ролью, которую они выполняют в современных сетях TCP/IP.

Уровни 1 и 2: физические кабели и адреса MAC

Уровень 1, физический, представляет собственно среду, в которой распространяется сигнал, - например, медный кабель, волоконно-оптический кабель или радиосигналы (в случае Wi-Fi). Уровень 2, канальный, описывает формат данных для передачи в физической среде. На уровне 2 пакеты организуются в кадры и могут быть реализованы базовые функции управления потоком данных и обработки ошибок. Стандарт IEEE 802.3, более известный как Ethernet,- самый распространенный стандарт уровня 2 для современных локальных сетей. Обычный сетевой коммутатор - устройство уровня 2, с помощью которого несколько компьютеров физически подключаются и обмениваются данными друг с другом. Иногда два компьютера не могут установить соединение друг с другом, хотя IP-адреса кажутся корректными: причиной неполадки могут быть ошибки в кэше протокола преобразования адресов ARP (Address Resolution Protocol), что свидетельствует о неисправности на уровне 2. Кроме того, некоторые беспроводные точки доступа (Access Point, AP) обеспечивают фильтрацию адресов MAC, разрешающую соединение с беспроводной AP только сетевым адаптерам с конкретным MAC-адресом.

Уровни 3 и 4: IP-адреса и сетевые порты

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

Вместе с сетевым уровнем 4-й уровень (транспортный) - хорошая отправная точка для диагностики сетевых неисправностей. В Internet уровень 4 содержит протоколы TCP и UDP и информацию о сетевом порте, который связывает пакет с конкретным приложением. Сетевой стек компьютера использует связь сетевого порта TCP или UDP с приложением, чтобы направить сетевой трафик в это приложение. Например, TCP-порт 80 связан с приложением Web-сервера. Такое соответствие портов с приложениями известно как служба.

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

Сетевой порт представляет собой число от 1 до 65535, указанное и известное обоим приложениям, между которыми устанавливается связь. Например, клиент, как правило, посылает незашифрованный запрос в сервер по целевому адресу на TCP-порт 80. Обычно компьютер посылает запрос DNS на DNS-сервер по целевому адресу на UDP-порт 53. Клиент и сервер имеют IP-адрес источника и назначения, а также сетевой порт источника и назначения, которые могут различаться. Исторически все номера портов ниже 1024 получили название «известных номеров портов» и зарегистрированы в организации IANA (Internet Assigned Numbers Authority). В некоторых операционных системах только системные процессы могут использовать порты этого диапазона. Кроме того, организации могут зарегистрировать в IANA порты с 1024 по 49151-й, чтобы связать порт со своим приложением. Такая регистрация обеспечивает структуру, которая помогает избежать конфликтов между приложениями, стремящимися использовать порт с одним номером. Однако в целом ничто не мешает приложению запросить конкретный порт, если он не занят другой активной программой.

Исторически сложилось так, что сервер может прослушивать порты с малыми номерами, а клиент - инициировать соединение от порта с большим номером (выше 1024). Например, Web-клиент может открыть соединение с Web-сервером через порт назначения 80, но ассоциировать произвольно выбранный порт-источник, например TCP-порт 1025. Отвечая клиенту, Web-сервер адресует пакет клиенту с портом-источником 80 и портом назначения 1025. Комбинация IP-адреса и порта называется сокетом (socket), она должна быть уникальной в компьютере. По этой причине при организации Web-сервера с двумя отдельными Web-сайтами на одном компьютере необходимо использовать несколько IP-адресов, например address1:80 и address2:80, или настроить Web-сервер на прослушивание нескольких сетевых портов, таких как address1:80 и address1:81. Некоторые Web-серверы обеспечивают работу нескольких Web-сайтов через один порт, запрашивая хост-заголовок, но в действительности эта функция выполняется приложением Web-сервера на более высоком уровне 7.

По мере того как в операционных системах и приложениях появлялись сетевые функции, программисты начали использовать порты с номерами выше 1024, без регистрации всех приложений в IANA. Выполнив в Internet поиск для любого сетевого порта, как правило, удается быстро найти информацию о приложениях, которые используют этот порт. Или же можно провести поиск по словам Well Known Ports и отыскать множество сайтов со списками наиболее типичных портов.

При блокировании сетевых приложений компьютера или устранении изъянов в брандмауэре основная часть работы приходится на классификацию и фильтрацию IP-адресов уровня 3, а также протоколов и сетевых портов уровня 4. Чтобы быстро отличать легальный и подозрительный трафик, следует научиться распознавать 20 наиболее широко используемых на предприятии портов TCP и UDP.

Умение распознавать сетевые порты и знакомство с ними не ограничивается назначением правил для брандмауэра. Например, в некоторых исправлениях для системы безопасности Microsoft описана процедура закрытия портов NetBIOS. Эта мера позволяет ограничить распространение «червей», проникающих через уязвимые места операционной системы. Зная, как и где следует закрыть эти порты, можно уменьшить угрозу безопасности сети во время подготовки к развертыванию важного исправления.

И сразу к уровню 7

В настоящее время редко приходится слышать об уровне 5 (сеансовом) и уровне 6 (представления данных), но уровень 7 (прикладной) - горячая тема среди поставщиков брандмауэров. Новейшая тенденция в развитии сетевых брандмауэров - контроль на уровне 7, который описывает методы, используемые для анализа работы приложения с сетевыми протоколами. Анализируя полезную информацию сетевого пакета, брандмауэр может определить законность проходящего через него трафика. Например, Web-запрос содержит оператор GET внутри пакета уровня 4 (TCP-порт 80). Если в брандмауэре реализованы функции уровня 7, то можно проверить корректность оператора GET. Другой пример - многие одноранговые (P2P) программы обмена файлами могут захватить порт 80. В результате постороннее лицо может настроить программу на использование порта по собственному выбору - скорее всего, порта, который должен оставаться открытым в данном брандмауэре. Если сотрудникам компании нужен выход в Internet, необходимо открыть порт 80, но, чтобы отличить законный Web-трафик от трафика P2P, направленного кем-то в порт 80, брандмауэр должен обеспечивать контроль на уровне 7.

Роль брандмауэра

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

Большинство Internet-брандмауэров работает на уровнях 3 и 4, чтобы исследовать, а затем разрешить или блокировать входящий и исходящий сетевой трафик. В целом администратор составляет списки управления доступом (ACL), которые определяют IP-адреса и сетевые порты блокируемого или разрешенного трафика. Например, чтобы обратиться в Web, нужно запустить браузер и нацелить его на Web-узел. Компьютер инициирует исходящее соединение, посылая последовательность IP-пакетов, состоящих из заголовка и полезной информации. Заголовок содержит информацию о маршруте и другие атрибуты пакета. Правила брандмауэра часто составляются с учетом информации о маршруте и обычно содержат IP-адреса источника и места назначения (уровень 3) и протокола пакета (уровень 4). При перемещениях по Web IP-адрес назначения принадлежит Web-серверу, а протокол и порт назначения (по умолчанию) - TCP 80. IP-адрес источника представляет собой адрес компьютера, с которого пользователь выходит в Web, а порт источника - обычно динамически назначаемое число, превышающее 1024. Полезная информация не зависит от заголовка и генерируется приложением пользователя; в данном случае это запрос Web-серверу на предоставление Web-страницы.

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

В отличие от принятого во многих брандмауэрах подхода к исходящему трафику, большинство из них настроено на блокирование входящего трафика. Как правило, брандмауэры разрешают входящий трафик только в двух случаях. Первый - трафик, поступающий в ответ на исходящий запрос, посланный ранее пользователем. Например, если указать в браузере адрес Web-страницы, то брандмауэр пропускает в сеть программный код HTML и другие компоненты Web-страницы. Второй случай - размещение в Internet внутренней службы, такой как почтовый сервер, Web- или FTP-узел. Размещение такой службы обычно называется трансляцией порта или публикацией сервера. Реализация трансляции порта у разных поставщиков брандмауэров различна, но в основе лежит единый принцип. Администратор определяет службу, такую как TCP-порт 80 для Web-сервера и внутренний сервер для размещения службы. Если пакеты поступают в брандмауэр через внешний интерфейс, соответствующий данной службе, то механизм трансляции портов пересылает их на конкретный компьютер сети, скрытый за брандмауэром. Трансляция порта используется в сочетании со службой NAT, описанной ниже.

Основы NAT

Благодаря NAT многочисленные компьютеры компании могут совместно занимать небольшое пространство общедоступных IP-адресов. DHCP-сервер компании может выделять IP-адрес из одного из блоков частных, Internet-немаршрутизируемых IP-адресов, определенных в документе Request for Comments (RFC) № 1918. Несколько компаний также могут совместно использовать одно пространство частных IP-адресов. Примеры частных IP-подсетей - 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16. Маршрутизаторы Internet блокируют любые пакеты, направляемые в один из частных адресов. NAT - функция брандмауэра, с помощью которой компании, в которых используются частные IP-адреса, устанавливают связь с другими компьютерами в Internet. Брандмауэру известно, как транслировать входящий и исходящий трафик для частных внутренних IP-адресов, чтобы каждый компьютер имел доступ в Internet.

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

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

Значение

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

Детали

Протоколы передачи данных - Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) - применяются для того, чтобы указать номер порта назначения и источник в своих заголовках сегментов. Номер порта представляет собой 16-разрядное целое число без знака. Таким образом, он может быть в диапазоне от 0 до 65535.

Тем не менее TCP-порты не могут использовать номер 0. Порт источника для UDP не обязателен, и значение, равное нулю, означает его отсутствие.

Процесс связывает свои входные или выходные каналы через интернет-сокет (тип дескриптора файла) посредством транспортного протокола, номера порта и IP-адреса. Этот процесс известен как связывание, и он дает возможность передачи и приема данных через сеть.

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

Как они используются

Приложения, реализующие общие службы, часто используют специально зарезервированный и хорошо известный список портов TCP и UDP для приема запросов на обслуживание от клиентов. Этот процесс известен как прослушивание, и он включает в себя получение запроса с хорошо известного порта и установления диалога между сервером и клиентом «один-к-одному», с использованием одного и того же номера локального порта. Другие клиенты могут продолжать подключаться - это возможно, так как соединение TCP идентифицируется как цепочка, состоящая из локального и удаленного адресов и портов. Стандартные порты TCP и UDP определяются по соглашению под контролем Internet Assigned Numbers Authority (IANA).

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

Структура

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

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

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

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

Самым главным примером, где активно используются порты TCP/UDP, является почтовая система Интернет. Сервер применяется для работы с электронной почтой (отправкой и получением), и в целом нуждается в двух услугах. Первый сервис используется для транспортировки по электронной почте и с других серверов. Это достигается с помощью Как правило, приложение-служба SMTP прослушивает TCP-порт номер 25 с целью обработки входящих запросов. Другая услуга представляет собой POP (полностью - Post Office Protocol) либо IMAP (или Internet Message Access Protocol) который необходимы для клиентских приложений в электронной почте на машинах пользователей, чтобы получать с сервера сообщения электронной почты. Службами POP прослушиваются номера с TCP-порта 110. Вышеуказанные службы обе могут запускаться на одном и том же хост-компьютере. Когда это происходит, номер порта отличает сервис, запрошенный удаленным устройством - ПК пользователя либо каким-либо иным почтовым сервером.

В то время как номер порта прослушивания сервера корректно определен (IANA называет их хорошо известными портами), данный параметр клиента часто выбирается из динамического диапазона. В некоторых случаях клиенты и сервер по отдельности используют определенные TCP-порты, назначенные в IANA. Наглядным примером может служить DHCP, где клиентом во всех случаях используется UDP 68, а сервером - UDP 67.

Применение в URL-адресах

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

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

Как уже было отмечено, Internet Assigned Numbers Authority (IANA) несет ответственность за глобальную координацию DNS-Root, IP-адресации и других ресурсов Интернет-протокола. Это включает в себя регистрацию часто используемых номеров портов для известных интернет-сервисов.

Номера портов разделены на три диапазона: хорошо известные, зарегистрированные и динамические или частные. Хорошо известные (также известные как системные) - это имеющие номера от 0 до 1023. Требования, предъявляемые к новым назначениям в этом диапазоне, являются более строгими, чем для других регистраций.

Широко известные примеры

Примеры, находящиеся в данном списке, включают в себя:

  • TCP 443 порт: HTTP Secure (HTTPS).
  • 22: Secure Shell (SSH).
  • 25: Простой протокол передачи почты (SMTP).
  • 53: Система доменных имен (DNS).
  • 80: Протокол передачи гипертекста (HTTP).
  • 119: Протокол передачи сетевых новостей (NNTP).
  • 123: Протокол сетевого времени (NTP)..
  • 143: Internet Message Access Protocol (IMAP)
  • 161: Простой протокол управления сетью (SNMP)1.
  • 94: Internet Relay Chat (IRC).

Зарегистрированные порты содержат номера от 1024 до 49151. IANA поддерживает официальный список известных и зарегистрированных диапазонов. Динамические или частные - от 49152 до 65535. Один из вариантов использования этого диапазона предназначен для временных портов.

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

Концепция номера порта была создана ранними разработчиками ARPANET в условиях неформального сотрудничества авторов программного обеспечения и системных администраторов.

Термин «номер порта» еще не использовался в то время. Номерной ряд для удаленного хоста был 40-битным числом. Первые 32 бита были похожи на сегодняшний IPv4-адрес, но при этом наиболее значимыми были первые 8 бит. Наименее значительная часть числа (биты с 33 по 40) обозначали другой объект, который назывался AEN. Это и есть прототип современного номера порта.

26 марта 1972 года было впервые предложено создание каталога номеров сокета в RFC 322. призвали описать каждый постоянный номер на предмет его функций и сетевых услуг. Этот каталог был впоследствии опубликован в RFC 433 в декабре 1972 года и включал в себя список хостов, их номера портов и соответствующую функцию, используемую на каждом узле в сети. В мае 1972 года впервые были задокументированы официальные назначения номеров портов, сетевых служб, а также предложена специальная административная функция для ведения этого реестра.

Первый список TCP-портов имел 256 значений AEN, которые были разделены на следующие диапазоны:

  • От 0 до 63: стандартные функции всей сети
  • От 64 до 127: хост-специфичные функции
  • От 128 до 239: зарезервированные для будущего использования
  • От 240 до 255: любая экспериментальная функция.

Служба Telnet получила первое официальное присвоение значения 1. В начале существования ARPANET термином AEN также называли имя сокета, которое использовалось с первоначальным протоколом соединения (MSP) и компонентом программы управления сетью (NCP). При этом NCP был предшественником современных Интернет-протоколов, использующих порты TCP/IP.

Номер порта для «привязки» службы выбирается в зависимости от его функционального назначения. За присвоение номеров портов определённым сетевым службам отвечает IANA .

Номера портов находятся в диапазоне 0—65535 и разделены на 3 категории:


Номера портов

Категория

Описание
0—1023 Общеизвестные порты Номера портов назначены IANA и на большинстве систем могут быть использованы исключительно процессами системы (или пользователя root) или прикладными программами, запущенными привилегированными пользователями.

Не должны использоваться без регистрации IANA. Процедура регистрации определена в разделе 19.9 RFC 4340 (англ.) .

1024—49151 Зарегистрированные порты Номера портов включены в каталог IANA и на большинстве систем могут быть использованы процессами обычных пользователей или программами, запущенными обычными пользователями.

Не должны использоваться без регистрации IANA. Процедура регистрации определена в разделе 19.9 RFC 4340.

49152—65535 Динамические порты Предназначены для временного использования (например, для тестирования приложений до регистрации IANA), а также в качестве клиентских (используемых для частных служб внутри закрытых сетей). Эти порты не могут быть зарегистрированы

Локальная копия списка

Локальная копия списка входит в установочный пакет сетевых операционных систем . Файл локальной копии списка обычно называется services и в различных операционных системах «лежит» в разных местах:

Windows 98/ME

C:\Windows\services

Windows NT/XP

C:\Windows\system32\drivers\etc\services

UNIX-подобные ОС

Перейти к: 1 Термин не должны в данном контексте используется в значении определения SHOULD NOT , данного в RFC 2119 (англ.) :

«НЕ ДОЛЖЕН» или «НЕ РЕКОМЕНДУЕТСЯ» означает, что при определённых обстоятельствах возможны отдельные случаи, обусловленные вескими причинами, когда нарушение указанных рекомендаций приемлемо или даже предпочтительно, но такие причины и обстоятельства должны быть понятны и тщательно взвешены, прежде чем нарушить рекомендации, помеченные данной фразой.

Сетевые порты могут дать важнейшую информацию о приложениях, которые обращаются к компьютерам по сети. Зная приложения, которые используют сеть, и соответствующие сетевые порты, можно составить точные правила для брандмауэра, и настроить хост-компьютеры таким образом, чтобы они пропускали только полезный трафик. Построив профиль сети и разместив инструменты для распознавания сетевого трафика, можно более эффективно обнаруживать взломщиков - иногда просто анализируя генерируемый ими сетевой трафик. Эту тему мы начали рассматривать в первой части статьи, опубликованной в предыдущем номере журнала. Там приводились основные сведения о портах 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.