Что означает открытый порт?
Прежде чем углубляться в проверку открытых портов, давайте сначала узнаем, что означают открытые порты. Открытый порт или порт прослушивания - это порт, на котором работает какое-то приложение. Запущенное приложение прослушивает какой-то порт, и мы можем общаться с этим приложением через этот прослушивающий порт. Если приложение работает на порту, и мы пытаемся запустить другое приложение на том же порту, ядро выдаст ошибку. Это одна из многих причин, по которым мы проверяем открытые порты перед запуском приложений.
Список открытых портов с помощью nmap
Network Mapper, известный как nmap, - это бесплатный инструмент с открытым исходным кодом, который используется для сканирования портов в системе. Он используется для поиска уязвимостей, обнаружения сетей и поиска открытых портов. В этом разделе мы будем использовать nmap для получения списка открытых портов в системе. Прежде всего, обновите кеш в Ubuntu перед установкой nmap:
[электронная почта защищена]: ~ $ sudo apt-get update -yNmap можно установить с помощью следующей команды в терминале:
[электронная почта защищена]: ~ $ sudo apt-get install nmap -yПосле установки nmap проверьте установку, проверив версию nmap:
[электронная почта защищена]: ~ $ nmap --version
Если он выдает версию nmap, значит, он установлен идеально, в противном случае попробуйте выполнить указанные выше команды еще раз, чтобы правильно установить nmap. Nmap используется для выполнения нескольких задач, связанных с сетями, и сканирование портов является одной из таких задач. Инструмент nmap используется вместе со многими опциями. Мы можем получить список всех доступных опций, используя следующую команду:
[электронная почта защищена]: ~ $ man nmapИтак, чтобы просканировать ваш локальный хост, используйте следующую команду:
[электронная почта защищена]: ~ $ sudo nmap localhost
В нем будут перечислены все открытые порты на локальном хосте, как показано на изображении выше. Мы также можем использовать nmap для сканирования удаленных хостов:
[электронная почта защищена]: ~ $ sudo nmap 93.184.216.34Кроме того, мы можем использовать имя хоста удаленного сервера вместо IP-адреса:
[электронная почта защищена]: ~ $ sudo nmap www.пример.комКоманду nmap также можно использовать для сканирования диапазона IP-адресов. Укажите диапазон IP-адресов в команде, как в команде ниже:
[электронная почта защищена]: ~ $ sudo nmap 192.168.1.1-10Приведенная выше команда просканирует все IP-адреса из 192.168.1.От 1 до 192.168.1.10, и он отобразит результат в терминале. Чтобы сканировать порты в подсети, мы можем использовать nmap следующим образом:
[электронная почта защищена]: ~ $ sudo nmap 192.168.1.1/24Приведенная выше команда просканирует все хосты с IP-адресами в подсети, определенной в команде.
Иногда вам нужно сканировать порты на случайных хостах, которые находятся в разных подсетях и не расположены последовательно, тогда лучшим решением будет написать файл хостов, в котором записаны все имена хостов, разделенные одним или несколькими пробелами, табуляциями или новыми линии. Этот файл можно использовать с Nmap следующим образом:
[электронная почта защищена]: ~ $ sudo nmap -iL hosts.текст
Мы можем использовать nmap для сканирования одного порта в системе, указав порт с помощью флага '-p' вместе с nmap, как в следующей команде:
[электронная почта защищена]: ~ $ sudo nmap -p 80 localhost
Диапазон портов также можно сканировать в системе с помощью nmap следующим образом:
[электронная почта защищена]: ~ $ sudo nmap -p 80-85 localhost
Мы можем сканировать все порты системы с помощью nmap:
[электронная почта защищена]: ~ $ sudo nmap -p- localhost
Чтобы получить список наиболее часто открытых портов в вашей системе, вы можете использовать команду nmap с флагом '-F':
[электронная почта защищена]: ~ $ sudo nmap -F localhost
TCP-порты можно сканировать в системе с помощью nmap, просто добавив флаг '-T' вместе с командой nmap:
[электронная почта защищена]: ~ $ sudo nmap -sT localhost
Точно так же для портов UDP вы можете использовать флаг '-U' с командой nmap:
[электронная почта защищена]: ~ $ sudo nmap -sU localhost
Список открытых портов с помощью lsof
Команда lsof, также известная как «список открытых файлов», используется для получения информации об открытых файлах, используемых различными процессами в UNIX и LINUX, таких как операционные системы. Для большинства дистрибутивов Linux этот инструмент предустановлен. Мы можем проверить установку lsof, просто проверив его версию:
[электронная почта защищена]: ~ $ lsof -v
Если версия не отображается, значит lsof по умолчанию не установлен. Мы все еще можем установить его, используя следующие команды в терминале:
[электронная почта защищена]: ~ $ sudo apt-get update -y[электронная почта защищена]: ~ $ sudo apt-get install lsof
Мы можем использовать команду lsof вместе с различными параметрами. Список всех доступных опций можно отобразить с помощью следующей команды в терминале:
[адрес электронной почты защищен]: ~ $ man lsofТеперь, в этом разделе, мы собираемся использовать lsof для отображения портов системы по-разному:
[электронная почта защищена]: ~ $ sudo lsof -i
Вышеупомянутая команда отобразила все открытые порты. Мы также можем использовать команду lsof для отображения всех открытых сокетов:
[электронная почта защищена]: ~ $ sudo lsof -n -P | grep СЛУШАТЬ
Мы можем перечислить отфильтрованные порты на основе протокола с помощью lsof. Выполните приведенную ниже команду, чтобы вывести список всех типов TCP-соединений:
[электронная почта защищена]: ~ $ sudo lsof -i tcp
Точно так же мы можем перечислить все типы соединений UDP с помощью lsof следующим образом:
[электронная почта защищена]: ~ $ sudo lsof -i udp
Список открытых портов с помощью netstat
Netstat, также известный как сетевая статистика, представляет собой программу командной строки, используемую для отображения подробной информации о сетях. Он отображает как входящие, так и исходящие TCP-соединения, таблицы маршрутизации, сетевые интерфейсы и т. Д. В этом разделе мы будем использовать netstat для вывода списка открытых портов в системе. Инструмент netstat можно установить, выполнив следующие команды:
[электронная почта защищена]: ~ $ sudo apt-get update -y[электронная почта защищена]: ~ $ sudo apt-get install net-tools -y
После выполнения вышеуказанных команд вы можете проверить установку, проверив версию netstat:
[электронная почта защищена]: ~ $ netstat --version
Если он отображает версию net-tools, значит, с установкой все в порядке, в противном случае снова запустите команды установки. Чтобы получить обзор всех доступных опций, которые можно использовать вместе с командой netstat, выполните следующую команду:
[электронная почта защищена]: ~ $ man netstatМы можем получить список всех прослушивающих портов с помощью команды netstat в Ubuntu, выполнив следующую команду:
[электронная почта защищена]: ~ $ sudo netstat -l
Команду netstat также можно использовать для фильтрации прослушивания портов TCP и UDP, просто добавив флаг вместе с командой. Для прослушивания портов TCP:
[электронная почта защищена]: ~ $ sudo netstat -lt
Для прослушивания портов UDP используйте следующую команду:
[электронная почта защищена]: ~ $ sudo netstat -lu
Чтобы получить список всех прослушивающих портов UNIX, вы можете запустить в терминале следующую команду:
[электронная почта защищена]: ~ $ sudo netstat -lx
Список открытых портов с использованием ss
Команда ss используется для отображения информации о сокетах в системе Linux. Он отображает более подробную информацию о сокетах, чем команда netstat. Команда ss предустановлена для большинства дистрибутивов Linux, поэтому вам не нужно устанавливать ее перед использованием. Вы можете получить список всех параметров, которые можно использовать вместе с командой ss, выполнив команду man с ss:
[адрес электронной почты защищен]: ~ $ man ssЧтобы получить список всех подключений независимо от их состояния, используйте команду ss без флага:
[электронная почта защищена]: ~ $ sudo ss
Чтобы получить список всех прослушивающих портов, используйте команду ss с флагом '-l'. Флаг '-l' используется для отображения только прослушивающих портов:
[электронная почта защищена]: ~ $ sudo ss -l
Чтобы получить все прослушивающие TCP-порты, мы можем использовать флаг '-t' и '-l' вместе с командой ss:
[электронная почта защищена]: ~ $ sudo ss -lt
Точно так же мы можем получить список всех прослушивающих UDP-портов, используя команду ss вместе с флагами '-u' и '-l':
[электронная почта защищена]: ~ $ sudo ss -lu
Команду ss также можно использовать для получения списка всех соединений с источником или портом назначения. В следующем примере мы собираемся получить список всех соединений с целевым или исходным портом 22:
[электронная почта защищена]: ~ $ sudo ss -at '(dport =: 22 or sport =: 22)'
Вы получите список всех входящих и исходящих подключений, если вы подключились к удаленной системе с помощью ssh.
Заключение
Системным администраторам, специалистам по безопасности и другим лицам, связанным с ИТ, важно знать об открытых портах на серверах. Linux богат инструментами, используемыми для диагностики сетей, и предоставляет множество инструментов, которые могут быть полезны для различных видов сетевых действий. В этом руководстве мы использовали некоторые инструменты, такие как netstat, ss, lsof и nmap, для проверки открытых портов в Ubuntu. Прочитав эту статью, вы сможете легко перечислить все порты прослушивания на вашем сервере Linux разными способами.