В рамках нашей сегодняшней статьи Вы узнаете способ найти открытые порты в Linux. Открытый порт сам по себе не представляет опасности. Однако вполне может стать угрозой безопасности операционной системы, как только его начнет использовать программа. Для определения того, какая именно программа слушает конкретный порт в данный момент, существуют специальные утилиты — netstat, ss, Nmap, lsof.

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

Порт — это логический объект, который является конечной точкой связи в сетевых соединениях. Он непосредственно связан с процессом или службой в операционной системе целевого устройства. При этом, любой порт способен находиться в одном из четырех возможных состояний:

  • открытом;
  • закрытом;
  • отфильтрованном (filtered);
  • нефильтрованном (unfiltered).

В том случае, если порт открыт — программное обеспечение целевого оборудования занимается тем, что прослушивает его соединения и пакеты.

Учимся использовать netstat

Утилита netstat (от англ. Network Statistics) — это популярный инструмент, приспособленный для анализа данных о сети в Linux и других UNIX-подобных операционных системах. Сегодня любой сетевой и системный администратор должен уметь работать с этой утилитой. В том числе — выводить на экран список открытых портов.

Устанавливаем netstat

Чтобы установить netstat — воспользуйтесь командой, соответствующей Вашему дистрибутиву Linux.

Устанавливаем netstat в Debian / Ubuntu

Для установки netstat в дистрибутивах на основе Debian / Ubuntu введите с правами суперпользователя в командную строку команды apt update и apt install:

apt update && apt install net-tools

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

Устанавливаем netstat в CentOS / RHEL

В дистрибутивах Linux на основе CentOS / RHEL для установки Netstat введите с правами суперпользователя команду yum install:

yum install net-tools

После введения команды — дождитесь скачивания и установки пакетов программного обеспечения.

Устанавливаем netstat в OpenSuse

В дистрибутивах на основе OpenSuse введите в командную строку команду zypper install с root-правами:

zypper install net-tools

После введения команды — дождитесь скачивания и установки пакетов программного обеспечения.

Устанавливаем netstat в Arch Linux

При использовании дистрибутива Arch Linux введите в командную строку команду pacman с правами root и опцией -S:

pacman -S netstat-nat

Выводим список открытых портов в Linux с помощью Netstat

Давайте попробуем вывести в командную строку список открытых портов с помощью утилиты netstat. Для этого вводим в командную строку команду netstat с правами суперпользователя и опциями -ltupan:

netstat -ltupan
Давайте проанализируем значение выбранной комбинации опций:
  • -l — выводит на экран все прослушивающиеся сокеты (сочетания IP-адреса и номера порта);
  • -t — указывает, что нужно показать все TCP-соединения сетевой подсистемы;
  • -u — указывает, что нужно показать UDP-соединения сетевой подсистемы;
  • -a — показывает только активные соединения;
  • -n — вместо названий служб показывает номера портов.

Расширяем возможности netstat с помощью команды grep

Пользователь может расширить возможности утилиты netstat за счет использования фильтрации вывода — с помощью команды grep. Например, таким образом можно выяснить, какое именно ПО занимается прослушиванием конкретного порта. Для этого введите в командную строку команду  netstat с опцией -tulpan, поставьте символ конвейера (вертикальную черту — |) и добавьте команду grep с аргументом "ssh":

netstat -tulpan | grep "ssh"

Также Вы можете найти все приложения, прослушивающие определенный порт. Для этого введите комбинацию команд как в прошлом примере, однако в качестве аргумента для команды grep — используйте двоеточие и номер интересующего Вас порта (к примеру, ":80")

netstat -lntup | grep ":80"

Источник: blog.sedicomm.com