Номера портов
Порты TCP не пересекаются с портами UDP. То есть, порт 1234 протокола TCP не будет мешать обмену по UDP через порт 1234.
Ряд номеров портов стандартизован (см. Список портов TCP и UDP). Список поддерживается некоммерческой организацией IANA .
В большинстве UNIX -подобных операционных систем прослушивание портов с номерами 0-1023 (почти все из которых зарегистрированы) требует особых привилегий. Каждый из остальных портов может быть захвачен первым запросившим его процессом . Однако, зарегистрировано номеров намного больше, чем 1024.
Краткий список номеров портов
Подразумевается использование протокола TCP там, где не оговорено иное.
- DISCARD: 9, Discard port (RFC 863)
- FTP : 21 для команд, 20 для данных
- SSH : 22 (remote access)
- telnet : 23 (remote access)
- SMTP : 25, 465, 587
- iserver: 3055
- XMPP (Jabber): 5222/5223 — клиент-сервер, 5269 — сервер-сервер
- traceroute : выше 33434 (UDP) (в некоторых источниках указано, что достаточно указать диапазон портов от 33434 до 33534)
Что такое IP-адрес
У всех он есть, но не все имеют представление что за адрес такой и почему вообще без него нельзя. Рассказываю.
IP-адрес — 32-х битное число, используемое для идентификации компьютера в сети. Адрес принято записывать десятичными значениями каждого октета этого числа с разделением полученных значений точками. Например, 192.168.101.36
IP-адреса уникальны, — это значит, что каждый компьютер имеет свое собственное сочетание цифр, и в сети не может быть двух компьютеров с одинаковыми адресами. IP-адреса распределяются централизованно, интернет-провайдеры делают заявки в национальные центры в соответствии со своими потребностями. Полученные провайдерами диапазоны адресов распределяются дальше между клиентами. Клиенты, в свою очередь, сами могут выступать в роли провайдера и распределять полученные IP-адреса между субклиентами и т.д. При таком способе распределения IP-адресов компьютерная система точно знает «расположение» компьютера, имеющего уникальный IP-адрес; — ей достаточно переслать данные в сеть «владельца», а провайдер в свою очередь проанализирует пункт назначения и, зная, кому отдана эта часть адресов, отправит информацию следующему владельцу поддиапазона IP-адресов, пока данные не поступят на компьютер назначения.
Для построения же локальных сетей выделены спец.диапазоны адресов. Это адреса 10.x.x.x, 192.168.x.x, 10.x.x.x, c 172.16.x.x по 172.31.x.x, 169.254.x.x, где под x- имеется ввиду любое число это от 0 до 254. Пакеты, передаваемые с указанных адресов, не маршрутизируется, иными словами, попросту не пересылаются через Интернет, а поэтому в различных локальных сетях компьютеры могут иметь совпадающие адреса из указанных диапазонов. Т.е., в компании ООО «Рога и копыта» и ООО «Вася и компания» могут находится два компьютера с адресами 192.168.0.244, но не могут, скажем, с адресами 85.144.213.122, полученными от провайдера интернета, т.к. в интернете не может быть два одинаковых IP-адреса. Для пересылки информации с таких компьютеров в Интернет и обратно используются спец.программы и устройства, которые заменяют локальные адреса реальными при работе с интернетом. Иными словами, данные в Сеть пересылаются с реального IP-адреса, а не с локального. Этот процесс происходит не заметно для пользователя и называется трансляцией адресов. Хочется так же упомянуть, что в рамках одной сети, скажем, компании, ООО «Рога и копыта», не может быть два компьютера с одним локальным IP-адресом, т.е., в указанном выше примере имелось ввиду, что один компьютер с адресом 192.168.0.244 в одной компании, второй с таким же адресом — в другой. В одной же компании два компьютера с адресом 192.168.0.244 попросту не уживутся.
Вы наверняка слышали такие термины как внешний IP и внутренний IP, постоянный (статический IP) и переменный (динамический) IP. В двух словах о них:
- внешний IP — это как раз тот самый IP, который выдает Вам провайдер, т.е. Ваш уникальный адрес в интернете, например, — 85.144.24.122
- внутренний IP, — это локальный IP, т.е. Ваш IP в локальной сети, например, — 192.168.1.3
- статический IP — это IP, который не меняется с каждым подключением, т.е. закреплен за Вами твердо и навсегда
- динамический IP, — это плавающий IP-адрес, который меняется с каждым подключением
Тип Вашего IP (статический или динамический) зависит от настроек провайдера.
Краткий обзор сетевых протоколов
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.
Роль брандмауэра
Описав сетевые уровни, можно перейти к описанию механизма связи между сетевыми приложениями через брандмауэры, уделив особое внимание используемым при этом сетевым портам. В следующем примере клиентский браузер устанавливает связь с 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, описанной ниже.
IPv6
Протокол, предшествовавший Internet Protocol, был разработан Управлением перспективных исследовательских работ Министерства обороны США (DARPA) в 1960-х годах, а набор протоколов TCP/IP получил признание лишь в 1980 г. Поскольку IP базировался на существовавших сетевых протоколах DARPA, он получил номер версии 4 и теперь известен как IPv4. В те времена, когда человечество в большинстве своем представляло себе мобильный телефон как трубку, которую можно снимать со стены и переносить к дивану, число хостов, поддерживаемых IP, казалось более чем достаточным.
Однако сегодня все хотят подключить к Интернету холодильники и газонокосилки, и IETF разработало новую версию IP — IPv6
Наиболее важное изменение этой версии по сравнению с IPv4 заключается в использовании для адресации не 32, а 128 битов, что позволит всем Tablet PC, Pocket PC, мобильным телефонам, телевизорам, автомобилям, газонокосилкам, кофеваркам и мусорным контейнерам стать полноправными хостами Интернета.
Кроме возможности назначить адрес почти каждому атому в Солнечной системе, в IPv6 появляется еще несколько полезных изменений:
-
Возможности расширенной адресации. Чтобы определить диапазон адресов групповой рассылки, в адреса IPv6 может включаться маршрутная информация о группах. Кроме того, появляется альтернативный адрес для отправки сообщения любому хосту или любой группе хостов.
-
Упрощение формата заголовка. Некоторые поля заголовка IPv4 удаляются, другие становятся необязательными. Однако полная длина заголовка IPv6 больше, чем в IPv4 из-за 128-битных адресов источника и назначения.
-
Улучшенная поддержка расширяемости. В будущем добавлять расширения к протоколу IPv6 станет легче. Ограничения на длину для опций удалено.
-
Маркирование потока. Для конкретных потоков трафика добавляется новая возможность. Поток — это последовательность пакетов, перемещающаяся от источника к назначению. В новом протоколе приложения могут предлагать аудио- и видеовозможности в реальном времени по различным потокам. Каждый поток может запрашивать обработку в реальном времени или особо качественную обработку у маршрутизаторов, через которые он распространяется.
-
Аутентификация и секретность. Добавляются расширения IPv6, поддерживающие аутентификацию, секретность и конфиденциальность отправляемых данных.
Что есть MAC-адрес
Дело в том, что пересылаемые пакеты в сети адресуются компьютерам не по их именам и не на IP-адрес. Пакет предназначается устройству с конкретным адресом, который и называется MAC-адресом.
MAC-адрес — это уникальный адрес сетевого устройства, который заложен в него изготовителем оборудования, т.е. это этакий проштампованный номер Вашей сетевой карты. Первая половина MAC-адрес представляет собой идентификатор изготовителя, вторая — уникальный номер данного устройства.
Как правило MAC-адрес бывает требуется для идентификации, скажем, у провайдера (если провайдер использует привязку по мак-адресу вместо логина-пароля) или при настройке маршрутизатора.
Сначала фундамент, потом структура
Понимание основных принципов организации сети со стороны приложения, брандмауэра и порта необходимо не только сетевым инженерам. Сегодня редко встречается компьютерная система, не подключенная к сети, и даже системным администраторам гораздо проще решать свои проблемы, понимая хотя бы основы использования сетевых портов для связи приложений через Internet.
Во второй части статьи будет рассмотрен инструментарий для обнаружения приложений в сети путем анализа задействованных сетевых портов. Чтобы отыскать приложения, открывающие порты на прослушивание и доступные по сети, компьютер опрашивается через сеть (сканирование портов) и локально (хост-сканирование). Кроме того, просматривая журналы брандмауэра, можно исследовать сетевой трафик, который пересекает границу сети, и заглянуть в различные сетевые порты, используемые приложениями Windows и UNIX.
Что такое динамические порты FTP
Поскольку обычно запросы идут на сервер от клиента (а не наоборот), то хорошо известные номера портов актуальны для серверов. Они «слушают» через порты своих клиентов, которым эти номера не нужны. На время связи программа- клиент (или операционная система) использует свой временный номер порта, или некий диапазон номеров. IANA задает номера от 1 до 1023. А временные номера начинаются с 1024 и выше. Программа FTP- клиент работает таким же образом — у нее указан свой временный диапазон, по которому она пытается «достучаться» до нужного сервера.
Когда мы настраиваем FTP — сервер, мы прописываем 21 порт для передачи данных. Но, программа, которая непосредственно руководит сервером, должна не только передавать данные, а еще давать доступ к данным пользователями этого сервера. С помощью такого же диапазона временных (или динамических) портов. Через эти порты она «слушает»пользователей ФТП сервера и устанавливает соединения. Диапазон динамических портов FTP задается при настройке соответствующей программы:
В Windows Server 2012-2016 можно задать произвольный диапазон портов прямо в операционной системе, не пользуясь сторонними программами. Диапазон номеров задается от 1024 до 65535, это ограничение транспортного протокола.
Что такое таблицы маршрутизации
И вот мы плавно добрались и до них. И так.. Что же за таблицы такие.
Организация или пользователь может иметь несколько точек подключения к Интернету (например, резервные каналы на случай, если у первого провайдера что-то выйдет из строя, а интернет таки очень нужен) или содержать в своей структуре несколько IP-сетей. В этом случае, чтобы система знала каким путем (через какой шлюз) посылать ту или иную информацию, используются таблицы маршрутизации. В таблицах маршрутизации для каждого шлюза указываются те подсети Интернета, для которых через них должна передаваться информация. При этом для нескольких шлюзов можно задать одинаковые диапазоны, но с разной стоимостью передачи данных: например, информация, будет пересылаться по каналу, имеющему самую низкую стоимость, а в случае выхода его из строя по тем или иным причинам, автоматически будет использоваться следующее доступное наиболее дешевое соединение.
Заголовок TCP
- Порядковый номер выполняет две задачи:
-
- Если установлен флаг SYN, то это начальное значение номера последовательности — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер последовательности, равный ISN + 1.
- В противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот номер последовательности.
- Номер подтверждения — если установлен флаг ACK, то это поле содержит номер последовательности, ожидаемый получателем в следующий раз. Помечает этот сегмент как подтверждение получения.
- Длина заголовка — задается словами по 32бита.
- Размер окна — количество байт, которые готов принять получатель без подтверждения.
- Контрольная сумма — включает псевдо заголовок, заголовок и данные.
- Указатель срочности — указывает последний байт срочных данных, на которые надо немедленно реагировать.
- URG — флаг срочности, включает поле «Указатель срочности», если =0 то поле игнорируется.
- ACK — флаг подтверждение, включает поле «Номер подтверждения, если =0 то поле игнорируется.
- PSH — флаг требует выполнения операции push, модуль TCP должен срочно передать пакет программе.
- RST — флаг прерывания соединения, используется для отказа в соединении
- SYN — флаг синхронизация порядковых номеров, используется при установлении соединения.
- FIN — флаг окончание передачи со стороны отправителя
Рассмотрим структуру заголовка TCP с помощью сетевого анализатора Wireshark:
TCP порты
Так как на одном и том же компьютере могут быть запущены несколько программ, то для доставки TCP-пакета конкретной программе, используется уникальный идентификатор каждой программы или номер порта.
Номер порта — это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.
TCP порты используют определенный порт программы для доставки данных, передаваемых с помощью протокола управления передачей (TCP). TCP порты являются более сложными и работают иначе, чем порты UDP. В то время как порт UDP работает как одиночная очередь сообщений и как точка входа для UDP-соединения, окончательной точкой входа для всех соединений TCP является уникальное соединение. Каждое соединение TCP однозначно идентифицируется двумя точками входа.
Каждый отдельный порт сервера TCP может предложить общий доступ к нескольким соединениям, потому что все TCP соединения идентифицируются двумя значениями: IP-адресом и TCP портом (сокет).
Все номера портов TCP, которые меньше чем 1024 — зарезервированы и зарегистрированы в Internet Assigned Numbers Authority (IANA).
Номера портов UDP и TCP не пересекаются.
TCP программы используют зарезервированные или хорошо известные номера портов, как показано на следующем рисунке.
Основы 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.
На рис. 1 показана базовая схема NAT-соединения между клиентом и Web-сервером. На этапе 1 трафик, направляемый в Internet с компьютера корпоративной сети, поступает на внутренний интерфейс брандмауэра. Брандмауэр получает пакет и делает запись в таблице отслеживания соединений, которая управляет преобразованием адресов. Затем брандмауэр подменяет частный адрес источника пакета собственным внешним общедоступным IP-адресом и посылает пакет по месту назначения в Internet (этап 2). Компьютер назначения получает пакет и передает ответ в брандмауэр (этап 3). Получив этот пакет, брандмауэр отыскивает отправителя исходного пакета в таблице отслеживания соединений, заменяет IP-адрес назначения на соответствующий частный IP-адрес и передает пакет на исходный компьютер (этап 4). Поскольку брандмауэр посылает пакеты от имени всех внутренних компьютеров, он изменяет исходный сетевой порт, и данная информация хранится в таблице отслеживания соединений брандмауэра. Это необходимо, чтобы исходящие сокеты оставались уникальными.
Важно понимать принципы работы NAT, так как NAT изменяет IP-адрес и сетевые порты пакетов трафика. Такое понимание помогает в диагностике неисправностей
Например, становится понятным, почему один трафик может иметь разные IP-адреса и сетевые порты на внешнем и внутреннем интерфейсах брандмауэра.
Номера портов
Для идентификации узлов сети протокол IP использует IP-адреса, а транспортный уровень (уровень 4) использует конечные точки для идентификации приложения. Чтобы указать конечную точку приложения, протоколы TCP и UDP вместе с IP-адресом используют номер порта.
Сервер должен предоставить известную конечную точку, с которой мог бы соединиться клиент, хотя номер порта может создаваться для клиента динамически. Номера портов TCP и UDP имеют длину 16 битов, их можно подразделить на три категории:
-
Системные (известные) номера портов
-
Пользовательские (зарегистрированные) номера портов
-
Динамические, или частные, порты
Системные номера портов находятся в диапазоне от 0 до 1023. Эти номера должны использоваться только системными, привилегированными процессами. Широко известные протоколы пользуются номерами портов, установленными по умолчанию из этого диапазона.
Пользовательские номера портов находятся в диапазоне от 1024 до 49151. Ваше серверное приложение обычно будет занимать один из этих портов, и вы, если захотите сделать его известным сообществу пользователей Интернета, сможете зарегистрировать номер порта в IANA.
Динамические номера портов принимают значения из диапазона от 49 152 до 65 535. Если не требуется знать номер порта до запуска приложения, подойдет порт в этом диапазоне. Клиентские приложения, которые соединяются с серверами, могут использовать такой порт.
Запустив утилиту netstat с опцией -а, мы увидим перечень всех используемых в данный момент портов и указание о состоянии соединения — находится ли соединение в состоянии прослушивания или соединение уже было установлено:
В файле services из каталога <windir>\system32\drivers\etc перечислены многие предопределенные пользовательские и системные номера портов. Если порт содержится в перечне этого файла, то утилита netstat вместо номера порта отобразит имя протокола.
IP[править]
IP — протокол, лежащий в основе Интернета, его название так и расшифровывается: Internet Protocol.
В настоящее время используются следующие две версии протокола IP:
- IPv6 — сравнительно новая (текущая версия спецификации опубликована в декабре 1998); IP-адрес имеет разрядность 128 бит и записывается в виде восьми 16-битных полей, с использованием шестнадцатеричной системы счисления и с возможностью сокращения двух и более последовательных нулевых полей до ; пример: ;
- IPv4 — «классическая» (1981 г.); IP-адрес имеет разрядность 32 бита и записывается в виде четырех десятичных чисел в диапазоне 0 … 255 через точку; пример: .
Каждый узел может напрямую связаться только с узлами своей сети (например: подключенными к тому же сегменту Ethernet), для определения которых используется адрес сети — часть IP-адреса, определяемая маской сети. Связь с узлами других сетей осуществляется через промежуточные узлы — маршрутизаторы.
Посмотреть, как выглядит маршрут пакета от вашего компьютера к другим узлам, можно с помощью команды traceroute (в Linux) или tracert (в Windows).