В рамках нашей сегодняшней статьи Вы узнаете 4 способа найти открытые порты в Linux. Открытый порт сам по себе не представляет опасности. Однако вполне может стать угрозой безопасности операционной системы, как только его начнет использовать программа. Для определения того, какая именно программа слушает конкретный порт в данный момент, существуют специальные утилиты — netstat, ss, Nmap, lsof.
Прежде всего, данный материал расскажет о четырех инструментах для выявления открытых портов. И расскажет о том, как обнаружить программное обеспечение, прослушивающее конкретные порты в операционной системе Linux.
Содержание:
- Что такое порт
- Как узнать, какие порты прослушиваются / открыты в Linux
- Выводы
Что такое порт
Порт — это логический объект, который является конечной точкой связи в сетевых соединениях. Он непосредственно связан с процессом или службой в операционной системе целевого устройства. При этом, любой порт способен находиться в одном из четырех возможных состояний:
- открытом;
- закрытом;
- отфильтрованном (filtered);
- нефильтрованном (unfiltered).
В том случае, если порт открыт — программное обеспечение целевого оборудования занимается тем, что прослушивает его соединения и пакеты.
Как узнать, какие порты прослушиваются / открыты в Linux
Специально для Вас мы подобрали топ-4 решений, позволяющих быстро выявлять открытые порты в Linux. А также — находить любое связанное с ними программное обеспечение.
Учимся использовать netstat
Утилита netstat (от англ. Network Statistics) — это популярный инструмент, приспособленный для анализа данных о сети в Linux и других UNIX-подобных операционных системах. Сегодня любой сетевой и системный администратор должен уметь работать с этой утилитой. В том числе — выводить на экран список открытых портов.
Устанавливаем netstat
Чтобы установить netstat — воспользуйтесь командой, соответствующей Вашему дистрибутиву Linux.
Устанавливаем netstat в Debian / Ubuntu
Для установки netstat в дистрибутивах на основе Debian / Ubuntu введите с правами суперпользователя в командную строку команды apt update
и apt install
:
После введения команды — дождитесь завершения обновления списка доступных к скачиванию пакетов программного обеспечения, а также скачивания и установки файлов программы.
Устанавливаем netstat в CentOS / RHEL
В дистрибутивах Linux на основе CentOS / RHEL для установки Netstat введите с правами суперпользователя команду yum install
:
После введения команды — дождитесь скачивания и установки пакетов программного обеспечения.
Устанавливаем netstat в OpenSuse
В дистрибутивах на основе OpenSuse введите в командную строку команду zypper install
с root-правами:
После введения команды — дождитесь скачивания и установки пакетов программного обеспечения.
Устанавливаем netstat в Arch Linux
При использовании дистрибутива Arch Linux введите в командную строку команду pacman
с правами root и опцией -S
:
Выводим список открытых портов в Linux с помощью Netstat
Давайте попробуем вывести в командную строку список открытых портов с помощью утилиты netstat. Для этого вводим в командную строку команду netstat
с правами суперпользователя и опциями -ltupan
:
Давайте проанализируем значение выбранной комбинации опций:
-l
— выводит на экран все прослушивающиеся сокеты (сочетания IP-адреса и номера порта);-t
— указывает, что нужно показать все TCP-соединения сетевой подсистемы;-u
— указывает, что нужно показать UDP-соединения сетевой подсистемы;-a
— показывает только активные соединения;-n
— вместо названий служб показывает номера портов.
Расширяем возможности netstat с помощью команды grep
Пользователь может расширить возможности утилиты netstat за счет использования фильтрации вывода — с помощью команды grep
. Например, таким образом можно выяснить, какое именно ПО занимается прослушиванием конкретного порта. Для этого введите в командную строку команду netstat
с опцией -tulpan
, поставьте символ конвейера (вертикальную черту — |
) и добавьте команду grep
с аргументом "ssh"
:
Также Вы можете найти все приложения, прослушивающие определенный порт. Для этого введите комбинацию команд как в прошлом примере, однако в качестве аргумента для команды grep
— используйте двоеточие и номер интересующего Вас порта (к примеру, ":80"
)
Читайте также: 20 команд netstat для управления сетью Linux и Windows.
Учимся использовать команду ss
Команда ss (от англ. Socket Statistics) — это еще один инструмент для Linux, позволяющий получить подробную информацию о сокетах в операционной системе. Стоит отметить, что эта утилита во многом очень похожа на netstat по своим возможностям.
Выводим список открытых портов в Linux с помощью ss
Предположим, что Вам нужно определить, какие приложения занимаются прослушиванием соединений TCP или UDP. В таком случае введите в командную строку команду ss
с правами суперпользователя и опциями -lntu
:
Давайте проанализируем значение выбранной комбинации опций:
-l
— выводит на экран все прослушивающиеся сокеты;-n
— вместо названий служб показывает номера портов;-t
— указывает, что нужно показать все TCP-соединения сетевой подсистемы;-u
— указывает, что нужно показать все UDP-соединения сетевой подсистемы.
В данном случае значения опций аналогичны тем, которые использовались выше с утилитой netstat
.
Узнаем с помощью ss значения pid процессов, которые прослушивают порты
Утилита ss
позволяет пользователю вывести на экран список значений pid процессов, которые открыли порты. Для этого введите от имени суперпользователя в командную строку команду ss с опциями, показанными в предыдущем примере. И добавьте к ним опцию -p
:
Читайте также:
- 12 примеров команд ss для мониторинга сетевых подключений.
- Введение в команду ss.
- Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux.
Учимся использовать nmap
Утилита nmap — это популярный инструмент для исследования сетевой подсистемы и проверки состояния портов в UNIX-подобных ОС. Стоит отметить, что данная утилита обладает большими возможностями. И потому часто используется специалистами в сфере сетевого и системного администрирования.
Устанавливаем nmap
Для установки nmap воспользуйтесь командами, соответствующими установленному на Ваш компьютер дистрибутиву Linux.
Устанавливаем nmap в Debian / Ubuntu
При использовании дистрибутивов на основе Debian / Ubuntu — введите в командную строку с правами root команды apt update
и apt install
:
После этого следует дождаться окончания процессов скачивания и установки пакетов программного обеспечения.
Устанавливаем nmap в CentOS / RHEL
Чтобы установить nmap при использовании дистрибутивов на основе CentOS / RHEL — введите в командную строку команду yum
с правами суперпользователя:
После введения команды следует дождаться завершения скачивания и установки.
Устанавливаем nmap в Fedora
При использовании дистрибутива Fedora версии 22 и выше — введите с правами суперпользователя в командную строку команду dnf install
:
После этого следует дождаться окончания процессов скачивания и установки пакетов программного обеспечения.
Выводим список открытых портов в Linux с помощью nmap
Давайте попробуем вывести на экран список всех портов, которые прослушиваются в операционной системе Linux, с помощью утилиты nmap. Для этого введите с root-правами в командную строку команду nmap
и опции -sT -sU -sV
, добавив Ваш IP-адрес в качестве аргумента:
Давайте проанализируем значение выбранной комбинации опций:
-sT
— указывает, что нужно показать все TCP-соединения;-sU
— указывает, что нужно показать все UDP-соединения;-sV
— указывает, что требуется включить обнаружение версий программного обеспечения.
Дополнительные опции утилиты nmap
C помощью опции -p
Вы сможете просканировать конкретные порты.
- все порты с 1 по 65535 —
-p-
; - конкретный порт (например, 22) —
-p22
; - диапазон портов —
-p1-22
; - комбинацию списка UDP-портов и диапазона TCP-портов —
p U:53,111,137,T:21-25
.
С помощью опции -n
(запрет обратного просмотра DNS) можно сократить время сканирования, которое бывает довольно продолжительным.
Читайте также:
- 32 примера использования команды Nmap для Linux-систем.
- 29 практических примеров команды Nmap для сетевых администраторов Linux.
Учимся использовать утилиту lsof
Утилита lsof (от англ. LiSt of Open Files) — это инструмент командной строки для UNIX-подобных операционных систем, предназначенный для обнаружения файлов, использующихся теми или иными процессами.
Выводим на экран все открытые IP-сокеты
С помощью данной утилиты можно вывести на экран все открытые соединения и инициировавшие их процессы в операционной системе. Для этого введите от имени суперпользователя в командную строку команду lsof
с опцией -i
:
Выводим список процессов, прослушивающих конкретный порт с помощью lsof
Зная конкретный порт — можно легко найти программу, которая его прослушивает. Для этого введите от имени суперпользователя в командную строку команду lsof
с опцией -i
и добавьте к ней в качестве аргумента номер порта после двоеточия (например, :80
):
Важно: обратите внимание, что вывод команды по умолчанию уже содержит и значения PID, и названия соответствующих служб.
Читайте также: 10 примеров команд lsof в Linux.
Выводы
Вам удалось без труда отследить открытые порты в Linux при помощи четырех различных утилит — netstat, ss, nmap и lsof. Также эти инструменты позволяют отслеживать приложения, прослушивающие порты. Надеемся, что использование советов из этого пошагового руководства поможет Вам решать целый спектр задач в сфере сетевого и системного администрирования.
Спасибо за время, которое Вы уделили прочтению статьи!
Если у Вас возникли вопросы — задавайте их в комментариях. А также подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.