как посмотреть какие порты открыты ubuntu
Как проверить (сканировать) на наличие открытых портов в Linux
Если вы устраняете проблемы с подключением к сети или настраиваете брандмауэр, первое, что нужно проверить, — это то, какие порты действительно открыты в вашей системе.
В этой статье описывается несколько подходов к выяснению того, какие порты открыты извне в вашей системе Linux.
Что такое открытый порт
В общих чертах, открытый порт — это сетевой порт, который принимает входящие пакеты из удаленных мест.
Например, если вы используете веб-сервер, который прослушивает порты 80 и 443 и эти порты открыты на вашем брандмауэре, любой (кроме заблокированных IP-адресов) сможет получить доступ к веб-сайтам, размещенным на вашем веб-сервере, с помощью своего браузера. В этом случае и 80 и 443 являются открытыми портами.
Открытые порты могут представлять угрозу безопасности, поскольку каждый открытый порт может быть использован злоумышленниками для использования уязвимости или выполнения любого другого типа атаки. Вы должны открыть только те порты, которые необходимы для работы вашего приложения, и закрыть все остальные порты.
Проверьте открытые порты с помощью nmap
Nmap — это мощный инструмент сетевого сканирования, который может сканировать отдельные хосты и большие сети. Он в основном используется для аудита безопасности и тестирования на проникновение.
Следующая команда, выдаваемая с консоли, определяет, какие порты прослушивают TCP-соединения из сети:
Для получения дополнительной информации посетите страницу руководства nmap и прочтите обо всех других мощных возможностях этого инструмента.
Проверьте открытые порты с помощью netcat
Netcat (или nc ) — это инструмент командной строки, который может читать и записывать данные через сетевые соединения, используя протоколы TCP или UDP.
С помощью netcat вы можете сканировать отдельный порт или диапазон портов.
Например, для поиска открытых TCP-портов на удаленном компьютере с IP-адресом 10.10.8.8 в диапазоне 20-80 вы должны использовать следующую команду:
Результат будет выглядеть примерно так:
Проверьте открытые порты с помощью псевдоустройства Bash
Другой способ проверить, открыт или закрыт определенный порт, — использовать оболочку Bash /dev/tcp/.. или /dev/udp/.. псевдоустройство.
При выполнении команды на псевдоустройстве /dev/$PROTOCOL/$HOST/$IP Bash откроет TCP или UDP-соединение с указанным хостом на указанном порту.
Следующий оператор if..else проверяет, открыт ли порт 443 на kernel.org :
Как работает приведенный выше код?
При подключении к порту с помощью псевдоустройства таймаут по умолчанию огромен, поэтому мы используем команду timeout чтобы завершить тестовую команду через 5 секунд. Если соединение установлено с портом 443 kernel.org тестовая команда вернет true.
Чтобы проверить диапазон портов, используйте цикл for :
Результат будет выглядеть примерно так:
Выводы
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Открытые порты, три варианта их поиска в Ubuntu 18.04
В следующей статье мы рассмотрим, как мы можем найти порты прослушивания в нашей системе Ubuntu. Знание того, какие порты используются в системе, является основной задачей любого администратора, как при настройке интерфейсов, так и при защите от вторжений, следующие строки могут быть полезны.
Если вы являетесь администратором, вы будете знать, что серверы, созданные для общего доступа, будут иметь службы, которые будут прослушивать назначенные порты для осуществления связи. Эта ситуация приводит к тому, что неиспользуемые порты в некоторых случаях остаются открытыми или прослушиваемыми, что может побудить других попытаться воспользоваться ситуацией.
Мы можем идентифицировать сетевые порты по их количеству, связанному IP-адресу и типу протокола связи (TCP или UDP).. В нашей системе Ubuntu мы сможем найти некоторые команды по умолчанию, которые мы можем использовать для просканируем наш компьютер на предмет открытых портов.
Шаги, которые мы увидим дальше, покажут некоторые команды для поиска прослушивающих портов. Чтобы идентифицировать их в Ubuntu, вам просто нужно выполнить один из следующих шагов:
Найдите открытые порты (порты прослушивания) в Ubuntu
Использование команды netstat
Это инструмент командной строки, который может предложить нам информацию, связанную с IP-адресами, сетевыми подключениями, портами и услугами которые обмениваются данными в этих портах.
Если у вас не установлен этот инструмент в Ubuntu, вы сможете получить его, открыв терминал (Ctrl + Alt + T) и используя команду:
Установка завершена, если захотим перечислить порты, доступные на сервере, выполните следующую команду:
После выполнения команды вместе с предыдущими параметрами мы должны увидеть на экране что-то похожее на следующее:
Параметры, которые мы используем в предыдущей команде, будут следующими:
В случае желания просматривать только определенное имя службы или порт, мы можем использовать команду в терминале NetStat с параметрами, которые мы использовали в предыдущей команде, а также будем использовать GREP.
Использование команды lsof
Это еще один известный Инструмент мониторинга Unix-подобных операционных систем, который используется для отображения всех файлов на диске, которые процессы остаются открытыми, включая открытые сетевые сокеты и каналы, среди других типов.
Использование команды ss
По умолчанию netstat не установлен в Ubuntu, но мы можем найти команду доступной ss который устанавливается вместо netstat. Как и в случае с netstat, команда ss используется для отображения сетевой информации в системах Gnu / Linux. Оба имеют почти одинаковые параметры команд, поэтому для проверки портов прослушивания все, что вам нужно сделать, это открыть терминал (Ctrl + Alt + T) и написать в нем:
Результат предыдущей команды, как и ранее с командой netstat, должен показать нам нечто похожее на следующий снимок экрана:
Если вы посвятили себя управлению сервером или являетесь веб-мастером и хотите убедиться, что на вашем сервере Ubuntu открыты только необходимые порты, шаги, которые мы только что рассмотрели, могут быть полезны при поиске портов прослушивания, которые не используются и могут представлять опасность.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Убунлог » Ubuntu » Открытые порты, три варианта их поиска в Ubuntu 18.04
Как посмотреть открытые порты в Linux
Если порт открыт это означает, что какая либо программа, обычно сервис, использует его для связи с другой программой через интернет или в локальной системе. Чтобы посмотреть какие порты открыты в вашей системе Linux можно использовать множество различных утилит. В этой статье мы рассмотрим самые популярные способы посмотреть открытые порты Linux.
Как посмотреть открытые порты linux
1. netstat
Утилита netstat позволяет увидеть открытые в системе порты, а также открытые на данный момент сетевые соединения. Для отображения максимально подробной информации надо использовать опции:
Открытые порты Linux, которые ожидают соединений имеют тип LISTEN, а перед портом отображается IP адрес на котором сервис ожидает подключений. Это может быть определенный IP адрес или */0.0.0.0 что означают любой доступный адрес:
Можно вывести только процессы, работающие на 80-том порту:
3. lsof
Ещё один пример, смотрим какие процессы работают с портом 80:
4. Nmap
sudo apt install nmap
Затем можно использовать:
Для простого сканирования можно запускать утилиту без опций. Детальнее о её опциях можно узнать в статье про сканирование сети в Nmap. Эта утилита ещё будет полезна если вы хотите посмотреть какие порты на компьютере доступны из интернета.
Дальше запускаем сканирование:
5. Zenmap
sudo apt install zenmap
Запустить программу можно из главного меню или командой:
Затем введите адрес localhost в поле Цель и нажмите кнопку Сканирование:
После завершения сканирования утилита вывела список открытых портов Linux.
Выводы
В этой статье мы рассмотрели инструменты, которые вы можете использовать для того чтобы узнать узнать открытые порты linux. Инструментов не так много как для просмотра информации об оперативной памяти или процессоре, но их вполне хватает. А какими программами пользуетесь вы? Напишите в комментариях!
4 способа узнать, какие порты прослушиваются в Linux
Порт может в одном из следующих состояний: открыт (open), фильтруется (filtered), закрыт (closed), без фильтрации (unfiltered). Порт называется открытым если какое-либо приложение, служба на целевой машине прослушивает (listening) его в ожидании соединений/пакетов. Также по отношению к службе часто употребляют термин «привязка» (bind), который означает, что служба назначена к определённому порту, то есть после её запуска она будет прослушивать его, чтобы ответить на входящие запросы.
Термин «привязка» используют по отношению к службам, которые прослушивают порт на постоянной основе и готовы принять входящие соединения. Примером таких служб являются SSH, MySQL, веб-сервер. Некоторые приложения (например, веб-браузер) делают исходящие соединения. Для этих исходящих соединений обычно используется порт с номером в десятки тысяч, например, 37830 или 46392 или 54284 или что-то подобное. Но они используют порт на короткое время — только чтобы отправить запрос и получить ответ. Сразу после получения ответа программа освобождает порт. Если ей понадобится вновь сделать запрос, то она может выбрать любой другой незанятый порт — необязательно тот же самый. Такие порты не являются прослушивающими, то есть они не принимают внешние запросы на инициализацию соединения. Это состояние сокета называется ESTABLISHED, его нужно отличать от прослушивания порта (LISTENING), то есть от открытых портов.
В этой статье будут рассмотрены четыре способа проверить открытые порты, точнее говоря, какие порты прослушиваются в системе, а также показано вам как найти приложение (службу) прослушивающие определённый порт в Linux.
1. Используя команду netstat
Netstat — это широко применяемый инструмент для запроса информации о сетевой подсистеме Linux. Вы можете использовать её для показа всех открытых портов примерно так:
Флаг -l говорит netstat вывести все прослушивающие сокеты, -t означает показать все TCP соединения, -u для показа всех UDP соединений и -p включает показывать PID и имя программы/приложения, которое прослушивает порт.
Обратите внимание, что вместо номеров портов программа выводит имена популярных служб. Если вы хотите, чтобы порты были показаны как числа, то добавьте флаг -n.
Вы также можете использовать команду grep для определения, какое приложение прослушивает определённый порт, например:
Можно искать не по имени службы, а по номеру порта, с помощью этого можно определить, какая служба привязана к определённому порту:
2. Используя команду ss
ss — это другой полезный инструмент для отображения информации о сокетах. Её вывод выглядит похоже с тем, какую информацию даёт netstat. В документации netstat сказано, что она в основном устарела и её заменой является как раз ss.
Следующая команда покажет все прослушиваемые порты для TCP и UDP соединений в виде цифровых значений:
Опции имеют такое же значение:
Если добавить ключ -p, то программа дополнительно покажет процессы, использующие сокет:
Программа очень детально показывает информацию по каждому процессу, в том числе выводит все подпроцессы, связанные с родительским. С одной стороны, это хорошо, так как информация исчерпывающая, но с другой, данных о процессах может быть слишком много и вывод становится трудно читаемым.
3. Используя программу Nmap
Nmap — это мощный и популярный инструмент исследования сети и сканер портов. Для установки nmap в вашу систему используйте стандартный менеджер пакетов как показано ниже.
На Debian/Ubuntu/Linux Mint:
На CentOS/RHEL:
На Fedora 22+:
На Arch Linux:
Для сканирования открытых/прослушиваемых портов на вашей системе Linux, запустите следующую команду (она может занять долгое время для завершения):
4. Используя команду lsof
Последний инструмент, который мы рассмотрим в этой статье, это команда lsof, которая используется для вывода списка открытых файлов в Linux. Поскольку в Unix/Linux всё является файлом, открытый файл может быть потоком или сетевым файлом.
Для вывода списка всех Интернет и сетевых файлов, используйте опцию -i. Помните, что эта команда показывает смесь имён служб и цифровых портов.
Чтобы найти, какое приложение прослушивает определённый порт, запустите lsof в следующей форме:
Вот и всё! В этой статье мы узнали четыре способа проверить открытые порты в Linux. Мы также показали, как проверить, какой процесс привязан к определённому порту.
О том, как правильно понимать вывод этих команд, смотрите статью «Что означают 0.0.0.0, :*, [::], 127.0.0.1. Как понять вывод NETSTAT».
Открытые порты Ubuntu
Но порты представляют определённую угрозу. Если в программе есть какая-либо уязвимость, то любой пользователь локальной сети сможет получить доступ к вашему компьютеру, а в некоторых случаях даже к вашей информации. Поэтому нужно быть очень осторожным с открытыми портами. В этой статье мы разберёмся, как посмотреть открытые порты Ubuntu.
Что такое порты и зачем они нужны?
Таким образом, процесс прослушивает определённый порт на сервере, а клиент, который хочет к нему обратиться, должен знать этот порт. Вся обработка прав доступа к портам в большинстве случаев ложится на процесс, поэтому если в его коде есть уязвимости, то это может стать серьёзной проблемой безопасности.
Открытые порты Ubuntu
Существуют не только порты, к которым программы подключаются удалённо, но и локальные порты, используемые программами для общения между собой. В качестве локальных также могут использоваться удалённые.
netstat
Это одна из самых старых и популярных утилит для просмотра открытых портов. Мы описывали её в отдельной статье, а сейчас просто кратко рассмотрим, как с ней работать. Чтобы посмотреть открытые порты, выполните такую команду:
Опции -n и -P указывают, что необходимо отображать не только цифровые имена портов и ip-адреса, но и имена доменов и сервисов. Опция -i отображает все сетевые подключения, а с помощью grep мы фильтруем только те, которые находятся в состоянии прослушивания.
Представление информации немного отличается, но в общем и целом мы видим всё ту же информацию. Кроме неё, здесь ещё отображается имя пользователя, от которого запущен процесс. Вы можете не ограничиваться фильтрами и посмотреть все доступные соединения:
Все данные здесь выводятся почти так же, как и в netstat, поэтому вы легко во всём разберётесь. В дополнение к выше перечисленным командам: возможно, вам нужно будет посмотреть на правила брандмауэра iptables, чтобы понять, какие порты закрыты с его помощью:
Сетевой сканер nmap позволяет проверить список портов Ubuntu так, как бы это делал злоумышленник при попытке атаки на вашу систему. Здесь вы будете видеть все порты, которые видны снаружи. Но для сканирования нужно использовать внешний ip-адрес. Не сетевой ip-адрес провайдера, а адрес вашего компьютера, например, в локальной сети чаще всего используется 192.168.1.2. Посмотреть ip вашего сетевого интерфейса можно с помощью команды ifconfig:
Чтобы просто просканировать открытые порты Ubuntu, будет достаточно выполнить:
Также можно выполнить комплексное сканирование всех уязвимостей. Важно отметить, что команда не находит все уязвимости, а проверяет только самые простые. Для активации этого режима используется опция -A:
Как пользоваться nmap, читайте в отдельной статье.
Выводы
В этой статье мы рассмотрели, как проверить порты Ubuntu с помощью нескольких утилит. Все они выводят подробную информацию, но для каждого отдельного случая может лучше подойти только одна из них. Например, проверять какие порты видят другие компьютеры извне лучше с помощью nmap. А чтобы посмотреть, какие службы или сокеты доступны локально, лучше применять netstat или ss.
Проверяйте, какие порты открыты, и если они не нужны, то закройте их в брандмауэре или просто отключите сервис. Иначе они ставят под угрозу безопасность вашей системы. Например, у меня на ноутбуке открыт порт SSH, и я не раз наблюдал в логах попытки перебрать пароль от каких-то роутеров из локальной сети. И если даже вас некому ломать, это могут сделать вирусы. Так что будьте осторожны, и не оставляйте открытые порты, если в этом нет необходимости.