Совместное использование портов net.tcpnet.tcp port sharing

Прослушиваемые порты IPv4 и IPv6 адресов в Linux

В Linux у программ netstat и ss имеется особенность вывода информации о прослушиваемых портах, когда прослушиваются одновременно IPv4 и IPv6 адреса — выводится информация только об IPv6 адресе! Возможно это связано с какими-то глубинными особенностями реализации ядра Linux, но в Windows, например, есть чёткое разделение и если служба одновременно прослушивает порт на IPv4 и IPv6 адресах, то информация об этой службе выводится два раза — пример этого почти в самом начале статьи, где мы ищем, какая служба прослушивает 80й порт и в найденной информации нам дважды показана служба httpd.

Методы сканирования портов

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

  • Ваниль (Vanilla) — самый простой скан; попытка подключиться ко всем 65 536 портам по по очереди. Ванильное сканирование — это полное сканирование соединения, то есть оно отправляет флаг SYN (запрос на подключение) и после получения ответа SYN-ACK (подтверждение подключения) отправляет обратно флаг ACK. Этот обмен SYN, SYN-ACK, ACK включает квитирование TCP. Полное сканирование подключений является точным, но очень легко обнаруживается, поскольку все подключения всегда регистрируются брандмауэрами.
  • Сканирование SYN (SYN Scan) — также называется полуоткрытым сканированием, оно только отправляет SYN и ожидает ответа SYN-ACK от цели. Если ответ получен, сканер никогда не отвечает. Так как соединение TCP не было установлено, система не регистрирует взаимодействие, но отправитель узнал, открыт порт или нет.
  • Сканирование XMAS и FIN (XMAS and FIN Scans) — набор сканирований, используемых для сбора информации без регистрации в целевой системе. При сканировании FIN незапрошенный флаг FIN (обычно используемый для завершения установленного сеанса) будет отправлен на порт. Ответ системы на этот случайный флаг может показать состояние порта или брандмауэр. Например, закрытый порт, который получает незапрошенный пакет FIN, ответит пакетом RST (мгновенный прерывание), но открытый порт проигнорирует его. Сканирование XMAS просто отправляет набор всех флагов, создавая бессмысленное взаимодействие. Ответ системы может быть интерпретирован для лучшего понимания портов системы и брандмауэра.
  • Сканирование отказов FTP (FTP Bounce Scan) — позволяет замаскировать местоположение отправителя путем пересылки пакета через FTP-сервер. Это также предназначено для отправителя, чтобы остаться незамеченным.
  • Сканирование развертки (Sweep scan) — пингует один и тот же порт на нескольких компьютерах, чтобы определить, какие компьютеры в сети активны. Это не раскрывает информацию о состоянии порта, а сообщает отправителю, какие системы в сети активны. Таким образом, его можно использовать как предварительное сканирование.

Транспорт

Автотранспорт обслуживает внутригородские перевозки и перевозки между всеми городами Мурманской области. Существует регулярное автобусное сообщение, которое связывает Мурманск с Финляндией (Ивало-Рованиеми) и Норвегией (Киркенес).

Основная дорога области: Санкт-Петербург — Петрозаводск — Мурманск. Все города области связаны с Мурманском дорогами с твердым покрытием.

Две дороги ведут из Мурманска к Государственной границе к контрольно-пропускным пунктам международного значения: Лотта/Рая — Йосеппи на границе с Финляндией и Сторгског/Борисоглебский на границе с Норвегией. Дорога к Рая — Йосипи открыта ежедневно. Печенгская дорога через Заполярный к Борисоглебску зимой часто бывает закрыта из-за снежных заносов. Всем автомобильным дорогам недостает комплекса сервиса: кемпингов, остановок для отдыха, автозаправочных станций и станций технического обслуживания автотранспорта, придорожных кафе и магазинов, торговли сувенирами и предметами первой необходимости, наличия почтово-телефонной связи и дорожной информации (знаки, путеводители, практические советы путешественникам).

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

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

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

Поэтому пришло время поговорить о том, как проверить открытые порты компьютера через командную строку. И поверьте, это очень просто. С этим справиться даже первоклассник.

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

В ней вводим простенькую команду следующего вида:

netstat — aon | more

После этого запустится процесс сканирования. Естественно, здесь нужно немножко подождать, поэтому надо запастись терпением или чаем. И вот, на рисунке ниже в желтой рамке показаны открытые порты. Как видите, в графе «Состояние» они помечены как «LISTENING» (то есть слушающий).

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

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

Также могут присутствовать в общем списке значения типа «CLOSE_WAIT» (ожидания закрытия соединения) и «TIME_WAIT» (превышение времени ответа)

Внимание на скриншот ниже

Хорошо, вот мы узнали какие порты открыты, но что делать дальше с этим хозяйством? На самом деле все просто. Рассмотрим ситуацию на реальном примере. Допустим мы хотим узнать, какой программой открыт порт «1688» (он выделен на рисунке выше).

Для этого нужно скопировать значение из последнего столбца, который называется «PID». В нашем случае это цифра «9184». Теперь следует открыть диспетчер задач Windows одновременным нажатием клавиш «Ctrl+Alt+Del», а затем перейти на вкладку «Подробности».

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

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

Что такое сканер портов?

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

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

Порты различаются по своим назначениям. Они пронумерованы от 0 до 65535, но определенные диапазоны используются чаще. Порты с 0 по 1023 идентифицируются (https://ru.wikipedia.org/wiki/Список_портов_TCP_и_UDP), как «общеизвестные порты» или стандартные порты и были назначены для определенных служб, агентством по присвоению номеров в Интернете (IANA). Некоторые из наиболее известных портов и назначенных им служб включают в себя:

  • Порт 20 (UDP) — протокол передачи файлов (FTP) для передачи данных
  • Порт 22 (tcp) — протокол Secure Shell (SSH) для безопасного входа, FTP и переадресации портов
  • Порт 23 (tcp) — протокол Telnet для не зашифрованных текстовых коммутаций
  • Порт 53 (UDP) — Система доменных имен (DNS) переводит имена всех компьютеров в Интернете в IP-адреса
  • Порт 80 (tcp) — Всемирная паутина HTTP

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

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

  • TCP 443 порт: HTTP Secure (HTTPS).
  • 21: File Transfer Protocol (FTP).
  • 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. Один из вариантов использования этого диапазона предназначен для временных портов.

Как в Windows узнать, какая программа прослушивает порт

Открытых для прослушивания портов может оказаться достаточно много и обычно они используются легитимными программами

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

Для поиска службы, можно добавить к приведённой команде опцию -b, которая означает показать исполнимый файл, прослушивающий порт:

netstat -anb

Также имеется альтернативный способ определения исполнимого файла, привязанного к порту. Для него откройте Командную строку Windows. Для этого нажмите сочетание клавиш Win+x, там выберите Windows PowerShell (Администратор). В открывшемся окне введите:

cmd

чтобы перейти в обычную командную строку.

Там запустите команду вида:

for /f "tokens=1,2,3,4,5*" %i in ('netstat -aon ^| findstr ":80" ^| findstr /i listening') do echo %j %l & @tasklist | findstr %m

Эта команда найдёт службы, которые прослушивают 80 порт. Чтобы найти информацию о другом порте, замените в команде цифру 80 на интересующий вас порт.

Пример вывода в моём случае:

C:\Windows\system32>echo 0.0.0.0:80 LISTENING   &
0.0.0.0:80 LISTENING
httpd.exe                     3576 Services                   0    16 764 КБ

C:\Windows\system32>echo :80 LISTENING   &
:80 LISTENING
httpd.exe                     3576 Services                   0    16 764 КБ

Запись 0.0.0.0:80 означает, порт 80 для любых IPv4 адресов прослушивает служба httpd.exe (веб-сервер Apache). А запись :80 — означает, что порт 80 для любых IPv6 адресов прослушивает та же самая служба httpd.exe (веб-сервер Apache). Мы ещё вернёмся к более подробному анализу данных далее в этой статье.

Менять порт в длинной команде не всегда удобно, поэтому рекомендую создать текстовый файл с именем port.bat, в этот файл скопируйте:

@ECHO OFF
for /f "tokens=1,2,3,4,5*" %%i in ('netstat -aon ^| findstr ":%1" ^| findstr /i listening') do echo %%j %%l & @tasklist | findstr %%m

Сохраните и закройте этот файл.

Теперь в Windows PowerShell или в командной строке Windows с помощью команды cd перейдите в папку, куда вы сохранили файл. Например, я его сохранил в папку C:\Users\Alex\Documents\, тогда для перехода туда я выполняю:

cd C:\Users\Alex\Documents\

Теперь запустите файл командой вида:

.\port.bat 

Где замените на интересующий вас порт, например, меня интересует порт 80, тогда:

.\port.bat 80

Вновь получаю аналогичный результат.

Если у вас множество портов прослушивает процесс svchost.exe, то чтобы разобраться, какие именно это службы, смотрите статью «Почему svchost.exe прослушивает много портов? Как узнать, какие именно программы открыли порты».

Как проверить открытые порты в Windows

В Windows есть команда netstat, которая отображает статистику протокола и текущих сетевых подключений TCP/IP.

Использование команды:

NETSTAT           
        

Опции netstat:

  -a            Отображение всех подключений и портов прослушивания.
  -b            Отображение исполняемого файла, участвующего в создании
                каждого подключения или порта прослушивания. Иногда известные
                исполняемые файлы содержат множество независимых
                компонентов. Тогда отображается последовательность компонентов,
                участвующих в создании подключения или порта прослушивания. В
                этом случае имя исполняемого файла находится снизу в скобках
                [], сверху находится вызванный им компонент, и так до тех
                пор, пока не достигнут TCP/IP. Заметьте, что такой подход
                может занять много времени и требует достаточных разрешений.
  -e            Отображение статистики Ethernet. Может применяться вместе
                с параметром -s.
  -f            Отображение полного имени домена (FQDN) для внешних адресов.
  -n            Отображение адресов и номеров портов в числовом формате.
  -o            Отображение ИД процесса каждого подключения.
  -p протокол   Отображение подключений для протокола, задаваемых этим
                параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6.
                Если используется вместе с параметром -s для отображения
                статистики по протоколам, допустимы следующие значения:
                IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6.
  -q            Отображение всех подключений, портов прослушивания и ограниченных
                непрослушивающих TCP-портов. Ограниченные непрослушивающие порты могут быть или не быть
                связанными с активными подключениями
  -r            Отображение содержимого таблицы маршрутов.
  -s            Отображение статистики по протоколам.  По умолчанию статистика
                отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6,
                UDP и UDPv6. Параметр -p позволяет указать подмножество
                выводимых данных.
  -t            Отображение состояния разгрузки для текущего подключения.
  -x            Отображение подключений, прослушивателей и общих конечных точек
                NetworkDirect.
  -y            Отображение шаблона подключений TCP для всех подключений.
                Не может использоваться вместе с другими параметрами.
  interval      Повторное отображение выбранной статистики с паузой
                между отображениями, заданной интервалом
                в секундах.  Чтобы прекратить повторное отображение
                статистики, нажмите клавиши CTRL+C.
                Если этот параметр опущен, netstat напечатает текущую
                информацию о конфигурации один раз.

Используя команду со следующими ключами, можно посмотреть информацию о всех подключениях и прослушиваемых портах в Windows:

netstat -an

Что из себя представляет порт и зачем он нужен

Если разобраться, то все предельно просто. У операционной системы компьютера есть определенное ограниченное число портов. Они нужны для того, чтобы программы могли к ним подключаться через сеть. Это сделано для того, чтобы приложения не конфликтовали между собой во время попытки подсоединиться к сети. Порт – это лишь цифра транспортного протокола. Его можно сравнить с трассой. Если все программы запускать по одной и той же “трассе”, то на ней быстро образуется пробка. Потому для каждого приложения должен быть выделен свой уникальный порт – то есть еще не занятое другими программами число.

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

Такой протокол удобен для тех людей, которым неважен web-интерфейс хранилища, а которые ценят скорость загрузки и количество файлов, которые можно хранить на сервере. Нет лучшего способа обмена объемными данными, чем через протокол FTP. И работает этот протокол через канал TCP. А для того, чтобы подключиться к этому каналу, необходим определенный порт. То есть чтобы открыть сервер, клиент должен зайти на его порт, и уже через него проникнуть на хост. В этом и кроется вся суть портов для FTP.

Обязательно ли использовать 21 порт

Люди, которые постоянно имеют дело с серверами и создают их, наслышаны о цифре 21. Для них она является знаковой, так как многие сервера и протоколы, не только FTP, используют 21 порт по умолчанию. И это плохо, если начать анализировать ситуацию. Ведь протокол передачи данных совсем не защищен от перехвата. В любой момент опытные хакеры могут напасть на ваш сервер и перехватить пароль и логин клиента. Затем они проникнут на сервер и украдут оттуда важные данные, либо спрячут в каталогах вредоносные программы и вирусы.

Чтобы хоть как-то повысить уровень безопасности использования протокола FTP, рекомендуется сменить в настройках стандартный порт, который нужен для подключения. Сделать это несложно, но у каждого сервера данная опция настраивается по-своему. Единственный нюанс заключается в том, что потом при подключении клиенту необходимо будет указывать новый номер порта вместо цифры 21. В этом и суть защиты – хакеры не будут знать порт, по которому нужно перехватывать данные, потому не сумеют их украсть.

TCP и UDP

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

Кстати, про протокол TCP вы практически наверняка слышали, по крайней мере должны были встречать запись TCP/IP — эта связка протоколов очень важна для Интернета. Протокол IP отвечает за то, куда отправлять данные, а TCP отвечает за непосредственную передачу данных и проверку их целостности.

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

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

Что такое активный и пассивный режим, и как они связаны с портами

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

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

Но дело в том, что в протоколе FTP есть два типа соединения:

  1. Управляющее.
  2. Соединение для передачи данных.

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

Архитектура совместного использования портовPort Sharing Architecture

Архитектура совместного использования портов в WCF имеет три основных компонента:The Port Sharing architecture in WCF has three main components:

  • Рабочий процесс: любой процесс, обменивающийся данными по протоколу net.tcp:// через совместно используемые порты.A Worker Process: Any process communicating over net.tcp:// using shared ports.

  • Транспорт TCP WCF: реализует протокол net. TCP://.The WCF TCP transport: Implements the net.tcp:// protocol.

  • Служба совместного использования портов Net.TCP: позволяет множеству рабочих процессов использовать один и тот же TCP-порт.The Net.TCP Port Sharing Service: Allows many worker processes to share the same TCP port.

Служба совместного использования портов Net.TCP представляет собой службу Windows пользовательского режима, принимающую подключения по net.tcp:// от имени рабочих процессов, которые соединяются через нее.The Net.TCP Port Sharing Service is a user-mode Windows service that accepts net.tcp:// connections on behalf of the worker processes that connect through it. При поступлении подключения через сокет служба совместного использования портов анализирует входящий поток сообщения, чтобы получить его адрес назначения.When a socket connection arrives, the port sharing service inspects the incoming message stream to obtain its destination address. Располагая этим адресом, служба совместного использования портов может направить поток данных приложению, которое в конечном итоге его обрабатывает.Based on this address, the port sharing service can route the data stream to the application that ultimately processes it.

Когда открывается служба WCF, использующая NET. TCP://совместное использование портов, инфраструктура транспорта TCP WCF не открывает сокет TCP в процессе приложения напрямую.When a WCF service that uses net.tcp:// port sharing opens, the WCF TCP transport infrastructure does not directly open a TCP socket in the application process. Вместо этого транспортная инфраструктура регистрирует универсальный код ресурса (URI) базового адреса службы в службе совместного использования портов Net.TCP и ожидает, чтобы служба совместного использования портов прослушивала сообщения от ее имени.Instead, the transport infrastructure registers the service’s base address Uniform Resource Identifier (URI) with the Net.TCP Port Sharing Service and waits for the port sharing service to listen for messages on its behalf. Служба совместного использования портов отправляет сообщения, адресованные службе приложения, по мере их поступления.The port sharing service dispatches messages addressed to the application service as they arrive.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector