Nmap или Network Mapper представляет собой утилиту с открытым исходным кодом, которая является популярным многофункциональным инструментом в арсенале сетевых администраторов Linux. Ее часто используют и те, кто работает с ОС Windows. Nmap предназначается для выполнения следующих задач:
- мониторинга сети;
- контроля над параметрами безопасности;
- аудита сетевой инфраструктуры;
- выявления прослушивающих портов на удаленном ПК.
Этот инструмент анализирует хосты, фильтры пакетов, операционные системы и открытые порты удаленных хостов.
Содержание:
- Применение Nmap
- Установка Nmap в Linux
- Сканирование в Nmap по имени хоста и IP
- Сканирование с добавлением опции -v
- Сканирование нескольких хостов
- Полное сканирование подсети
- Сканирование нескольких серверов по последнему октетe IP
- Сканирование по списку хостов из файла
- Сканирование указанного диапазона адресов IP
- Сканирование без учета удаленных хостов
- Проверка ОС и информации о Traceroute
- Активация функции обнаружения ОС в Nmap
- Обнаружение брандмауэра у сканируемого хоста
- Проверки защищенности хоста брандмауэром
- Обнаружение всех активных хостов сети
- Быстрое сканирование в Network Mapper
- Проверка версии Network Mapper
- Последовательное сканирование портов
- Проверка интерфейсов хоста и маршрутов
- Сканирование портов
- Сканирование указанного порта
- Сканирование TCP-порта
- Сканирование UDP-порта
- Сканирование нескольких разных портов
- Сканирование портов сети из указанного диапазона
- Проверка версий сервисов на хосте
- Сканирование удаленных хостов по методам TCP ACK(PA) и TCP Syn(PS)
- Поиск определенных портов удаленного хоста с помощью TCP ACK
- Поиск определенных портов удаленного хоста с помощью TCP Syn
- Скрытное сканирование с помощью Network Mapper
- Поиск часто используемых портов с TCP Syn
- Выводы
Применение Nmap
Это первая из двух наших статей о Nmap, в рамках которой будут продемонстрированы ее прикладные возможности. В качестве примера использованы два сервера без брандмауэра, с помощью которых проверена работоспособности утилиты:
- 192.168.0.100 (server1.sedicomm.com);
- 192.168.0.101 (server2.sedicomm.com).
Для работы с Nmap следует применять команды, использующие следующий синтаксис:
Установка Nmap в Linux
Популярные дистрибутивы ОС семейства GNU / Linux обычно включают Nmap в стандартные репозитории. Их легко можно установить с помощью встроенной системы управления пакетами (Yum и APT) в таких дистрибутивах:
- Red Hat Enterprise Linux;
- CentOS;
- Fedora;
- Debian;
- Ubuntu.
Для установки Nmap на системы, родственные Red Hat, вводим в командную строку команду yum install nmap
:
Для установки в Debian-подобных ОС — вводим в командную строку команду sudo apt install nmap
:
Сканирование в Nmap по имени хоста и IP
Утилита Nmap способна сканировать Вашу систему несколькими способами. Например, по IP-адресу или по имени хоста. Попробуем рассмотреть оба варианта.
Сканирование по имени хоста
Для начала осуществим сканирование, воспользовавшись именем хоста — server2.sedicomm.com. Это позволит обнаружить все открытые порты, службы и MAC-адреса. Вводим в командную строку команду nmap server2.sedicomm.com
, чтобы увидеть примерно такой вывод:
Сканирование по IP-адресу
Теперь проверим, как будет выглядеть результат сканирования по IP. Для этого вводим в командную строку команду nmap 192.168.0.101
:
Сканирование с добавлением опции -v
Вам может понадобиться более подробная информация по результатам введения команды Nmap. Для этого вводим в командную строку команду nmap -v server2.sedicomm.com
(то есть — с опцией -v
):
Так Вы сможете увидеть больше данных об удаленном компьютере.
Сканирование нескольких хостов
Совсем необязательно сканировать хосты или IP-адреса по одному. Вместо этого можно просто перечислить аргументы команды через пробел. В качестве примера вводим в командную строку команду nmap 192.168.0.101 192.168.0.102 192.168.0.103
:
Полное сканирование подсети
Также предусмотрена возможность просканировать целый диапазон IP-адресов (например — целую подсеть). Для этого используется метасимвол пропущенного значения — «*». В качестве примера вводим в командную строку команду nmap 192.168.0.*
:
Как видите, утилита проверила всю сеть и отобразила все активные соединения.
Сканирование нескольких серверов по последнему октету IP
Также можно просканировать сразу несколько IP-адресов. Для этого достаточно перечислить через запятую вариации их последнего октета. Для примера попробуем использовать следующие адреса — 192.168.0.101, 192.168.0.102 и 192.168.0.103. В таком случае вводим в командную строку команду nmap 192.168.0.101,102,103
:
Сканирование по списку хостов из файла
Порой проверять приходится сразу очень много хостов. В таком случае лучше всего записать список в отдельный файл и уже в таком виде передать на обработку команде Network Mapper.
Сначала создаем файл и называем его nmaptest.txt
. Далее с помощью команды cat > nmaptest.txt
перенаправляем в него ввод с клавиатуры (поток 0 — stdin). После этого вводим названия хостов либо IP-адреса серверов для сканирования:
Каждый аргумент команды переносим на новую строку клавишей Enter. Чтобы завершить ввод — нажимаем комбинацию клавиш Ctrl + C.
После этого вводим команду Nmap
, добавив к ней опцию -iL
и название файла nmaptest.txt
:
Как видите, утилита смогла осуществить проверку по данным из документа.
Сканирование указанного диапазона адресов IP
Сканировать разные IP-адреса можно и за счет указания их диапазона. В качестве примера вводим в командную строку команду nmap 192.168.0.101-110
:
Сканирование без учета удаленных хостов
Иногда нужно провести проверку без учета некоторых хостов. Снова воспользуемся метасимволом подстановки «*», но к нему добавим параметр --exclude
. Тогда команда и результаты вывода будут выглядеть следующим образом:
Проверка ОС и информации о Traceroute
С помощью утилиты Nmap можно проверить даже такие параметры, как вид и версия операционной системы (ОС) удаленного хоста. Для этого предназначена опция -A
, которая также активирует обнаружение скриптов и трассировку. Команда будет выглядеть следующим образом:
Вывод включает в себя такие дополнительные данные об удаленных хостах:
- параметры TCP/IP;
- активная ОС;
- задействованные порты;
- активные службы.
Активация функции обнаружения ОС в Network Mapper
Для получения информации об операционной системе предназначены опции -O
и --osscan-guess
. Применить их можно следующим образом:
Обнаружение брандмауэра у сканируемого хоста
Утилита также способна выявлять межсетевые экраны и фильтры пакетов. Для этого предназначена опция -sA
, с которой ввод и вывод будут выглядеть так:
Проверки защищенности хоста брандмауэром
Также понять, защищен ли хост межсетевыми экранами или средствами фильтрации пакетов, можно с помощью применения опции -PN
:
Обнаружение всех активных хостов сети
Сетевому и системному администратору может быть полезно увидеть все активные хосты в сети. Сделать это очень просто — достаточно воспользоваться опцией -sP
:
Быстрое сканирование в Network Mapper
Разработчиками утилиты предусмотрена возможность экспресс-сканирования. Для этого достаточно добавить к команде опцию -F
. В таком случае будут просканированы все порты, записанные в файлы nmap-services
:
Проверка версии Network Mapper
Также можно узнать о том, какая именно версия Nmap установлена на Вашу операционную систему. Для этого достаточно добавить к команде опцию -V
:
Последовательное сканирование портов
Осуществить последовательное сканирование портов поможет опция -r
. С ней команда будет выглядеть следующим образом:
Проверка интерфейсов хоста и маршрутов
Чтобы увидеть информацию о маршрутах и интерфейсах хоста — вводим команду с опцией --iflist
:
На нашем примере хорошо видно, что утилита Nmap вывела все интерфейсы в системе и их маршруты.
Сканирование портов
С помощью Nmap можно просканировать порты на удаленном компьютере сразу несколькими способами.
Сканирование указанного порта
Можно указать определенный порт для сканирования. Для этого нужно применить опцию -p
. По умолчанию Network Mapper сканирует лишь порты TCP. Ввод и вывод будут выглядеть вот так:
Сканирование TCP-порта
Разработчиками предусмотрена возможность выполнять сканирование по типу и номеру порта TCP:
Сканирование UDP-порта
С опцией -sU
можно осуществить сканирование UDP-порта:
Сканирование нескольких разных портов
Вводим команду с опцией -p
, чтобы просканировать несколько портов, просто перечисляя их через запятую:
Сканирование портов сети из указанного диапазона
Как и в случае с IP-адресами, чтобы сканировать несколько портов достаточно просто указать их диапазон:
Проверка версий сервисов на хосте
Существует возможность проверить версии сервисов, запущенных на удаленной системе. Для этого следует добавить к команде опцию -sV
:
Сканирование удаленных хостов по методам TCP ACK(PA) и TCP Syn(PS)
Если межсетевые экраны с фильтрацией пакетов отклоняют пинг-запросы ICMP, есть другое решение — методы TCP ACK и TCP Syn. В таком случае сканирование удаленных портов можно будет выполнить следующей командой:
Поиск определенных портов удаленного хоста с помощью TCP ACK
Узнать о том, есть ли у выбранного удаленного хоста определенный порт, можно с помощью метода TCP ACK. Добавляем к команде опцию -PA
:
Поиск определенных портов удаленного хоста с помощью TCP Syn
Выявить определенные порты удаленного хоста можно и с помощью метода TCP Syn. Для этого вводим команду с опцией -PS
:
Скрытное сканирование с помощью Network Mapper
С помощью Network Mapper можно осуществить в том числе и скрытое сканирование. Просто добавляем к команде опцию -sS
:
Поиск часто используемых портов с TCP Syn
Системный администратор может вывести на экран наиболее используемые порты с помощью TCP Syn. Для этого вводим команду с опцией -sT
:
Сканирование TCP Null для обмана брандмауэра
Также предусмотрена возможность провести сканирование TCP Null:
Выводы
Установка и работа с Network Mapper — это задачи, справиться с которыми гораздо проще, чем может показаться на первый взгляд. С помощью этой утилиты можно решать широкий спектр задач, связанных с сетевым администрированием. Больше — читайте в нашей следующей статье про Nmap.
Спасибо за время, уделенное прочтению статьи о Nmap (Network Mapper)! Вам также может быть интересна статья о лучших сетевых командах в Linux.
Если возникли вопросы — задавайте их в комментариях!
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
2 комментария. Оставить новый
FedorA, в конце «a».
Спасибо! Исправили.