Nmap (Network Mapper) — свободная утилита с открытым исходным кодом, предназначенная для сканирования сетей, аудита сетевой безопасности, определения состояния объектов сканируемой сети, а также портов и соответствующих им служб. Nmap использует множество различных методов сканирования (UDP, TCP, TCP SYN, FTP, ICMP и т.д.), а также поддерживает большой набор дополнительных возможностей. Очень советуем после настройки firewall просканировать nmap вашу сеть для выявления дыр.
В этой статье мы постараемся рассказать немного об этой утилите и привести примеры команд для системных администраторов.
Установка приложения nmap
В Debian/Ubuntu/Linux Mint системах необходимо сделать следующее:
sudo apt-get install nmap
В системе RedHat/CentOS/Fedora необходимо сделать следующее:
yum install nmap
В OpenBSD необходимо сделать следующее:
pkg_add -v nmapОписывать весь синтаксис этой утилиты мы не будем, так как он довольно большой, да и всегда под рукой есть nmap –help или man nmap, а приведем примеры самых распространенных операций с небольшим описанием.
Для выполнения большинства операций nmap требуются полномочия пользователя root. При запуске nmap от имени обычного пользователя значительная часть функций будет недоступна.
Сканирование одного хоста или IP-адреса
nmap 192.168.1.1
nmap ya.ru
## -v - использовать режим "подробного отчета" ##
nmap -v ya.ru
Сканирование нескольких IP-адресов или подсети
nmap 192.168.1.1 192.168.1.2 192.168.1.3 ## Диапазон IP-адресов ##
nmap 192.168.1.1-20
nmap 192.168.1.1,2,3
## Сканировать всю подсеть ##
nmap 192.168.1.0/24
## Пропинговать диапазон адресов ##
nmap -sP 192.168.0.100-254
-sP - ping-"сканирование"
Определить операционную систему сканируемого хостаnmap –O 192.168.0.1-255
-O - эта опция позволяет определить операционную систему сканируемого хоста с помощью метода отпечатков стека TCP/IP
Сканирование службnmap -sV test.host.ru
-sV - включение режима определения версий служб, за которыми закреплены сканируемые порты.
Читайте список хостов / сетей из файлаИногда возникает потребность просканировать большое количество хостов и сетей и, для удобства, их список можно внести в текстовый документ и потом использовать.
Создадим файл net.text следующего содержания:
192.168.1.0/24 192.168.1.1/24 192.168.1.2/24
Теперь просканируем их:
nmap -iL net.txt
-iL <имя_файла> - считывает описание целевых хостов из текстового файла
Запись результат сканирование в текстовый файлnmap 192.168.0.1 > output.txt nmap -oN /usr/filename 192.168.0.1 nmap -oN output.txt 192.168.0.1
-oN <имя_файла> - записывает результаты сканирования в указанный файл в удобной для пользователя форме.
Просканировать сеть и узнать, какие сервера и устройства в рабочем состоянии (Host is up)nmap -sP 192.168.0.0/24Показать хост и маршруты
nmap –iflistСканировать определенные порты
map -p [port] hostName ## Сканировать TCP порт 80 ## nmap -p T:80 192.168.1.1
## Сканировать UDP порт 19 ## nmap -p U:19 192.168.1.1
## Сканировать несколько портов ## nmap -p 80,443 192.168.1.1
## Сканировать диапазон портов ## nmap -p 80-200 192.168.1.1
## Комбинированное сканирование ## nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1
## Сканировать все порты ## nmap -p "*" 192.168.1.1
Nmap распознаёт шесть состояний портов:
open - открыт
closed - закрыт
filtered - порт недоступен, скорее всего фильтруется файрволом
unfiltered - порт доступен, но состояние определить не удалось
open|filtered - открыт или фильтруется файрволом
closed|filtered - закрыт или фильтруется файрволом
nmap -sU 192.168.0.1 nmap -sT 192.168.0.1
-sU - сканировать UDP-порты
-sT - общий метод сканирования TCP-портов
Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.