- 4 способа узнать, какие порты слушают в Linux
- Содержание:
- 1. Использование команды Netstat
- 2. Использование команды ss
- 3. Использование команды Nmap
- 4. Использование команды lsof
- Как узнать, какой номер порта используется процессом в Linux?
- Метод-1: Использование команды ss
- Способ-2: Использование команды netstat
- Метод-3: использование команды lsof
- Метод-4: Использование команды fuser
- Метод-5: Использование команды nmap
- Метод-6: Использование команды systemctl
- Кто слушает порт в Linux
- Как посмотреть открытые порты в Linux
- Как посмотреть открытые порты linux
- 1. netstat
- 3. lsof
- 4. Nmap
- 5. Zenmap
- Выводы
4 способа узнать, какие порты слушают в Linux
Состояние порта либо открыто, фильтрованный, закрыто, или нефильтрованный. Порт считается открытым, если приложение на целевой машине прослушивает соединения / пакеты на этом порту.В этой статье мы об
Содержание:
Состояние порта либо открыто, фильтрованный, закрыто, или нефильтрованный. Порт считается открытым, если приложение на целевой машине прослушивает соединения / пакеты на этом порту.
В этой статье мы объясним четыре способа проверки открытых портов, а также покажем вам, как определить, какое приложение прослушивает какой порт в Linux.
1. Использование команды Netstat
Netstat — это широко используемый инструмент для запроса информации о сетевой подсистеме Linux. Вы можете использовать его для печати всех открытых портов следующим образом:
$ sudo netstat -ltup
Флаг -l сообщает netstat о необходимости распечатать все прослушивающие сокеты, -t показывает все TCP-соединения, -u отображает все UDP-соединения, а -p включает печать имени приложения / программы, прослушивающего порт.
Чтобы печатать числовые значения, а не имена служб, добавьте флаг -n.
$ sudo netstat -lntup
Вы также можете использовать команду grep, например, чтобы узнать, какое приложение прослушивает определенный порт.
$ sudo netstat -lntup | grep «nginx»
Кроме того, вы можете указать порт и найти привязанное к нему приложение, как показано.
$ sudo netstat -lntup | grep «: 80»
2. Использование команды ss
Команда ss — еще один полезный инструмент для отображения информации о сокетах. Результат похож на результат netstat. Следующая команда покажет все порты прослушивания для TCP а также UDP соединения в числовом значении.
3. Использование команды Nmap
Nmap — это мощный и популярный инструмент для исследования сети и сканер портов. Чтобы установить nmap в вашей системе, используйте менеджер пакетов по умолчанию, как показано.
$ sudo apt install nmap [в Debian / Ubuntu] $ sudo yum install nmap [в CentOS / RHEL] $ sudo dnf install nmap [в Fedora 22+]
Чтобы просканировать все открытые / прослушивающие порты в вашей системе Linux, выполните следующую команду (выполнение которой займет много времени).
$ sudo nmap -n -PN -sT -sU -p- локальный хост
4. Использование команды lsof
Последний инструмент, который мы рассмотрим для запроса открытых портов, — это команда lsof, которая используется для вывода списка открытых файлов в Linux. Поскольку в Unix / Linux все является файлом, открытый файл может быть потоком или сетевым файлом.
Чтобы перечислить все файлы Интернета и сети, используйте параметр -i. Обратите внимание, что эта команда показывает сочетание имен служб и числовых портов.
Чтобы узнать, какое приложение прослушивает определенный порт, запустите lsof в таком виде.
Вот и все! В этой статье мы объяснили четыре способа проверки открытых портов в Linux. Мы также показали, как проверить, какие процессы привязаны к определенным портам. Вы можете поделиться своими мыслями или задать любые вопросы через форму обратной связи ниже.
Источник
Как узнать, какой номер порта используется процессом в Linux?
Как администратор Linux, вы должны знать, является ли соответствующая служба обязательной / прослушивающей с правильным портом или нет.
Это поможет вам легко устранить проблему, когда вы столкнулись с проблемами, связанными с портами.
Порт – это логическое соединение, которое идентифицирует конкретный процесс в Linux.
Доступны два вида порта: физическое и программное обеспечение.
Поскольку операционная система Linux является программным обеспечением, мы собираемся обсудить порт программного обеспечения.
Программный порт всегда связан с IP-адресом хоста и соответствующим типом протокола для связи. Порт используется для распознования приложения.
Большинство служб, связанных с сетью, должны открыть сокет для прослушивания входящих сетевых запросов.
Socket уникален для каждого сервиса.
Сокет – это комбинация IP-адреса, программного порта и протокола.
Область номеров портов доступна для протокола TCP и UDP.
Протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP) используют номера портов для связи.
Это значение от 0 до 65535.
Ниже приведены категории присвоений портов.
- 0-1023: Хорошо известные порты или системные порты
- 1024-49151: Зарегистрированные порты для приложений
- 49152-65535: Динамические порты или частные порты
Вы можете проверить детали зарезервированных портов в файле /etc/services в Linux.
Это может быть достигнуто с использованием шести методов.
- ss: ss используется для вывода статистики сокетов.
- netstat: netstat отображает список открытых сокетов.
- lsof: lsof – список открытых файлов.
- fuser: идентификаторы процессов в списке терминов всех процессов, которые открывают один или несколько файлов
- nmap: nmap – Инструмент сетевого исследования и сканер безопасности / портов
- systemctl: systemctl – Управление системой systemd и менеджером сервисов
Метод-1: Использование команды ss
ss используется для вывода статистики сокетов.
Он позволяет отображать информацию, аналогичную netstat.
Он может отображать больше информации о TCP и его состоянии, чем другие инструменты.
Он может отображать статистику для всех типов сокетов, таких как PACKET, TCP, UDP, DCCP, RAW, домен Unix и т. д.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Способ-2: Использование команды netstat
netstat – вывод сетевых подключений, таблиц маршрутизации, статистики интерфейсов, соединений маскарада и многоадресной рассылки.
По умолчанию netstat отображает список открытых сокетов.
Если вы не укажете каких-либо семейств адресов, будут выведены активные сокеты всех сконфигурированных семейств адресов.
Эта программа устарела. Замена для netstat – ss.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Метод-3: использование команды lsof
lsof – список открытых файлов.
Команда lsof Linux выводит информацию о файлах, открытых для процессов, запущенных в системе.
В качестве альтернативы вы также можете проверить это с помощью номера порта.
Метод-4: Использование команды fuser
Утилита fuser должна записывать на стандартный вывод идентификаторы процессов, запущенных в локальной системе, которые открывают один или несколько именованных файлов.
Метод-5: Использование команды nmap
Nmap («Network Mapper») – это инструмент с открытым исходным кодом для проверки сети и проверки безопасности.
Он был разработан для быстрого сканирования больших сетей, хотя он отлично работает с одиночными хостами.
Nmap использует необработанные IP-пакеты в новых способах определения того, какие хосты доступны в сети, какие службы (имя и версия приложения) эти хосты предлагают, какие операционные системы (и версии ОС) они запускают, какие типы фильтров пакетов / брандмауэры используются, и десятки других характеристик
Метод-6: Использование команды systemctl
systemctl – Управление системой systemd и менеджером сервисов.
Это замена старого системного управления SysV, и большинство современных операционных систем Linux были адаптированы под systemd.
Вышеприведенный пример будет показывать фактический порт прослушивания службы SSH при запуске службы SSHD в последнее время.
В большинстве случаев вышеприведенный вывод не показывает фактический номер порта процесса. в этом случае я предлагаю вам проверить детали, используя приведенную ниже команду из файла журнала
Источник
Кто слушает порт в Linux
Открытый доступ к порту хоть и является угрозой безопасности системы, но по сути ничего плохого не представляет до тех пор, пока его не начинает использовать программа. А чтобы выяснить какая программа слушает какой порт можно использовать утилиты «netstat» (или «ss») и «lsof».
Чтобы узнать информацию о программе, которая прослушивает определённый порт, можно воспользоваться командой «lsof» со следующими ключами: Здесь «номер_порта» — это цифра.
Пример результата выполнения команды с 53 портом: Но рекомендуем чаще запускать команду для получения списка программ, которые используют какие-либо tcp/udp порты. В этом помогает «netstat» или «ss»: Опишем все ключи, которые используются в команде
- -l показать только прослушиваемые «LISTEN» порты.
- -n показывать адреса как ip, а не пытаться определять домены.
- -t показывать TCP порты.
- -u показывать UDP порты.
- -p показать название программы, которая слушает порт.
Если запустить эту команду на веб сервере, то команда распечатает в терминале такую информацию (некоторые столбцы скрыты): По результату можно заметить какая программа прослушивает какой порт. Если ip в секции «Local Address» равен «127.0.0.1», то это локальное обращение. Такой порт можно не закрывать фаерволом — он и так не будет доступен извне. Но ip с нулями «0.0.0.0» говорят о том, что программа слушает все адреса. То есть она примет любой запрос, в том числе внешний.
Источник
Как посмотреть открытые порты в Linux
Сетевые порты — это механизм, с помощью которого операционная система определяет какой именно программе необходимо передать сетевой пакет. Здесь можно привести пример с домом. Например, почтальону необходимо доставить посылку. Он доставляет посылку к дому, это IP адрес компьютера. А дальше в самом доме уже должны разобраться в какую квартиру направить эту посылку. Номер квартиры — это уже порт.
Если порт открыт это означает, что какая либо программа, обычно сервис, использует его для связи с другой программой через интернет или в локальной системе. Чтобы посмотреть какие порты открыты в вашей системе Linux можно использовать множество различных утилит. В этой статье мы рассмотрим самые популярные способы посмотреть открытые порты Linux.
Как посмотреть открытые порты linux
1. netstat
Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:
- -l или —listening — посмотреть только прослушиваемые порты;
- -p или —program — показать имя программы и ее PID;
- -t или —tcp — показать tcp порты;
- -u или —udp показать udp порты;
- -n или —numeric показывать ip адреса в числовом виде.
Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:
sudo netstat -tulpn
Утилита ss — это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения. Опции у неё такие же:
Можно вывести только процессы, работающие на 80-том порту:
sudo ss -tulpn | grep :80
3. lsof
Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию -i, а чтобы отображались именно порты, а не названия сетевых служб следует использовать опцию -P:
Ещё один пример, смотрим какие процессы работают с портом 80:
sudo lsof -i -P | grep :80
4. Nmap
Программа Nmap — мощный сетевой сканер, разработанный для сканирования и тестирования на проникновение удаленных узлов, но ничего не мешает направить его на локальный компьютер. Утилита позволяет не только посмотреть открытые порты, но и примерно определить какие сервисы их слушают и какие уязвимости у них есть. Программу надо установить:
sudo apt install nmap
Затем можно использовать:
Для простого сканирования можно запускать утилиту без опций. Детальнее о её опциях можно узнать в статье про сканирование сети в Nmap. Эта утилита ещё будет полезна если вы хотите посмотреть какие порты на компьютере доступны из интернета.
Если это публичный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант — используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT-сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:
wget -O — -q eth0.me
Дальше запускаем сканирование:
В результате мы видим, что открыт порт 80 веб-сервера и 22 — порт службы ssh, я их не открывал, эти порты открыты роутером, 80 — для веб-интерфейса, а 22 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS. Такая проверка портов может оказаться полезной для того, чтобы понять находится ли ваш компьютер в безопасности и нет ли там лишних открытых портов, доступных всем.
5. Zenmap
Программа Zenmap — это графический интерфейс для nmap. Она не делает ничего нового кроме того, что может делать nmap, просто предоставляет ко всему этому удобный интерфейс. Для её установки выполните:
sudo apt install zenmap
Запустить программу можно из главного меню или командой:
Затем введите адрес localhost в поле Цель и нажмите кнопку Сканирование:
После завершения сканирования утилита вывела список открытых портов Linux.
Выводы
В этой статье мы рассмотрели инструменты, которые вы можете использовать для того чтобы узнать узнать открытые порты linux. Инструментов не так много как для просмотра информации об оперативной памяти или процессоре, но их вполне хватает. А какими программами пользуетесь вы? Напишите в комментариях!
Источник