- Как проверить открытые порты Linux
- Программа Netstat
- Программа SS
- Инструмент LSOF
- Утилита NMAP
- Как проверить открытые порты в Linux (используемые порты)
- How to Check for Listening Ports in Linux (Ports in use)
- В этой статье объясняется , как узнать, какие услуги прослушивает порты с помощью netstat, ss и lsof команд. Инструкции применимы для всех операционных систем на базе Linux и Unix, таких как macOS.
- Что такое открытый порт (порт прослушивания)
- Проверьте порты прослушивания с netstat
- Проверьте порты прослушивания с ss
- Проверьте порты прослушивания с lsof
- Вывод
- Команда netstat в Линукс
- Установка
- Синтаксис
- Примеры
- 3 способа, чтобы проверить открытые порты в Linux с соответствующим сервисом-процессом
- Как проверить открытые порты в Linux с соответствующим сервисом-процессом?
- 1. Проверка открытых портов в Linux с помощью команды NETSTAT
- Команда:
- Вывод:
- 2. Проверка открытых портов в Linux с помощью утилиты lsof
- Как определить открытые порты в Linux?
- Определить открытых портов в Linux через nmap
- Статистика открытых портов в Linux через netstat
- Узнать открытые порты в Linux через lsof
- Статистика открытых портов в Linux через ss
- Открытые порты в Linux через tcpdump
Как проверить открытые порты Linux
Операционная система Linux передаёт сетевые пакеты определенным программам. Выбор программы осуществляется посредством такого механизма, как сетевой порт. Опытные пользователи Линукс прекрасно знают, о чем идет речь, а вот новичкам было бы проще понять это явление на примере. Представьте себе ситуацию, когда курьеру нужно доставить посылку по определенному адресу. Дом, в котором окажется курьер – это IP-адрес ПК. Он просит вахтёра помочь разобраться, кому отнести свёрток. Номер нужной квартиры – то же самое, что и сетевой порт.
Когда порт имеет статус «открытый», подразумевается, что программа уже использует этот порт для связи с какой-либо иной программой. Это может происходить локально или через Internet. Теперь осталось разобраться с тем, как получить данные об открытых портах в ОС Линукс.
Для этих целей можно воспользоваться огромным множеством инструментов. В данном материале будут предложены самые распространенные и простые способы поиска нужной информации.
Программа Netstat
Посредством данной утилиты можно посмотреть не только открытые сетевые порты, но и сетевые соединения. Каждому пользователю могут понадобиться отличительные данные, поэтому, применяя программу, нужно знать, какие опции использовать для нахождения результата.
Главные опции Netstat:
- -l – просмотр портов, которые прослушиваются;
- -p – поиск имени программы и её PID;
- -t – поиск tsp портов в Линукс;
- -u – поиск udp портов в Линукс;
- -n – просмотр IP-адресов, указанных в числовом формате.
Более подробно о netstat написано в другой статье www.vseprolinux.ru/netstat-linux
Программа SS
Помимо команды netstat можно использовать программу ss. Эта утилита относится к числу современных программ. Некоторые пользователи отмечают повышенное удобство при работе с SS, ведь она отличается от своего «собрата» одним немаловажным нюансом – способностью связаться с ядром Линукс напрямую. В результате пользователь быстро получает необходимую информацию и видит перед собой обширные данные по запросу, чего нельзя сказать о Netstat.
При работе с SS также применяется опционал, прописанный ранее.
Если хочется получить выборочную информацию (например, совершить вывод процессов, которые работают на 8080-м порту), следует задать команду следующего вида:
# ss -tulpn | grep :8080
Инструмент LSOF
При помощи данной программы пользователь может ознакомиться с данными относительно всех открытых соединений в Линукс. Опция, которую необходимо использовать для реализации задуманного: -i.
Если информация о сетевых службах не требуется, а хочется посмотреть только данные о портах, необходимо использовать опцию -P.
На практике это выглядит следующим образом:
И вновь просматриваем процесс, который работает на 80-м порту:
# lsof -I -P| grep :80
Утилита NMAP
Программа представляет собой популярный сканер для определения и тестирования на проникновение удалённых узлов. И только на первый взгляд может показаться, что данный инструмент не подходит для воплощения нашей идеи в жизнь. Наоборот! Сканер легко направляется на локальный ПК для просмотра требуемой информации.
Установка утилиты NMAP осуществляется посредством специальной команды:
# apt install nmap
Затем нужно ввести:
Запуск программы вполне реален и без использования каких-либо опций – утилита способна работать в режиме стандартного сканирования.
Как посмотреть IP-адрес:
# wget -O — — q eth0.me
Теперь нужно поставить сканирование на отправную точку. Это делается так:
Ознакомьтесь с результатами, выведенными в окне, чтобы убедиться в том, что лишние порты закрыты, и ваш ПК находится в безопасности.
Источник
Как проверить открытые порты в Linux (используемые порты)
How to Check for Listening Ports in Linux (Ports in use)
В этой статье объясняется , как узнать, какие услуги прослушивает порты с помощью netstat, ss и lsof команд. Инструкции применимы для всех операционных систем на базе Linux и Unix, таких как macOS.
При устранении неполадок сетевого подключения или проблем, связанных с конкретным приложением, в первую очередь следует проверить, какие порты фактически используются в вашей системе, а какое приложение прослушивает определенный порт.
Что такое открытый порт (порт прослушивания)
Сетевой порт идентифицируется его номером, соответствующим IP-адресом и типом протокола связи, таким как TCP или UDP.
Порт прослушивания — это сетевой порт, который прослушивает приложение или процесс, выступая в качестве конечной точки связи.
Каждый порт прослушивания может быть открыт или закрыт (отфильтрован) с помощью брандмауэра. В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Вы не можете иметь две службы, прослушивающие один и тот же порт на одном и том же IP-адресе.
Например, если вы используете веб-сервер Apache, который прослушивает порты, 80 и 443 вы пытаетесь установить Nginx, позднее не удастся запустить, потому что порты HTTP и HTTPS уже используются.
Проверьте порты прослушивания с netstat
netstat это инструмент командной строки, который может предоставить информацию о сетевых подключениях
Чтобы получить список всех прослушиваемых портов TCP или UDP, включая службы, использующие порты и состояние сокета, используйте следующую команду:
Параметры, используемые в этой команде, имеют следующее значение:
- -t — Показать порты TCP.
- -u — Показать порты UDP.
- -n — Показать числовые адреса вместо разрешения хостов.
- -l — Показывать только порты прослушивания.
- -p — Показать PID и имя процесса слушателя. Эта информация отображается, только если вы запускаете команду от имени пользователя root или sudo .
Вывод будет выглядеть примерно так:
Важными столбцами в нашем случае являются:
- Proto — Протокол, используемый сокетом.
- Local Address — IP-адрес и номер порта, на котором слушает процесс.
- PID/Program name — PID и название процесса.
Если вы хотите отфильтровать результаты, используйте команду grep . Например, чтобы узнать, какой процесс прослушивает TCP-порт 22, вы должны набрать:
Выходные данные показывают, что на этой машине порт 22 используется сервером SSH:
Если вывод пуст, это означает, что ничего не прослушивает порт.
Вы также можете отфильтровать список на основе критериев, например, PID, протокола, состояния и т. Д.
netstat устарел и заменен на ss и ip , но все же это одна из наиболее часто используемых команд для проверки сетевых подключений.
Проверьте порты прослушивания с ss
ss новый netstat . В нем отсутствуют некоторые netstat функции, но он предоставляет больше состояний TCP и работает немного быстрее. Параметры команды в основном одинаковы, поэтому переход с netstat на ss не сложен.
Чтобы получить список всех прослушивающих портов ss , наберите:
Вывод почти такой же, как тот, о котором сообщили netstat :
Проверьте порты прослушивания с lsof
lsof это мощная утилита командной строки, которая предоставляет информацию о файлах, открытых процессами.
В Linux все это файл. Вы можете думать о сокете как о файле, который пишет в сеть.
Чтобы получить список всех прослушивающих TCP-портов, lsof введите:
Используются следующие параметры:
- -n — Не конвертируйте номера портов в имена портов.
- -p — Не разрешайте имена хостов, показывайте числовые адреса.
- -iTCP -sTCP:LISTEN — Показывать только сетевые файлы с состоянием TCP LISTEN.
Большинство имен выходных столбцов говорят сами за себя:
- COMMAND , PID , USER — имя, ИДП и пользователь , запустив программу , связанную с портом.
- NAME — номер порта.
Чтобы узнать, какой процесс прослушивает определенный порт, например, порт, который 3306 вы используете:
Выходные данные показывают, что порт 3306 используется сервером MySQL:
Для получения дополнительной информации посетите страницу руководства lsof и прочитайте обо всех других мощных опциях этого инструмента.
Вывод
Мы показали вам несколько команд, которые вы можете использовать для проверки того, какие порты используются в вашей системе, и как найти процесс, который прослушивает определенный порт.
Источник
Команда netstat в Линукс
Для того, чтобы посмотреть работает та или иная сетевая программа, открыты или закрыты порты или просто нужно посмотреть таблицу маршрутизацию — используется команда netstat. Она позволяет получить информацию об активности сетевых интерфейсах.
Установка
Для начала проверим, установлена ли программа.
Для этого, введем в терминале название утилиты без параметров.
Если результат выполнения утилиты будет «command not found», значит она не установлена.
netstat входит в пакет net-tools, поэтому нужно устанавливать net-tools.
Устанавливаем на Astralinux / Дебиан / Убунту:
apt-get install net-tools
На centos:
yum install net-tools
Синтаксис
- a или -all — выводит информацию о всех сокетах(об активных которые слушают порты и неактивных, которые не слушают).
- -r или —route — выводит на экран таблицу маршрутизации.
- -i или —interfaces — выводит информации об интерфейсах.
- -g или —groups — показывает информацию о группах (multicast).
- -M или —masquerade — активные nat соединения.
- -s или —statistics — статистическая информация по протоколам (IP, Tcp, Udp, Icmp, IcmpMsg, UdpLite, TcpExt, IpExt).
- -l или —listening — интерпретатор покажет сокеты, которые находятся в состоянии listen (слушает).
- -p или programs — название программы для сокета.
- —help — справочная информация.
Примеры
Для первого примера, получим информацию обо всех портах. Для этого будем использовать опцию «-a». Чтобы список не был слишком большим, ограничим его с помощью «more». more — позволяет читать большие тексты по одной странице.
$ netstat -a | more
Проверим, работу программы для кэширования данных «memcached». Для удобства будем использовать сразу три аргумента «-tap».
$ netstat -tap | grep memcached
Как видно на скриншоте выше, команда отработала, однако на экране ничего не показала, значит memcached не работает, или вообще не установлен.
Если бы утилита работала, то в результате вывода увидели слово «LISTEN» (слушает).
Посмотрим список всех портов TCP, для этого будем использовать два аргумента «at».
Для просмотра всех UDP, нужно поменять аргумент «t» на «u».
Посмотрим статистику всех портов:
Для того, чтобы непрерывно выводит информацию, поможет аргумент «-с».
Вывести на экран таблицу маршрутизации.
Одна из самых важных задач при диагностики неработоспособности программы — узнать какой порт использует утилита. Чтобы список не был слишком большим, ограничим его при помощи команды grep Подробней о команде можно посмотреть в другой статье https://www.vseprolinux.ru/grep
Для примера узнаем используемый порт активного соединения ssh.
netstat -ap | grep ssh
Посмотреть открытые порты.
Часто бывает так, нужно узнать какие порты открыты, для этого нужно построить список со флагом «listen».
Источник
3 способа, чтобы проверить открытые порты в Linux с соответствующим сервисом-процессом
Главное меню » Операционная система Linux » 3 способа, чтобы проверить открытые порты в Linux с соответствующим сервисом-процессом
Как проверить открытые порты в Linux с соответствующим сервисом-процессом?
Существуют различные способы, с помощью которых можно определить открытые порты прослушивания на Linux.
1. Проверка открытых портов в Linux с помощью команды NETSTAT
В основной форме команда NetStat выводит на экран или печатает информацию о сетевых подключениях и таблицу маршрутизации и т.д. Однако та же команда вместе с параметром ниже может быть использована для проверки открытых портов в Linux.
Команда:
Вывод:
Вот команда выше отображает все выходные TCP, а также порты UDP. В случае, если вы хотите отфильтровать его дальше, допустим, вы хотите узнать, процесс или услугу, используемую по порту 80, следуют использовать команду ниже.
В приведенной выше командной порт используется HTTPd службы с PID 1086.
2. Проверка открытых портов в Linux с помощью утилиты lsof
Утилита lsof в основном отображает список открытых файлов. Однако с некоторыми настройками параметров мы можем в состоянии также проверить открытые порты в Linux. По умолчанию она не установлена в системе, пожалуйста, следуйте ниже набором команд для установки в соответствии с дистрибутивом Linux.
Источник
Как определить открытые порты в Linux?
После настройки сетевых служб важно обратить внимание на порты, принимающие подключения на сетевых интерфейсах. Любые открытые порты могут быть доказательством вторжения. Просмотреть открытые порты можно двумя способами. Менее надёжный способ — опросить сетевой стек с помощью команды netstat -an или lsof -i. Этот способ не очень надёжен, так как эти программы не подключаются к компьютеру по сети, а просто определяют, что происходит в системе. По этой причине, эти приложения часто подменяются нападающими. Таким способом взломщики пытаются скрыть свои следы, если они незаконно открыли порты. Другим более надёжным способом проверки открытых портов является использование сканера портов, например nmap. Все команды netstat, ss, netcat относится к сетевым утилитам и доступны по-умолчанию в большинстве linux-дистрибутивах.
Проверка открытых портов в Linux может понадобиться, чтобы убедиться, что в системе не запущены лишние службы.
Если вы помните, порт это число, которое приложение будет использовать для связи с другой программой, предоставлять сервис и т.д. Чтобы получить представление о том, какие службы работают в системе, необходимо проверить открытые порты системы. Часто мы устанавливаем программу, которая является сервисом, а потом забываем о ней, поэтому наша машина может прослушивать порты в ожидании соединения. Злоумышленники любят, когда порты открыты, так как приложения, прослушивающие эти порты, являются простыми целями. Чтобы обеспечить нашей системе Ubuntu Linux (или любой другой системе в этом отношении) максимальную безопасность, мы должны знать о том, какие порты открыты и для каких служб.
Определить открытых портов в Linux через nmap
Многие системные администраторы и администраторы сетей также находят её полезной для таких задач как инвентаризация сети, управления расписанием служб обновлений и мониторинга аптайма хостов или служб. Возможно, это не лучший вариант перевода на русский язык, но он довольно точно отображает суть — инструмент для исследования сети и проверки безопасности.
Nmap («Network Mapper») — это утилита с открытым исходным кодом для исследования сети и проверки безопасности.
Утилита кроссплатформенна, бесплатна, поддерживаются операционных системы Linux, Windows, FreeBSD, OpenBSD, Solaris, Mac OS X. Nmap умеет сканировать различными методами — например, UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, SYN и NULL-сканирование. Выбор варианта сканирования зависит от указанных ключей, вызов nmap выглядит следующим образом:
nmap цель
Следующая команда, запущенная с консоли, определяет, какие порты ждут TCP-соединений из сети:
nmap -sT -O localhost
Сканирование всех TCP-порты целевого IP-адреса
nmap –sT 192.168.75.131
UDP-сканирование – сканирование хоста на наличие UDP-служб. Это сканирование используется для просмотра открытых UDP-портов.
nmap –sU 192.168.75.131
Статистика открытых портов в Linux через netstat
Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам. Эта команда предоставляет много данных, помогающих специалисту диагностировать и устранять сложные проблемы с сетью.
Команда netstat позволяет просматривать сетевые подключения, таблицы маршрутизации, сведения об интерфейсах и дополнительную информацию о сети.
Однако они окажутся полезными и для оценки сетевого трафика, и для определения наиболее интенсивно используемых интерфейсов. В системах с несколькими сетевыми интерфейсами такие данные могут быть полезными для выявления чрезмерно загруженных интерфейсов и интерфейсов, которые не должны быть активными.
Формат командной строки:
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]
Команда netstat умеет показывать сетевые соединения (входящие/исходящие), таблицу маршрутизации, статистику по сетевым интерфейсам и т.д. Список всех открытых портов (TCP):
netstat -at
Список всех открытых портов (UDP)
netstat -au
Список только прослушиваемых портов (TCP)
netstat -lt
Статистика по всем открытым портам
netstat -s
Подробное отображение списка с открытыми портами — добавлен PID и имя процессов
netstat -p
Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)
netstat -ltupn
Список подключенных хостов
netstat -lantp | grep ESTABLISHED |awk ‘
Узнать открытые порты в Linux через lsof
Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию i.
Утилита командной строки lsof (List Open Files) используется для получения информации об открытых различными процессами файлах (а с точки зрения unix все является файлами — каталоги, устройства, сокеты и т. д.).
Давайте разберемся с практическим применением lsof. Если ввести команду lsof без аргументов, можно увидеть все файлы, принадлежащие процессам. Утилита lsof умеет отображать процессы, которые работают с определенным файлом или сокетом.
Список всех сетевых соединений
lsof -i
Список процессов, работающих с портом 80
lsof -i :80
Вы можете использовать следующую команду:
lsof -i -P |grep pid
Статистика открытых портов в Linux через ss
Однако, ss делает это проще и быстрее, чем netstat. Кроме того, ss даёт более подробные сведения о TCP-подключениях и о состояниях соединений, чем большинство других инструментов. Утилита ss позволяет просматривать информацию об используемых сокетах в системе.
Команда ss — это инструмент, используемый для вывода сетевой статистики в виде, похожем на тот, который выдаёт команда netstat.
Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.
Список процессов, использующие соединения в данный момент
ss -p
Список сокетов в режиме прослушивания
ss -l
Пример фильтра — список всех соединений к порту 80
ss -o state established ‘( dport = :www or sport = :www )’
Открытые порты в Linux через tcpdump
С помощью tcpdump легко снять трафик с вашего сетевого интерфейса, для дальнейшего разбора. Без tcpdump сложно разобрать ошибки, которые возникают при работе с сетью и IP телефонией в целом. Tcpdump, по умолчанию, принимает только первые 68 96 байт данных из пакета.
Tcpdump полезное и необходимое приложения для Linux/UNIX систем.
Если вы хотите, посмотреть более подробные пакеты, то добавьте опцию -s , где число обозначает количество байтов, которые вы хотите захватить. Если установить -s 0 (ноль)- это означает захватывать все пакеты.
proto — работает с протоколами tcp, udp и icmp. (Не надо писать proto)
tcpdump icmp
port — захватывает трафик по определенному порту
tcpdump port 5060
src, dst port — захватывает трафик по определенному порту от источника или к IP адресу назанчения
tcpdump src port 5060tcpdump dst port 5060
src/dst, port, protocol — сочетание всех трех выражений
tcpdump src port 5060 and tcp tcpdump udp and src port 5060
В конце статьи можно сформулировать следующий вывод: поскольку файл и процесс — два ключевых понятия в операционной системе, утилита lsof может оказаться незаменимым помощником администратора в тех случаях, когда надо разобраться, как работает система, а особенно в тех случаях, когда система скомпрометирована. И она тем полезнее, чем больше ваша система и чем больше вы с ней работаете, чем лучше вы понимаете, что она может. Когда вы освоите ее возможности, вы сможете создать отдельные скрипты для обработки тех огромных массивов информации, которые выдает эта программа. Можно, например, запускать команду lsof -i через определенные промежутки времени, чтобы сравнивать полученные данные. Если будут выявлены отличия в числе открытых процессов или другие отличия, удовлетворяющие заданному критерию, скрипт может сформировать сообщение администратору.
Источник