Как проверить открыт ли 80 порт ubuntu

netstat – проверка открытых портов в Linux

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

Часто мы устанавливаем программу, которая является сервисом, а потом забываем о ней, поэтому наша машина может прослушивать порты в ожидании соединения. Злоумышленники любят, когда порты открыты, так как приложения, прослушивающие эти порты, являются простыми целями. Чтобы обеспечить нашей системе Ubuntu Linux (или любой другой системе в этом отношении) максимальную безопасность, мы должны знать о том, какие порты открыты и для каких служб.

Чтобы проверить, какие порты открыты на нашей рабочей станции Ubuntu, можно выполнить команду, показанную ниже. Обратите внимание, что она должна работать и для других разновидностей Linux, если установлена утилита netstat.

1. Используя команду netstat

CLOSE_WAIT – ожидание закрытия соединения

CLOSED – соединение закрыто

ESTABLISHED – соединение установлено

LISTENING – ожидается соединение (слушается порт)

TIME_WAIT – превышение времени ответа

Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:

  • -l или –listening – посмотреть только прослушиваемые порты;
  • -p или –program – показать имя программы и ее PID;
  • -t или –tcp – показать tcp порты;
  • -u или –udp показать udp порты;
  • -n или –numeric показывать ip адреса в числовом виде.

к содержанию ↑

Узнать, кто использует данные порты:

  • netstat –bno – получить список вех сетевых соединений и связанных с ними программ
    • -n – отображает адреса и номера портов в числовом формате
    • -b – отображает исполняемый файл, участвующий в создании каждого соединения

Обычный веб-сервер, на котором запущены FTP, SSH и MySQL, выведет следующую информацию:

Вышеуказанная команда запускает утилиту netstat с соответствующими флагами и передает вывод функции grep, которая извлекает строки, содержащие слово “LISTEN”. В результате мы получаем список открытых портов и имена процессов, прослушивающих эти порты.

Все команды netstat, ss, netcat относится к сетевым утилитам и доступны по-умолчанию в большинстве linux-дистрибутивах.

Команда netstat умеет показывать сетевые соединения (входящие/исходящие), таблицу маршрутизации, статистику по сетевым интерфейсам и т.д.

Список всех открытых портов (TCP)

Список всех открытых портов (UDP)

Список только прослушиваемых портов (TCP)

Статистика по всем открытым портам

Подробное отображение списка с открытыми портами – добавлен PID и имя процессов

Объединим все ключи в полезную команду для просмотра открытых TCP/UDP портов с именами процессов (может понадобиться root-доступ)

Список подключенных хостов

Список всех открытых портов при помощи команды netstat

Это просто. Тут мы используем либо команду netstat. Да, так просто, всего одна строчка и все у нас перед глазами:

Тут мы можем увидеть какие порты находятся в состоянии прослушивания (Listen).

Просмотр статистики по протоколам

Данную информацию отображает команда netstat -s:

Отдельная статистика по TCP:

Отдельная статистика по UDP:

Узнать PID и имя ПО, которое проявляет сетевую активность

Для того, что бы узнать какой именно процесс у нас использует сетевое соединения или проявляет аномальную сетевую активность можно использовать команду netstat -pt:

Отображение таблицы IP роутов

Узнать какой порт использует определенный процесс

Если нужно наоборот, узнать процесс по порту, то команда будет выглядеть так:

Расширенная информация о сетевом интерфейсе

Для этого используем команду:

Также мы использовали следующие флаги:

  • t – выводит список портов TCP.
  • u – выводит список портов UDP.
  • l – выводит только слушающие (Listen) сокеты.
  • n – показывает номер порта.
  • p – показывает имя процесса или программы.

к содержанию ↑

Несколько примеров для определения атаки типа DoS или DDoS

Следующая команда позволит узнать, сколько подключений активно на каждом IP-адресе:

netstat -naltp | grep ESTABLISHED | awk ‘’ | awk -F: ‘’ | sort -n | uniq -c

Определяем большое количество запросов с одного IP-адреса:

netstat -na | grep :80 | sort

Определяем точное количество запросов, полученных на одно соединение:

netstat -np | grep SYN_RECV | wc -l

При проведении DoS-атаки число, полученное в результате работы данной команды, должно быть довольно большим. В любом случае оно может зависеть от конкретной системы. То есть на одном сервере оно может быть одним, на другом – иным.

2. Используя команду ss

Утилита ss – это современная альтернатива для команды netstat. В отличие от netstat, которая берет информацию из каталога /proc, утилита ss напрямую связывается со специальной подсистемой ядра Linux, поэтому работает быстрее и её данные более точные, если вы хотите выполнить просмотр открытых портов это не имеет большого значения.

Утилита ss позволяет просматривать информацию об используемых сокетах в системе. Эта команда обладает схожим функционалом к netstat, но есть и уникальные возможности. Например можно фильтровать вывод по установленным соединениям с определенным портом.

Список процессов, использующие соединения в данный момент

Список сокетов в режиме прослушивания

Пример фильтра – список всех соединений к порту 80

Список всех открытых портов при помощи команды ss

Тут все аналогично, кроме того, что теперь используем команду ss вместо netstat

3. Используя команду lsof

Утилита lsof умеет отображать процессы, которые работают с определенным файлом или сокетом.

Утилита lsof позволяет посмотреть все открытые в системе соединения, в том числе и сетевые, для этого нужно использовать опцию -i, а чтобы отображались именно порты, а не названия сетевых служб следует использовать опцию -P

Список всех сетевых соединений

Список процессов, работающих с портом 80

4. Используя команду netcat

Утилита netcat позволяет передавать/принимать данные через TCP/UDP соединения.

Шаблон вызова утилиты

Откроем прием (ключ -l) данных на порте 1234 с подробным выводом информации (ключ -v) и продолжением работы после разрыва соединения (ключ -k), по-умолчанию nc разрывает соединение после первого дисконекта.

Подключаемся к открытому порту и отправим import antigravity 😉

Пример более полезного использования nc – передача файла. На принимающей стороне

На отправляющей стороне

Или можно отдавать файл любому подключившемуся. На передающей стороне

На принимающей стороне

Пример открытия shell’а на определенном порте (источник). На стороне, где нужно открыть шел

Еще один полезный пример с netcat – запуск процесса, с возможностью отслеживания его работы через сеть

4. Используя команду NMAP

Nmap – мощный сетевой сканер, разработанный для сканирования и пентестинга удаленных узлов, но ничего не мешает направить его на локальный компьютер:

Если вы хотите посмотреть какие порты на компьютере доступны снаружи, здесь тоже пригодится Nmap. Если компьютер – общедоступный сервер, то результат скорее всего не будет отличатся от локального сканирования, но на домашнем компьютере все немного по другому. Первый вариант – используется роутер и в сеть будут видны только порты роутера, еще одним порогом защиты может стать NAT сервер провайдера. Технология NAT позволяет нескольким пользователям использовать один внешний IP адрес. И так для просмотра открытых внешних портов сначала узнаем внешний ip адрес, для надежности воспользуемся онлайн сервисом:

Дальше запускаем сканирование:

В результате мы можем получить открытый порт 80 веб сервера, или даже 21 – файлового сервера, которых мы не устанавливали, эти порты открыты роутером, 80 – для веб-интерфейса, а 21 для может использоваться для обновления прошивки. А еще можно вообще не получить результатов, это будет означать что все порты закрыты, или на сервере установлена система защиты от вторжений IDS.

Для сканирования открытых/прослушиваемых портов на вашей системе Linux, запустите следующую команду (она может занять долгое время для завершения):

5. Какие порты открыты для внешнего мира?

Обратите внимание, что сервис может иметь открытый порт, который можно прослушивать только на текущей машине. То есть, порт открыт, но вы не сможете получить к нему доступ из сети.

Это полезно для безопасности, например, веб-сервер должен иметь открытый для остального мира порт 80, но мир не должен знать о (или иметь возможность подключения) порте 3306, который прослушивает сервер MySQL, поддерживающий вебсайт.

В идеале, если вы используете веб-сервер, единственные порты, которые должны быть видны извне это HTTP-порт 80, и возможно, SSH порт 22, поскольку вам понадобится подключаться к веб-серверу для выполнения команд.

Порты для служб, доступных только на локальном компьютере, будут иметь IP адрес 127.0.0.1 в поле локального адреса. В вышеприведенном примере это будет:

Как видно, MySQL прослушивает порт 3306 по IP адресу 127.0.0.1. Это означает, что к MySQL серверу могут подключиться только программы на той же машине.

6. Просматриваем открытые порты в Ubuntu

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

7. ВЫВОДЫ

В этой статье мы рассмотрели инструменты, которые вы можете использовать для того чтобы узнать узнать открытые порты linux. Инструментов не так много как для просмотра информации об оперативной памяти или процессоре, но их вполне хватает. А какими программами пользуетесь вы? Напишите в комментариях!

Открытые порты 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, и я не раз наблюдал в логах попытки перебрать пароль от каких-то роутеров из локальной сети. И если даже вас некому ломать, это могут сделать вирусы. Так что будьте осторожны, и не оставляйте открытые порты, если в этом нет необходимости.

Открытые порты, три варианта их поиска в Ubuntu 18.04

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

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

Мы можем идентифицировать сетевые порты по их количеству, связанному IP-адресу и типу протокола связи (TCP или UDP).. В нашей системе Ubuntu мы сможем найти некоторые команды по умолчанию, которые мы можем использовать для просканируем наш компьютер на предмет открытых портов.

Шаги, которые мы увидим дальше, покажут некоторые команды для поиска прослушивающих портов. Чтобы идентифицировать их в Ubuntu, вам просто нужно выполнить один из следующих шагов:

Найдите открытые порты (порты прослушивания) в Ubuntu

Использование команды netstat

Это инструмент командной строки, который может предложить нам информацию, связанную с IP-адресами, сетевыми подключениями, портами и услугами которые обмениваются данными в этих портах.

Если у вас не установлен этот инструмент в Ubuntu, вы сможете получить его, открыв терминал (Ctrl + Alt + T) и используя команду:

Установка завершена, если захотим перечислить порты, доступные на сервере, выполните следующую команду:

После выполнения команды вместе с предыдущими параметрами мы должны увидеть на экране что-то похожее на следующее:

Параметры, которые мы используем в предыдущей команде, будут следующими:

  • -p Отображает PID.
  • -l Показывает только прослушивающие порты.
  • -n Он покажет нам числовые адреса вместо разрешения хостов.
  • -u Показать порты UDP.
  • -t Показать TCP-порты.

В случае желания просматривать только определенное имя службы или порт, мы можем использовать команду в терминале NetStat с параметрами, которые мы использовали в предыдущей команде, а также будем использовать GREP.

Использование команды lsof

Это еще один известный Инструмент мониторинга Unix-подобных операционных систем, который используется для отображения всех файлов на диске, которые процессы остаются открытыми, включая открытые сетевые сокеты и каналы, среди других типов.

Команда Lsof — еще одна доступная утилита, которую мы сможем запустить в терминале Ubuntu и которая это позволит нам видеть сетевую информацию. Чтобы перечислить все TCP-порты, которые прослушивают, нам нужно будет использовать только команду lsof со следующими параметрами:

Использование команды ss

По умолчанию netstat не установлен в Ubuntu, но мы можем найти команду доступной ss который устанавливается вместо netstat. Как и в случае с netstat, команда ss используется для отображения сетевой информации в системах Gnu / Linux. Оба имеют почти одинаковые параметры команд, поэтому для проверки портов прослушивания все, что вам нужно сделать, это открыть терминал (Ctrl + Alt + T) и написать в нем:

Результат предыдущей команды, как и ранее с командой netstat, должен показать нам нечто похожее на следующий снимок экрана:

Если вы посвятили себя управлению сервером или являетесь веб-мастером и хотите убедиться, что на вашем сервере Ubuntu открыты только необходимые порты, шаги, которые мы только что рассмотрели, могут быть полезны при поиске портов прослушивания, которые не используются и могут представлять опасность.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Ubuntu » Открытые порты, три варианта их поиска в Ubuntu 18.04


источники:

http://losst.ru/otkrytye-porty-ubuntu

http://ubunlog.com/ru/%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B5-%D0%BF%D0%BE%D1%80%D1%82%D1%8B-%D0%BD%D0%B0%D0%B9%D0%B4%D0%B8-%D0%B8%D1%85-ubuntu/