Протокол и порт как узнать

Обновлено: 28.06.2024

Пособие по протоколам TCP/UDP

О портах

Пакеты TCP и UDP содержат номера исходного порта и порта назначения. Порт — это точка ввода/вывода, связывающая сеть с приложением (или со службой либо демоном). Порты имеют номера от 0 до 65535. Такая схема нумерации выбрана потому, что в заголовках пакетов TCP и UDP на номера исходных портов и портов назначения выделяется 16 (216) разрядов (216 соответствует 65336 возможным номерам портов). Нумерация точек ввода/вывода — удобный способ, позволяющий как компьютерам, так и пользователям следить за тем, какой порт какой программе принадлежит.

Еще на заре эпохи Internet организация Internet Assigned Numbers Authority (IANA), ответственная за распределение номеров, решила зарезервировать первые 1024 номера портов (т. е. номера от 0 до 1023) для направляющих запросы объектов. IANA назначает эти так называемые хорошо известные номера портов (некоторые типичные хорошо известные номера портов приведены в табл. 1). Хотя почти все списки хорошо известных номеров портов ныне устарели и уже не являются на 100% точными, популярные номера портов для наиболее широко распространенных служб и протоколов остаются неизменными на протяжении более 10 лет.

Пример коммуникации

Частный IP-адрес 192.168.168.160 указан потому, что мой компьютер расположен за брандмауэром, который соединяет его с Internet с присвоением общедоступного IP-адреса. При каждом установленном посредством браузера соединении или обновлении генерируется новый (обычно выраженный имеющим большее значение числом) номер исходного порта. Кроме того, поскольку на Web-странице могут быть встроенные ссылки и рекламные объявления, размещенные на других Web-сайтах, одна страница браузера может иметь несколько открытых портовых соединений; все они могут указывать на один и тот же IP-адрес или на различные IP-адреса.

Тайна Svchost

Кроме того, Windows 2000 и более поздние версии операционной системы открывают многие другие порты (например, 500 или 123), которые предназначены для службы svchost.exe. Этот генерируемый процесс размещается в папке \%windir%system32. Он запускается всякий раз, когда Windows инициализирует и загружает в память одну или несколько служб, определенных в разделе реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost.

В процессе выявления открытых портов администраторы часто обнаруживают, что инициатором открытия нескольких отдельных портов является служба svchost.exe. К примеру, сейчас, когда я пишу эту статью, svchost.exe загружена в память моего компьютера четыре раза; она поддерживает службы RPCSS, EventSystem, Netman, NtmsSvc, RasMan, SENS, а также TapiSrv и открыла порты 123, 135, 1025, 1026, 1900 и 5000. В процессе поиска вредоносных программ, возможно, вас будет согревать мысль о том, что порты, связанные с svchost.exe, недоступны для тех, кто замышляет недоброе. Впрочем, разумеется, нельзя исключать возможность внешних атак против этих портов (например, атак, использующих вызовы удаленных процедур, RPC).

Netstat

Чтобы активизировать Netstat, нужно открыть окно командной строки, для чего следует открыть меню Start и выбрать пункт Run. В окне командной строки нужно ввести команду

и нажать клавишу Enter. Чтобы получить список параметров Netstat, можно использовать команду Nestat -?, но для целей настоящей статьи мы введем команду

netstat -ano

где параметр -a отображает активные соединения, параметр -n показывает соединения с IP-адресами и номерами портов вместо имен, а параметр -o отображает идентификатор процесса (PID) приложения, владеющего данным портом.

На экране 1 показаны результаты выполнения команды Netstat -ano, как они были отображены моим компьютером. Команда выдает пять колонок данных. В первой колонке перечислены все сетевые протоколы, отображающие вначале все TCP-соединения. Во второй колонке указаны локальный IP-адрес и номер порта соответствующего соединения. В третьей колонке перечислены IP-адреса и номера портов назначения. Если номер порта еще не определен, в колонке ставится звездочка (*). В четвертой колонке обозначены состояния портов TCP. Состояния ESTABLISHED, LISTENING и SYN_SENT означают открытые и активные сеансы, все остальные состояния к этим категориям не относятся. Для портов UDP состояния не перечисляются, поскольку протокол UDP не предусматривает сохранения данных о состоянии. В табл. 4 показаны различные состояния Netstat (сервером в таблице именуется локальная программа или служба, владеющая портом).

В пятой колонке данных, предоставляемых утилитой Netstat, приводятся идентификаторы PID процессов, открывших соответствующий порт. Можно связать данную информацию с определенной программой или службой при помощи диспетчера Task Manager. Тем, кому еще не доводилось исследовать идентификаторы PID с помощью Task Manager, хочу напомнить, что в окне Task Manager необходимо создать дополнительную колонку PID. Для этого нужно нажать комбинацию клавиш Ctrl+Alt+Del; на экране появится окно Task Manager. Следует перейти на закладку Task Manager Processes, затем щелкнуть на View и Select Columns. Выбрав переключатель нужного идентификатора процесса PID, нажмите OK. Теперь диспетчер Task Manager отобразит идентификатор PID рядом с названием владеющей портом программы (Image Name), как показано на экране 2. Чтобы установить соответствие между идентификаторами процессов и их именами, можно переключаться между экраном Netstat и окном Task Manager.

Netstat -ano — неплохая утилита для вывода списка открытых портов, но у нее есть несколько недостатков. Она функционирует только на системах Windows 2003 и Windows XP, а если пользователь хочет установить соответствие портов с программами, он должен переключаться между двумя экранами. На системах, где открыто множество портов, Netstat может иметь исключительно низкое быстродействие, а по точности она уступает некоторым конкурентам. Netstat — это утилита командной строки, она не оснащена удобным для пользователя графическим интерфейсом и не предоставляет данные в реальном времени. Этот инструмент следует запускать всякий раз, когда необходимо обновить сведения о том или ином порте. Наконец, Netstat не отображает удаленных IP-адресов и номеров портов (иначе именуемых конечными точками), подключенных к активным портам UDP.

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

Утилиты для исследования открытых портов от независимых компаний

Существует множество бесплатно распространяемых и коммерческих средств, среди которых есть как утилиты командной строки, так и профессионально оформленные инструменты с графическим интерфейсом пользователя. Я протестировал 10 таких программ на системе Windows 2000 Professional. На компьютере был представлен стандартный набор служб и портов (конкретно речь идет о портах 135, 137, 138, 139, 445 и 500), характерный для только что введенной в строй системы.

Active Network Monitor

Port Traffic Analyzer

Когда-то утилита Port Traffic Analyzer от компании Atelier Web (цена 32,50 долл.) была одним из моих любимых инструментов. Она входила в число первых графических утилит для поиска открытых портов. Ее было легко устанавливать и эксплуатировать. К сожалению, когда я устанавливал текущую версию на тестовой системе, программа Port Traffic Analyzer не сумела зафиксировать какую-либо активность портов, хотя процесс установки, судя по всему, прошел гладко. Я несколько раз удалял эту утилиту и устанавливал ее снова, я пробовал перезагружать систему — все напрасно. На Web-узле компании Atelier в первой — и самой объемной — части раздела, посвященного часто задаваемым вопросам, документируются проблемы установки. Похоже, что у большинства пользователей проблемы возникают потому, что для сбора информации в рассматриваемой утилите используется предложенный Microsoft API Layer Service Provider (LSP). Техническая поддержка предоставляется только через Web, но вы можете быстро получить ответ. Как ни восхищал меня этот продукт в прошлом, сейчас мне трудно рекомендовать его из-за постоянных проблем, связанных с установкой.

Fport

Inzider

Самая примечательная особенность бесплатно распространяемой компанией NTSecurity.nu программы Inzider — это простая процедура удаления. У меня начались проблемы в тот момент, когда я активизировал эту утилиту. Интерфейс показался мне графической вариацией на тему окна командной строки DOS. Когда я запустил программу на выполнение, быстродействие системы тут же снизилось, и я подумал, уж не зависла ли она. Однако спустя несколько минут программа Inzider начала отображать на экране перечень процессов. К сожалению, первый процесс в этом списке не имел открытого сетевого порта; приводились только идентификатор PID, имя процесса и путь доступа. Может быть, утилита должна была представить номер порта или IP-адрес спустя какое-то время, но мне так и не довелось увидеть их. По прошествии пяти минут Inzider отобразил только два процесса, и я прервал его выполнение.

Очевидно, такая медлительность связана с тем уникальным способом, с помощью которого Inzider составляет перечень процессов, — этот метод называется DLL injection. Неудивительно, что данный прием не используется ни в одном другом средстве проверки портов. Ведь даже сами разработчики утилиты Inzider отмечают в документации, что программа функционирует нестабильно. Кроме того, они признают, что Inzider не обеспечивает проверку процессов, которые инициировались как службы. Иными словами, получается, что это решение мало что дает.

Net-Scope

Port Explorer

По-видимому, для отслеживания и идентификации процессов Port Explorer использует не менее пяти отдельных методов — SNMP, LSP, недокументированный прием Transport Driver Interface (TDI), а также документированные и недокументированные методы IPHelper. На моих тестах утилита Port Explorer показала себя как самое точное инструментальное средство и была одним из двух средств проверки портов, которые отображали удаленные IP-адреса и соединения UDP как на экране, так и в журнале.

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

В состав пакета Port Explorer входит несколько диагностических и тестовых утилит, облегчающих поиск удаленного компьютера. В их число входят Ping, Lookup, Whois, Traceroute и даже анализатор пакетов под названием Socket Spy. Вводя с клавиатуры соответствующие идентификаторы PID, пользователь может дать анализатору Socket Spy команду перехватывать информацию из пакетов локальных программ. К тому же можно прекращать любой процесс, распознаваемый Port Explorer. Вне всякого сомнения, Port Explorer — это самое производительное, самое стабильное и самое впечатляющее из протестированных мною средств для поиска открытых портов.

OpenPorts

Фирма DiamondCS недавно выпустила утилиту командной строки OpenPorts, которой могут бесплатно пользоваться владельцы домашних компьютеров и пользователи из сферы образования. Принцип действия данного инструмента такой же, как и у программы FPort; более того, в окне командной строки пользователь может ввести команду fport, и тогда утилита начнет отображать данные в том же представлении, что и Fport. Кроме того, формат представления данных OpenPorts можно менять с помощью ключа -netstat. Любопытно, что в стандартном режиме функционирования OpenPOrts при перечислении портов сортирует их по именам процессов — очень удобная возможность, позволяющая видеть все порты (TCP и UDP), ассоциированные с той или иной программой. Чтобы понять, насколько полезна эта функция, достаточно представить ситуацию, когда браузер устанавливает соединение с Web-узлом, который содержит ссылки на 15 других узлов, и каждый из них открывает свой порт. Программа OpenPOrts выдает имя процесса (но не путь доступа к нему), локальный IP-адрес и номер порта, удаленный IP-адрес и номер порта, а также сведения о состоянии. Кроме того, это средство может экспортировать данные в файлы трех форматов. И поскольку OpenPorts предъявляет данные об удаленных IP-адресах, номерах удаленных портов и о состоянии, эта бесплатно распространяемая утилита по эффективности превосходит изделие Fport.

Socket Port Owner

Поставляемая фирмой Fly Ya Software программа Socket Port Owner (цена 14,99 долл.) предоставляет чуть больше информации, нежели Fport. Незатейливый графический интерфейс этого продукта напоминает мне главное окно Active Network Monitor. Утилита Socket Port Owner отображает сведения об идентификаторах PID, о пути к исполняемому модулю, локальных и удаленных IP-адресах и портах, а также о протоколах. В интерфейсе имеется колонка Remote Location, в которой программа, как ни странно, ошибочно идентифицировала мой частный IP-адрес как расположенный в Голландии (впрочем, возможно, что эта ошибка характерна только для демонстрационной версии). Другая колонка, Listen, содержит лишь два значения, yes или no, что трудно назвать наилучшим вариантом представления информации о состоянии. Наконец, Socket Port Owner не имеет справочного файла.

TCPView

X-NetStat Professional 4.0

Разработанная специалистами Fresh Software программа X-NetStat Professional 4.0 (цена 20 долл.) устанавливается быстро и легко, но у нее неудобный графический интерфейс. Трудно определить, как добраться до нужной информации. В верхней части экрана содержится список соединений, а также локальные и удаленные адреса, локальные и удаленные порт, протокол и состояние (которое создатели программы обозначают с помощью термина Status). В нижней части экрана — несколько окон; каждое из них содержит открытый порт (в одних случаях это порт UDP, в других — TCP). Чтобы получить общую информацию о том, какая программа пользуется данным портом, нужно щелкнуть на одном из этих окон правой кнопкой мыши и в раскрывшемся меню выбрать пункт Port Information. В целом надо сказать, что программа содержит много ошибок и пользоваться ею неудобно. Единственное преимущество состоит в том, что X-NetStat Professional 4.0 обеспечивает захват заголовков пакетов по портам, что, как оказалось, иногда может быть полезным при идентификации портов.

На Web-узле фирмы Fresh Software я нашел объявление о выпуске в ноябре 2002 года версии продукта 5.0, но эта версия так и не появилась. Зато сайт буквально забросал меня целой грудой всплывающих рекламных объявлений. Я полагаю, что фирма прекратила работу над этим продуктом и пытается извлечь прибыль из других направлений своей деятельности.

Лучшие

Когда занимаешься поиском программ, способных нанести системе ущерб, полезно иметь под рукой список открытых TCP/IP-портов, а также открывших их программ или служб. Возможности утилиты Netstat ограничены, но она устанавливается вместе с каждой версией Windows, поэтому данным инструментом всегда можно воспользоваться в процессе поиска причины неполадок. К сожалению, он не облегчает решения проблемы установления соответствия между открытым портом и исходной программой. И все же в случае необходимости операторы компьютеров Windows 2003 и Windows XP могут воспользоваться командой Netstat-ano — данные, полученные с ее помощью, можно сравнить со списком идентификаторов PID диспетчера Task Manager. Но тем, кто работает на других платформах Windows, придется подыскивать альтернативные решения. Если говорить о продуктах, представленных в нашем сравнительном обзоре, самым сильным претендентом является фирма DiamondCS и ее программы — продукт на базе графический интерфейс Port Explorer и утилита командной строки OpenPorts. Изделие TCPView компании Sysinternals — претендент номер два, но только для тех, кто может избежать проблем со стабильностью, с которыми я столкнулся, работая на платформе Windows NT. Среди утилит командной строки альтернативой OpenPorts является разработанная компанией Foundstone программа Fport. Но те, кто профессионально занимается проблемами сетевой безопасности или администрированием систем, непременно должны иметь у себя копию программы Port Explorer.

UDP и TCP

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

Некоторые программы задействуют оба протокола — и UDP, и TCP. Так, сервер RealAudio фирмы RealNetworks использует порт TCP 7070 с целью инициализации соединения для последующей загрузки данных для клиента RealAudio Player. После установления связи сервер RealAudio передает поток данных через порты UDP от 6980 до 7170. Другой пример: для обмена данными между DNS-серверами Microsoft DNS использует порт UDP 53. Если один сервер DNS определяет, что и другой сервер DNS также является сервером Microsoft DNS, он может принять решение о переключении сетевого соединения на порт 53 TCP, чтобы иметь возможность передавать более значительные объемы данных об именах в домене.

Искусство интерпретации Netstat

Читать распределенные по пяти колонкам показания Netstat — это в некотором роде искусство. Прежде всего следует обратить внимание на колонку Local Address. Как правило, в ней будут отображаться данные типа 0.0.0.0 или 127.0.0.1, а может быть, IP-адрес одного из физических сетевых интерфейсов (скажем, сетевой интерфейсной платы или модема). Если данное приложение связано с 0.0.0.0, программа готова принимать соединения с любого интерфейса. Если приложение привязано к конкретному IP-адресу, программа намерена принимать соединения с этим портом только от данного локального интерфейса. Адрес 127.0.0.1 — это адрес локальной кольцевой проверки; т. е. данное приложение будет принимать соединения, инициированные лишь конкретным компьютером. Адрес 127.0.0.1 часто используется при обмене данными в процессе удаленного вызова процедур между процессами и при соединениях с PDA. Как правило, соединения 127.0.0.1 являются безопасными, так как вредоносные программы никогда не открывают для себя только локальное соединение. Поэтому следует обратить внимание на оставшиеся соединения.

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

Для проверки доступности самого сервера обычно используется команда ping. Но, в силу того, что данная утилита работает с ICMP-пакетами, для конкретного порта проверить доступ таким образом невозможно. Кроме того, на ресурсе в целях безопасности может быть заблокирован ответ на ICMP-пакеты, соответственно, результат доступности нельзя считать однозначным, если ресурс "не пингуется".

Как проверить доступен ли порт?

Традиционный способ.

Первое, что приходит на ум - использовать "старый добрый" telnet.

Для примера проверять будем доступность менеджера кластера:

Получили в ответ "кракозябру" - значит доступ есть


Осталось выйти сначала из кракозябры по 'CTRL+]' и затем из самого telnet-а

Загвоздка в том, что в большинстве современных Windows-систем telnet-клиент не установлен по-умолчанию, и требуется доустанавливать этот компонент. Что не всегда возможно, т.к. компьютер может быть и не своим и/или нет соответствующих прав.


Способ без инсталляции программ.

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

В качестве такого инструмента удобно использовать утилиту psping от Sysinternals.

Эту утилиту можно скачать как отдельно, так и в составе пакета SysinternalsSuite, который содержит множество других необходимых инструментов.


Еще один портабельный инструмент, позволяющий решить задачу:

tcping (

Встроенный инструментарий.

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

Это powershell-командлет Test-NetConnection


В ответе нас интересует последняя строка - TcpTestSucceeded: True. В данном случае - доступ есть.

Также, в ответе может содержаться еще значение PingSucceeded - это "обычный" ping по ICMP.

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


Разумеется, запускать командлет необходимо в окне PowerShell, а не "командной строки".

Хотя, из командной строки тоже можно, вызвав PowerShell:

Следует заметить, что командлет доступен в версиях PowerShell от 4.0 и выше, т.е. начиная с Windows Server 2012 R2 и Windows 8.1

Полагаю, опытные администраторы смогут добавить еще несколько способов. Каким способом пользуетесь Вы и почему?

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

(1) Александр, спасибо и Вам!
Протестировал, дейтвительно удобная штука. Возможность тестирования по списку или диапазону портов - просто клад!

(3) Сергей, я прямо ждал, что nmap будет упомянут.
Насколько я понимаю, ему требуется инсталляция. По крайней мере в Windows. Или есть портабельный?

(4) предположу, что если его статически слинковать, то он вполне себе портабельный будет - он же опенсорсный и Вы можете творить с ним что угодно.

Аналог стандартного ping-а, но для tcp.

1) очень полезно написано :)
"в ответ "кракозябру" - значит доступ есть"
крякозябру я видел раньше, но не думал что это "доказательство"

2) а как можно свой компьютер проверить ?
(без постороннего компьютера)
на наличие открытых портов 1540-15хх
ато отладка в 1С не работала без портов,
чтоб сисадминам в морду тыкнуть :)

(8)
Свой компьютер проверяется точно так же, как и любой другой. Только вместо имени удаленного компьютера подставляете "localhost" или имя, которое Вам отобразит команда hostname.
Например:
psping localhost:1540
или
powershell tnc mycompname -p 1540

Вопрос только в том, что такая проверка даст. Она ведь осуществляется "изнутри". Поэтому внешние ограничения (на уровне сетевой инфраструктуры) на неё не влияют.

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

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

Просмотры 92862

Загрузки 0

Рейтинг 54

Создание 12.05.19 09:30

Обновление 12.05.19 09:30

№ Публикации 1057474

Тип файла Нет файла

Конфигурация Не имеет значения

Операционная система Windows

Вид учета Не имеет значения

Доступ к файлу Бесплатно (free)

Код открыт Да


См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017 68029 user700211_a.straltsou 30

Выгрузка в dt на сервере 1С по расписанию с завершением соединений и подключением к консоли сервера через com

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

16.04.2020 9451 karamazoff 48

Самые распространенные заблуждения об индексах в мире 1С

"Магия" индексов привела к множеству заблуждений об их работе. Попробуем развеять некоторые из них в контексте 1С.

28.11.2019 31930 YPermitin 52

Установка и настройка нескольких экземпляров сервера 1С: Предприятия 8.3 разных релизов на одном Ubuntu-server

Запуск нескольких экземпляров сервера 1С Предприятия 8.3 разных релизов на одном Ubuntu-server.

19.09.2019 13590 Error34 23

Копирование числовых ячеек из 1С в Excel Промо

15.01.2019 36021 itriot11 27

Как настроить сервер 1С по умолчанию для ПРОФ лицензии после 10.09.2019

Здесь мы собираем все данные по настройкам сервера для работы ПРОФ лицензии.

11.09.2019 111835 Infostart 90

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019 23024 Sloth 49

Нарушение целостности системы

Причины возникновения ошибки "Обнаружено нарушение целостности системы" и способы ее устранения.

07.09.2019 54368 Rain88 27

Семь рекомендуемых бесплатных курсов Microsoft для ИТ-администраторов Промо

28.12.2018 18326 VKuser24342747 2

Установка 1С Сервера взаимодействия на Linux

В статье описан пошаговый процесс установки Сервера взаимодействия 1C на Linux CentOS 7.6.

06.09.2019 13541 KlSergey 26

1С + PostgreSQL + SSD: Куда уходит ресурс хост-записей?

Работа PostgreSQL на SSD начиная с 10 версии, резко увеличивает нагрузку на ресурс SSD, даже когда к базе нет коннектов.

06.09.2019 9434 2tvad 7

Уверенное обновление

Уверенное обновление. Анализ файла ОтчетОСравнении.txt. Bash

18.07.2019 13296 vasilev2015 36

Чем PostgreSQL может быть полезен разработчику 1С Промо

В статье будут рассмотрены примеры, которые могут оказаться полезными в повседневной работе разработчика 1С и не только: как можно сделать снимок рабочей базы без файла резервной копии, как можно эффективно использовать табличные пространства СУБД PostgreSQL, а также как организовать простой и удобный доступ к админке СУБД посредством мобильных устройств.

20.12.2018 25204 Shmell 40

Почему Вы не обслуживаете итоги?

Небольшая заметка по обслуживанию итогов. Все ли Вы делаете правильно?

04.07.2019 26922 YPermitin 36

Вопросы и ответы по лицензированию приложений Microsoft Office

Завершение цикла статей о лицензировании продуктов Microsoft.

23.06.2019 27719 accounting_cons 7

Обновление PostgreSQL на Windows

Указана последовательность действий при обновлении PostgreSQL на примере Windows. Также описаны некоторые особенности.

11.06.2019 21958 extalionos 11

Зачем в 1С нужно периодически пересчитывать итоги по регистрам? Промо

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

10.03.2013 251340 Aleksey.Bochkov 142

Вопросы и ответы по лицензированию Microsoft Windows

То, что интересует покупателей настольной операционной системы Microsoft.

20.05.2019 40069 accounting_cons 8

Регулярная перезагрузка Сервера 1С с чисткой кэша

Батник для перезагрузки агента сервера 1С и чистки серверного кэша и сеансовых данных. Для регулярной перезагрузки вставляем в планировщик заданий Windows.

17.05.2019 16502 alfir70 20

Опыт обновления до 8.3.14 - лицензии и утилита ring

На выходных было скучно, поэтому решили обновить 1с до 8.3.14.1694. С лицензиями пришлось немного повозиться.

29.04.2019 46385 Sander80 31

Создание пользователя СУБД MS SQL Промо

Создание пользователя MS SQL для развертывания базы 1С.

15.02.2017 48194 hayroff 9

Практика перехода на Linux и Postgres в небольшой компании (10 пользователей)

Почему я решил поставить давнему клиенту Linux + Postgres вместо Windows + MS SQL? Что меня останавливало раньше?

22.04.2019 34394 starik-2005 183

PID процесса в сборщиках PerfMon

06.04.2019 7428 VKislitsin 26

Переход на 64-х разрядный сервер 1С

Переход с 32-х разрядной версии сервера 1С на 64-х разрядную с сохранением данных журналов регистрации информационных баз, используемых в 32-х разрядной версии.

05.04.2019 30149 ids79 20

Все, что надо знать о технологической платформе 1С:Предприятие: компоненты, архитектуры, операционные системы, лицензии Промо

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

19.12.2015 82250 barelpro 51

Введение в лицензирование ПО Microsoft

Поговорим о принципах лицензирования программных продуктов Microsoft.

19.03.2019 44156 accounting_cons 49

Собираю Новый бюджетный Сервер для 1С ЗУП на 50 пользователей за 160 тысяч рублей (новый)

06.03.2019 7823 Indgo 97

Вопросы и ответы по лицензированию Microsoft SQL Server

Продолжение темы лицензирования серверных продуктов Microsoft.

26.02.2019 40353 accounting_cons 55

Кто заблокировал объект ? 7.7 (SQL/DBF) Промо

Обработка блокировки объекта в базе для SQL/DBF варианта.

13.08.2010 41492 Ёпрст 125

Скорость работы 1С: Предприятие с разными СУБД: MS SQL и с PostgreSQL

Рассмотрим несколько вариантов работы 1С: Предприятие с различными СУБД.

20.02.2019 31927 valentinko 174

Восстановление файловой базы с помощью tools 1cd

Небольшая заметка, как удалось вылечить битую файловую базу 1С, с помощью утилиты tools 1cd.

19.02.2019 20163 rzabolotin 68

Вопросы и ответы по лицензированию Microsoft Windows Server

Все, что вы хотели знать о лицензировании Microsoft Windows Server.

13.02.2019 41565 accounting_cons 52

LiteManager — удаленное администрирование. Описание, практика применения, рекомендации. Промо

Удаленное администрирование компьютерами. Локальная сеть. Интернет. Описание, практика применения, рекомендации.

30.04.2013 84393 StepByStep 55

А еще был такой случай

Сервер, Сеть и два Сеанса.

04.02.2019 6177 kraynev-navi 12

Debian 9.7 + PostgreSQL для 1С. Как завести с пол-оборота

Предлагаю взять на заметку информацию по установке и настройке в формате typical, typical, done.

02.02.2019 30522 valentinko 15

Собираем бюджетный игровой компьютер core i7 для Программиста 1С из всякого хлама за 20 тысяч рублей

В продолжение статьи со сборкой бюджетного сервера так же решил написать про свой комп. С бюджетом 20 тыс. рублей.

29.01.2019 11914 Indgo 128

Сжатие баз данных 1С:Предприятие в MS SQL Server Промо

29.01.2012 96790 Aleksey.Bochkov 62

Собираем бюджетный б/у сервер 1С:Предприятия 8.3 на 250+ Пользователей за 100 тыс. рублей

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

Термины Редактор: Дмитрий Сокол 11732 10 мин Аудио

Транспортный протокол TCP/IP - это сетевая модель для передачи данных (набор правил обмена информацией) от одного источника к другому, является основой Интернета. Термин “порт”, который часто встречается в описаниях интернет-сервисов, связан с особенностями работы этого протокола.

Сервисы и порты

Каждая приходящая на сервер порция данных предназначена для обработки определенным сервисом.

Для того, чтобы сетевая подсистема сервера различала данные, адресованные определенным сервисам, и правильно распределяла их, в протокол TCP/IP было введено понятие номера порта.

Пакеты данных и их заголовки

Протокол TCP/IP передает данные отдельными порциями - “пакетами данных”.

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

Технически номер порта - это просто цифры в определенном месте заголовка пакета данных, приходящего на сервер.

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

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

Специалисты используют выражение “программа слушает конкретный порт на сервере”. Например, входящие пакеты данных с номером порта 80 передаются на обработку web-серверу, с номером порта 25 - почтовому серверу, номер 22 адресуется серверу SSH и так далее.


Распределение пакета данных IP по сервисам в соответствии с номером порта

TCP- и UDP-порты

Порты используются протоколами TCP или UDP.

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

Протокол UDP предназначен для быстрой передачи порции данных без гарантии доставки и без предварительной установки соединения.

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

Диапазоны портов

Номер порта может находиться в диапазоне от 0 до 65535. Как и другие используемые в сети Интернет ресурсы, номера портов стандартизированы. Все порты в диапазоне 1-1023 называются “системными портами” и распределены, согласно списку, от координационного центра Internet организации IANA.

Порты в диапазоне 1024-49151 называются “пользовательскими”, и они предназначены для настройки дополнительных сервисов по выбору пользователя.

Оставшиеся порты из диапазона 49152-65535 называются “динамическими” и предназначены для использования операционной системой для установки соединений в рамках протокола TCP/IP.

Список портов и протоколов

Технически администратор сервера может гибко настраивать используемые порты для каждого из запускаемых на сервере сетевых сервисов. Например, при желании он может изменить номер порта, на котором работает web-сервер, с 80 на 8080. Но при этом, если пользователи не знают, что номер порта изменен, то они не смогут присоединиться к web-серверу. Поэтому для публичных сетевых сервисов принято применять стандартные номера портов.

Таблица наиболее важных и распространенных номеров портов выглядит так:

Номер порта Протокол Название сервиса
20 TCP FTP - данные
21 TCP FTP - контрольное соединение
22 TCP SSH-сервер
23 TCP Telnet-сервер
25 TCP SMTP - отправка почты
53 TCP, UPD DNS - сервер доменных имен
69 UPD TFTP-сервер
80 TCP HTTP - web-сервер
110 TCP POP3 - прием почты
145 TCP IMAP - прием почты
161 UPD SNMP - протокол управления сетевыми устройствами
443 TCP HTTPS - защищенный шифрованием протокол HTTP
587 TCP Защищенный шифрованием протокол SMTP
993 TCP Защищенный шифрованием протокол IMAP
995 TCP Защищенный шифрованием протокол POP3
1500 TCP Панель ISPManager
2083 TCP Панель cPanel
3306 TCP Сервер базы данных MySQL
8083 TCP Панель Vesta

Порты и URL

Как просмотреть список используемых портов на сервере

Для пользователей виртуальных и выделенных серверов может понадобиться просмотреть список применяемых на сервере портов TCP и UDP. Для этой задачи в операционной системе Linux имеется утилита Netstat.

Утилита Netstat работает из командной строки. Чтобы просмотреть список используемых для входящих соединений портов, прослушиваемых запущенными на сервере сетевыми сервисами, примените следующую команду:

Netstat выводит информацию в несколько колонок. Номер порта, на который принимаются соединения, можно увидеть в колонке “Local address”. Также в колонке “PID/Program name” можно увидеть, какая программа на сервере слушает конкретный порт.


Порты и безопасность сервера

Порты TCP и UDP используются для соединения с сервером, а значит, могут подвергаться атакам. Например, протокол SSH работает по умолчанию на порте 22, и злоумышленники часто ведут атаку на этот порт, пытаясь подобрать пароль от сервера.

Для повышения уровня безопасности вы можете изменить номер порта для SSH. Например, замените порт 22 на 2222.

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

1. Отредактируйте на сервере файл /etc/ssh/sshd_config.


2. Найдите в файле строку “Port 22” и измените ее на “Port 2222”.


3. Перезагрузите программу-сервис sshd командой:


Теперь сервер будет принимать SSH-соединения по нестандартному порту 2222, который не известен злоумышленникам.

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

Выводы

1. TCP и UPD- протоколы транспортного уровня:

  • обеспечивают доставку данных от одного адресата другому;
  • сохраняют правильную последовательность передачи данных.

2. Для просмотра списка используемых на сервере портов TCP и UDP используйте утилиту Netstst в операционной системе Linux.

Дмитрий Сокол

Редактор материала • Дмитрий Сокол Хостинг-эксперт (опыт работы 12 лет) Основная специализация - составление обзоров хостинг-провайдеров, написание статей и составление рейтингов. Верит, что невозможное - возможно и убеждает всех: "круто делай - круто получится!".

Состояние соединения TCP и изучение соответствующих команд

Что такое протокол TCP

  • Транспортный уровень (уровень 4) в модели OSI является сквозным транспортным протоколом.
  • Ориентированный на соединение и надежный протокол
  • Надежная передача через контрольную сумму, серийный номер, ответ подтверждения, контроль повторной передачи, контроль окна и другие механизмы
  • Он состоит из трех этапов: установление соединения, передача данных и освобождение соединения
  • Используйте три рукопожатия, чтобы установить соединение, и четыре волны, чтобы закрыть соединение


Не путайте клиент / сервер на рисунке с клиентским сервером в проекте: сторона, которая инициирует соединение или активно закрывает соединение, является клиентом, а пассивная - сервером. Служба может выступать как клиентом, так и сервером.

TCP трехстороннее рукопожатие

Трехстороннее рукопожатие, чтобы клиент и сервер могли подтвердить, могут ли они получать и отправлять данные друг другу:

  • Первое рукопожатие: клиент сначала отправляет пакет SYN (j) в качестве запроса на установление соединения, подтверждая, является ли его способность отправки нормальной
  • Второе рукопожатие: Сервер отвечает ответом подтверждения пакета ACK (j + 1) на пакет SYN Клиента и отправляет пакет SYN (k) Клиенту, чтобы указать, что ему нужно установить соединение, подтверждая свою собственную передачу, подтверждая, что у него есть возможности приема. способность
  • Третье рукопожатие: после приема пакета SYN + ACK Клиент отправляет ответ подтверждения пакета ACK (k + 1), указывающий, что его возможности приема являются нормальными. В это время три установления связи завершены, чтобы установить надежное соединение

Четыре волны TCP

Четыре волны в основном позволяют клиенту и серверу нормально закрывать соединение, гарантируя, что данные не будут потеряны перед закрытием соединения:

  • Первая волна раздач: клиент отправляет пакет FIN для запроса на отключение
  • Вторая волна: Когда Сервер получает пакет FIN, он немедленно отвечает ACK для подтверждения ответа, указывая, что я получил ваш запрос на закрытие соединения. В настоящее время Сервер имеет возможность получать данные
  • Третья волна: через некоторое время, когда сервер подтверждает, что данные на клиенте приняты, он отправляет пакет FIN, чтобы закрыть соединение и больше не получать данные
  • Четвертая волна: когда Клиент получает FIN, он немедленно отвечает ACK для подтверждения, а затем ожидает 2MSL, чтобы закрыть соединение

Состояние TCP-соединения

Во время трехстороннего рукопожатия, передачи данных и четырехсторонней волны TCP мы определили множество состояний для клиента и сервера, чтобы описать весь процесс, и объединились с приведенной выше диаграммой перехода состояний, чтобы понять эти определения состояний:

  • LISTEN (сервер): прослушивание запросов на подключение от удаленного порта TCP.После запуска сервера он находится в состоянии LISTEN для отслеживания запросов TCP от разных клиентов и установления соединения.
  • SYN-SENT (клиент): во время трехстороннего рукопожатия клиент находится в состоянии ожидания установления соединения после отправки SYN для запроса
  • SYN_RCVD (сервер): во время трехстороннего установления связи, когда сервер получает сигнал SYN от клиента, он отправляет флаги ACK и SYN клиенту для установления соединения, и сервер находится в состоянии SYN_RCVD
  • УСТАНОВЛЕН (сервер и клиент): после успешного трехстороннего рукопожатия клиент и сервер находятся в состоянии передачи данных
  • FIN-WAIT-1 (клиент): при четырехкратном махании клиент отправляет запрос FIN прерывания FIN для получения подтверждения прерывания от сервера
  • CLOSE_WAIT (Сервер): при четырехкратном колебании Клиент получает от клиента ответ на запрос FIN и отвечает ACK, чтобы подтвердить состояние отправки пакета FIN
  • FIN-WAIT-2 (Клиент): Когда четыре раза размахивают, когда Клиент получает ACK ответа Сервера на FIN, а затем получает пакет FIN от Сервера.
  • LAST_ACK (сервер): при четырехкратном колебании сервер отправляет запрос FIN для закрытия соединения до состояния перед закрытием соединения
  • TIME_WAIT (клиент): когда клиент машет четыре раза, клиент отвечает ACK на FIN сервера в состояние до закрытия соединения, также известное как состояние 2MSL
  • ЗАКРЫТЬ (сервер и клиент): состояние после закрытия соединения между сервером и клиентом

При нормальных обстоятельствах процесс перехода состояния клиента выглядит следующим образом:

В нормальных условиях процесс перехода состояния сервера выглядит следующим образом:

Некоторые проблемы в TCP трехстороннем рукопожатии и четырехстороннем переходе состояния волны

  • Что такое MSL?
  • Что такое TTL?
  • Что такое RTT?
  • Что такое MTU?
  • Что такое MSS?
  • Почему для установления соглашения о соединении используется трехстороннее рукопожатие, а для закрытия - четыре волны?
  • При четырехкратном махании, почему Клиент не закрывает соединение сразу после завершения ACK для Сервера, и должно быть состояние TIME_WAIT (2MSL)?
  • Как улучшить, если на сервере много TIME_WAIT?
  • Как улучшить, если на сервере много CLOSE_WAIT?

SYN FLOOD атака

О сокете

  • Одно TCP-соединение соответствует одному сокету
  • Уникальный идентификатор сокета:
  • Служба TCP в состоянии прослушивания может взаимодействовать с сокетами от нескольких клиентов одновременно
  • Разные процессы могут прослушивать один и тот же порт, если их протоколы (TCP / UDP) разные
  • Один процесс может открывать и закрывать несколько сокетов
  • Дочерний процесс может наследовать все файловые дескрипторы (FD) от родительского процесса, поэтому, если между различными процессами или потоками существуют отношения родитель-потомок, вы можете использовать один и тот же сокет
  • Службе TCP в состоянии прослушивания нужен только один порт прослушивания, но можно установить несколько сокетов
  • Число соединений с сокетами, которые могут быть созданы портом на сервере, теоретически не имеет верхнего предела, это зависит от объема памяти системы и верхнего предела файловых дескрипторов, которые могут быть созданы. Его можно установить, изменив верхний предел файловых дескрипторов.

Связанные команды в соединении TCP

команда netstat

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

  • Введение параметра
  • Список всех соединений TCP:
  • Только список подключений, которые слушают:
  • Просмотр имени процесса и имени пользователя в мониторинге
  • Посмотреть сетевой интерфейс:

Тот же эффект, что и для ifconfig и ip a

  • Статистика TCP каждого состояния подключения информации:
команда ping

Команда ping используется для проверки доступности сети к хосту назначения. Она может получить имя домена или IP-адрес и не может проверить порт. Она работает на третьем уровне эталонной модели OSI - сетевом уровне.

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

команда traceroute

Принцип raceroute заключается в использовании механизма уведомления ICMP с истекшим сроком действия ttl. Каждый раз при непрерывном увеличении ttl для непрерывного обнаружения маршрута следующего прыжка traceroute отправляет дейтаграмму с номером порта> 30000, поэтому, когда он достигает хоста назначения, он получает порт недоступным. ICMP ответил, что хост-источник знает, что хост может быть подключен.

  • Команда raceroute позволяет отслеживать маршрутизацию сетевых пакетов и время, потребляемое каждым шлюзом. Размер пакета по умолчанию составляет 40 байт.
  • Выходные данные raceroute увидят, что есть несколько строк, обозначенных звездочками, возможно потому, что брандмауэр заблокировал возвращаемую информацию ICMP, поэтому мы не можем получить какие-либо связанные пакеты данных для возврата данных
  • Каждый раз, когда пакет данных поступает в один и тот же пункт назначения из определенного источника, путь, по которому он идет, может отличаться, но в основном маршрут, по которому проходит большую часть времени, является одним и тем же.
  • По умолчанию каждый прыжок будет отправлять 3 пакета, но это может быть не тот же IP-адрес, поскольку между двумя шлюзами может быть стратегия балансировки нагрузки, поэтому в некоторых записях может быть 2 или 3 IP-адреса.
  • Список маршрутов, которые могут быть записаны заголовком ip, очень ограничен, поэтому traceroute увеличивает скорость отправки ttl, поэтому traceroute возвращается медленнее, чем дальше назад traceroute
  • Описание основных параметров:
команда lsof

lsof (список открытых файлов) - это инструмент для просмотра текущих системных файлов. В среде Linux все существует в форме файла. Через этот файл вы можете не только получать доступ к обычным данным, но также получать доступ к сетевым подключениям и оборудованию. Например, сокеты протокола управления передачей (TCP) и протокола пользовательских дейтаграмм (UDP) и т. Д., Система выделит дескриптор файла для приложения в фоновом режиме, дескриптор файла предоставляет много информации о самом приложении. ,

Читайте также: