- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Смотрим открытые порты Linux
- Список всех открытых портов при помощи команды netstat
- Список всех открытых портов при помощи команды ss
- Показать все открытые порты (netstat)
- netstat
- netcat
- Как проверить открытые порты Linux
- Программа Netstat
- Программа SS
- Инструмент LSOF
- Утилита NMAP
- Открытые порты Ubuntu
- Что такое порты и зачем они нужны?
- Открытые порты Ubuntu
- netstat
- Выводы
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Смотрим открытые порты Linux
TCP и UDP в реальном времени
2 минуты чтения
Всем привет! Мы уже рассказывали про TCP и UDP порты, и вы уже знаете, что это сущность, которая определяет конкретный процесс, приложение или тип сетевого сервиса.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Сегодня мы расскажем, как вывести список и затем наблюдать за работой TCP/UDP портов в Linux. Поехали!
Список всех открытых портов при помощи команды netstat
Это просто. Тут мы используем либо команду netstat. Да, так просто, всего одна строчка и все у нас перед глазами:
Тут мы можем увидеть какие порты находятся в состоянии прослушивания (Listen). Также просмотреть прослушиваемые порты можно при помощи утилиты lsof – как это сделать можно прочесть в нашей статье.
Также мы использовали следующие флаги:
- t — выводит список портов TCP.
- u — выводит список портов UDP.
- l — выводит только слушающие (Listen) сокеты.
- n — показывает номер порта.
- p — показывает имя процесса или программы.
Список всех открытых портов при помощи команды ss
Тут все аналогично, кроме того, что теперь используем команду ss вместо netstat
TCP и UDP порты в режиме реального времени
И тут тоже все просто – для просмотра портов TCP и UDP в режиме реального времени нужно запустить netstat или ss с помощью утилиты watch.
Мини — курс по виртуализации
Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена
Источник
Показать все открытые порты (netstat)
netstat
Команда 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 ‘
Утилита ss позволяет просматривать информацию об используемых сокетах в системе. Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.
Список процессов, использующие соединения в данный момент
ss -p
Список сокетов в режиме прослушивания
ss -l
Пример фильтра — список всех соединений к порту 80
ss -o state established ‘( dport = :www or sport = :www )’
Утилита lsof умеет отображать процессы, которые работают с определенным файлом или сокетом.
Список всех сетевых соединений
lsof -i
Список процессов, работающих с портом 80
lsof -i :80
netcat
Утилита netcat позволяет передавать/принимать данные через TCP/UDP соединения.
Шаблон вызова утилиты
nc host port
Откроем прием (ключ -l) данных на порте 1234 с подробным выводом информации (ключ -v) и продолжением работы после разрыва соединения (ключ -k), по-умолчанию nc разрывает соединение после первого дисконекта.
nc -lvk 1234
Подключаемся к открытому порту и отправим import antigravity 😉
nc 127.0.0.1 1234
import antigravity
Пример более полезного использования nc — передача файла. На принимающей стороне
nc -l 1234 > file
На отправляющей стороне
nc localhost 1234
Или можно отдавать файл любому подключившемуся. На передающей стороне
nc -l 1234
На принимающей стороне
nc localhost 1234 > file
Пример открытия shell’а на определенном порте (источник). На стороне, где нужно открыть шел
mkfifo /tmp/ pipe ;
sh /tmp/ pipe | nc -l 1234 > /tmp/pipe
Еще один полезный пример с netcat — запуск процесса, с возможностью отслеживания его работы через сеть
watch w | nc localhost 1234
Источник
Как проверить открытые порты 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
Теперь нужно поставить сканирование на отправную точку. Это делается так:
Ознакомьтесь с результатами, выведенными в окне, чтобы убедиться в том, что лишние порты закрыты, и ваш ПК находится в безопасности.
Источник
Открытые порты Ubuntu
В современных операционных системах не обойтись без взаимодействия программ с внешней средой и интернетом. Для этого используется специальные механизмы — порты.
Но порты представляют определённую угрозу. Если в программе есть какая-либо уязвимость, то любой пользователь локальной сети сможет получить доступ к вашему компьютеру, а в некоторых случаях даже к вашей информации. Поэтому нужно быть очень осторожным с открытыми портами. В этой статье мы разберёмся, как посмотреть открытые порты Ubuntu.
Что такое порты и зачем они нужны?
Порты — это более широкое понятие, чем просто возможность подключится к удалённому компьютеру через сеть. Когда процесс хочет обратиться к серверу, ему нужно каким-либо образом идентифицировать, к какому серверу он хочет подключиться. Если мы знаем 32 битный IP-адрес сервера, то мы можем без проблем к нему подключиться.
Но как указать программу, к которой нужно обратиться? Для решения этой проблемы оба протокола UDP и TCP поддерживают систему портов. Порт — это целое число от 1024 до 65535. Все номера до 1024 зарезервированы и используются только определёнными службами, например, 22 — ssh, http — 80, FTP — 21 и так далее.
Таким образом, процесс прослушивает определённый порт на сервере, а клиент, который хочет к нему обратиться, должен знать этот порт. Вся обработка прав доступа к портам в большинстве случаев ложится на процесс, поэтому если в его коде есть уязвимости, то это может стать серьёзной проблемой безопасности.
Открытые порты Ubuntu
Существуют не только порты, к которым программы подключаются удалённо, но и локальные порты, используемые программами для общения между собой. В качестве локальных также могут использоваться удалённые.
В Linux существует несколько утилит, которые можно использовать, чтобы посмотреть открытые порты. Одни из них полноценные сетевые сканеры, другие — локальные утилиты, отображающие всю доступную информацию. Рассмотрим основные из них.
netstat
Это одна из самых старых и популярных утилит для просмотра открытых портов. Мы описывали её в отдельной статье, а сейчас просто кратко рассмотрим, как с ней работать. Чтобы посмотреть открытые порты, выполните такую команду:
netstat -ntlp | grep LISTEN
Опция -l сообщает, что нужно посмотреть прослушиваемые порты, -p показывает имя программы, -t и -u — отображают TCP и UDP порты, а -n показывает ip адреса в числовом виде. Дальше нужно выбрать только те строки, где встречается слово LISTEN, чтобы найти только прослушиваемые порты.
Здесь в первом столбце отображается протокол, затем два столбца — это данные, которые нам ничего полезного не говорят, а за ними уже идут локальный и внешний адреса. Если локальный адрес — 127.0.0.1, то это значит, что сервис доступен только на этом компьютере, а значение 0.0.0.0 или :: означает любой адрес, к таким сервисам могут подключаться из сети. В нашем примере это Apache и systemd-resolvd.
Утилита lsof тоже предназначена для просмотра открытых соединений. Основная ее функция — просмотр открытых файлов, но с её помощью можно посмотреть открытые порты Ubuntu. Используйте такие параметры:
sudo lsof -nP -i | grep LISTEN
Опции -n и -P указывают, что необходимо отображать не только цифровые имена портов и ip-адреса, но и имена доменов и сервисов. Опция -i отображает все сетевые подключения, а с помощью grep мы фильтруем только те, которые находятся в состоянии прослушивания.
Представление информации немного отличается, но в общем и целом мы видим всё ту же информацию. Кроме неё, здесь ещё отображается имя пользователя, от которого запущен процесс. Вы можете не ограничиваться фильтрами и посмотреть все доступные соединения:
Команда ss — это улучшенная версия netstat. Точно так, как для замены ifconfig была придумана утилита ip, ss разработали для замены netstat. Команда будет выглядеть следующим образом:
Все данные здесь выводятся почти так же, как и в netstat, поэтому вы легко во всём разберётесь. В дополнение к выше перечисленным командам: возможно, вам нужно будет посмотреть на правила брандмауэра iptables, чтобы понять, какие порты закрыты с его помощью:
В нашем примере нет никаких ограничений. Политика по умолчанию — ACCEPT. На промышленных серверах может применяться политика DENY, а нужные порты будут разрешены с помощью правил.
Сетевой сканер nmap позволяет проверить список портов Ubuntu так, как бы это делал злоумышленник при попытке атаки на вашу систему. Здесь вы будете видеть все порты, которые видны снаружи. Но для сканирования нужно использовать внешний ip-адрес. Не сетевой ip-адрес провайдера, а адрес вашего компьютера, например, в локальной сети чаще всего используется 192.168.1.2. Посмотреть ip вашего сетевого интерфейса можно с помощью команды ifconfig:
Чтобы просто просканировать открытые порты Ubuntu, будет достаточно выполнить:
nmap -sT 192.168.1.3
Также можно выполнить комплексное сканирование всех уязвимостей. Важно отметить, что команда не находит все уязвимости, а проверяет только самые простые. Для активации этого режима используется опция -A:
sudo nmap -A 192.168.1.3
Как пользоваться nmap, читайте в отдельной статье.
Выводы
В этой статье мы рассмотрели, как проверить порты Ubuntu с помощью нескольких утилит. Все они выводят подробную информацию, но для каждого отдельного случая может лучше подойти только одна из них. Например, проверять какие порты видят другие компьютеры извне лучше с помощью nmap. А чтобы посмотреть, какие службы или сокеты доступны локально, лучше применять netstat или ss.
Проверяйте, какие порты открыты, и если они не нужны, то закройте их в брандмауэре или просто отключите сервис. Иначе они ставят под угрозу безопасность вашей системы. Например, у меня на ноутбуке открыт порт SSH, и я не раз наблюдал в логах попытки перебрать пароль от каких-то роутеров из локальной сети. И если даже вас некому ломать, это могут сделать вирусы. Так что будьте осторожны, и не оставляйте открытые порты, если в этом нет необходимости.
Источник