Первое знакомство с инструментом Nmap для системных администраторов

Базовые сведения о программном продукте для проверки безопасности системы

Nmap — это сканер портов с открытым исходным кодом для Linux® и для многих других платформ, помогающий существенно укрепить безопасность вашей системы. В статье излагаются базовые сведения о продукте Nmap для системных администраторов и описывается порядок его использования.

Брайан Смит, системный администратор, специалист

Photo of Brian SmithБрайан Смит (Brian Smith) – системный администратор UNIX/Linux. Живет в г. Колорадо-Спрингс, штат Колорадо, с женой и двумя детьми. Брайан работал с IBM AIX последние семь лет. В его профессиональные обязанности входят работа с AIX, Linux и IBM PowerVM, написание сценариев, а также программирование на Perl. Узнать больше о Брайане и о его работе вы можете из блога Brian Smith's AIX / UNIX / Linux / Open Source blog (EN).



25.08.2014

Nmap — это мощный инструмент, который можно использовать в различных целях, например, для сканирования состояния безопасности или для обнаружения серверов в сети. Продукт имеет открытый исходный код и доступен бесплатно для всех основных платформ, включая операционные системы Linux, IBM® AIX®, Mac OS X и Microsoft® Windows®. В статье описываются основные возможности Nmap и рассматриваются некоторые способы использования этого инструмента системными администраторами.

Внимание!

Соблюдайте осмотрительность при экспериментах с инструментом Nmap и при его практическом применении. Многие организации осуществляют постоянный мониторинг своих серверов на предмет воздействия на них инструментов, подобных Nmap. ИТ-менеджеры нередко считают применение Nmap враждебным действием, поскольку этот инструмент можно использовать для зондирования сети с целью выявления уязвимостей в системе защиты. Используйте инструмент Nmap только после получения надлежащего письменного разрешения от владельца системы. При использовании инструмента Nmap в рабочей среде вы должны быть абсолютно уверены в том, что у вас есть письменное разрешение от ИТ-менеджеров на выполнение соответствующих мероприятий.

Установка

В большинстве дистрибутивов Linux инструмент Nmap доступен в виде пакета в репозитарии соответствующего дистрибутива. Например, в среде Red Hat Enterprise Linux для установки Nmap достаточно выполнить команду yum install nmap. В среде Debian (и в родственных средах, таких как Ubuntu) для установки Nmap выполните команду apt-get install nmap.

Макл Перзл (Michael Perzl) создал Nmap-пакет для AIX (соответствующая ссылка приведена в разделе Ресурсы. Если вы работаете в среде Windows или Mac OS X, вы сможете загрузить официальные версии инструмента Nmap с его веб-сайта (соответствующая ссылка приведена в разделе Ресурсы).

Указание хостов или сетей для сканирования

В командной строке инструмента Nmap должен быть указан список хостов или сетей, с которыми он должен работать. Для этого имеется несколько опций.

  1. Список отдельных имен серверов или IP-адресов. Примеры: "server1" — сканирование только хоста с именем server1; "192.168.0.240" — сканирование только хоста с IP-адресом 192.168.0.240.
  2. Список всей сети в формате CIDR. Примеры: "192.168.0.0/24" — сканирование 256 адресов в диапазоне от 192.168.0.0 до 192.168.0.255; "10.0.0.0/8" – сканирование 16 млн. адресов в диапазоне от 10.0.0.0 до 10.255.255.255.
  3. Диапазон IP-адресов. Примеры: "192.168.0.50-95" — сканирование 46 IP-адресов в диапазоне от 192.168.0.50 до 192.168.0.95.
  4. Использование флага -iL для указания текстового файла, содержащего список хостов или сетей для сканирования.
  5. Использование группового символа *. Примеры: 192.168.0.* — сканирование 256 адресов в диапазоне от 192.168.0.0 до 192.168.0.255.
  6. Расширенные опции, позволяющие просканировать сеть на основе имени хоста. Примеры: "example.com/24" — сканирование подсети класса C любой сети, в которой присутствует хост example.com.

В командной строке можно указать несколько хостов в разных форматах. Примеры: запись "server1 192.168.0.6 10.0.0.0/8" означает хост server1, IP-адрес 192.168.0.6 и 16 млн. адресов в сети 10.0.0.0/8.

Верификация заданных хостов

Соблюдайте максимальную осторожность; сканируйте только те хосты и IP-адреса, на сканирование которых у вас есть разрешение. Чтобы получить список объектов для сканирования, выполните команду nmap -n -sL, сопровождаемую списком хостов или сетей. Флаг -n дает указание не выполнять обратный запрос имен, а опция -sL указывает Nmap вывести список IP-адресов, которые будут просканированы. Таким образом, команда nmap -n -sL ничего не посылает в сеть; она просто выводит список объектов, которые инструмент Nmap просканировал бы в случае реального сканирования. Рекомендуется выполнить эту команду перед началом сканирования, чтобы убедиться в том, что вы будете сканировать только то, что собирались. В примере на рис. 1 заданы хосты "linux1" и "192.168.0.200-210". Опции -n -sL заставляют инструмент Nmap — не осуществляя контакта ни с одним из хостов — вывести список из 12 адресов хостов, подлежащих сканированию.

Рисунок 1. Верификация заданных хостов перед выполнением реального сканирования
Scan only what you intend to scan

Обнаружение серверов в сети

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

Одна из простейших операций Nmap — обратный запрос имен для диапазона IP-адресов. Например, чтобы увидеть, имеют ли какие-либо хосты в подсети 192.168.0.0/24 записи типа reverse DNS, можно выполнить команду nslookup для каждого из этих 256 адресов — или же осуществить всю эту работу с помощью инструмента Nmap. С этой целью просто задайте флаг -sL, который дает инструменту Nmap указание вывести список IP-адресов и разрешенных имен хостов, подлежащих сканированию. Соответствующий пример приведен на рис. 2.

Рисунок 2. Демонстрация DNS-имен серверов
The -sL flag tells Nmap to list IP data for scanning

Как показано на рис. 2, если вы укажете инструменту Nmap осуществить обратный запрос DNS-имен для семи адресов в диапазоне от 192.168.0.139 до 192.168.0.145, Nmap сделает это и покажет соответствующие имена в виде своей выходной информации. Несколько IP-адресов не имеют DNS-имен, поэтому в списке они представлены без имен.

Ping-сканирование— это удобная функция для определения того, сколько IP-адресов используется и доступно в адресном пространстве, а также для инвентаризации хостов, присутствующих в сети. Ping-сканирование подобно выполнению команды ping для одного IP-адреса с целью проверки его реакции, однако инструмент Nmap способен сделать это в более крупном масштабе и быстро.

При выполнении ping-сканирования Nmap отправляет ICMP-пакет (Internet Control Message Protocol) (ping), а также запрашивает порты 80 и 443 (которые широко используются веб-серверами). Если IP-адрес отвечает на какой-либо из этих запросов, то соответствующий хост считается функционирующим. Для выполнения ping-сканирования с помощью Nmap задайте флаг -sn. На рис. 3 показаны результаты ping-сканирования для адресов 192.168.0.245 — 192.168.0.250. Инструмент Nmap обнаружил, что некоторые из этих хостов функционируют, и сообщил об этом. Обратите внимание, что, если вы осуществляете сканирование в той же подсети, в которой находитесь сами, то Nmap также сообщает MAC-адрес системы и даже говорит, на какую компанию зарегистрирован этот MAC-адрес. Эта функциональность помогает определить, какие аппаратные средства используются в системе.

Рисунок 3. Ping-сканирование с помощью Nmap
Ping scan helps determine machine hardware

Базовое сканирование портов

Nmap — это в первую очередь сканер портов. Каждый сетевой сервис в системе "прослушивает" сетевые порты в диапазоне от 1 до 65535. Например, сервис SSH (Secure Shell) прослушивает порт 22, а HTTP-сервис (Hypertext Transfer Protocol) веб-сервера прослушивает порт 80. Сканер портов, такой как Nmap, пытается установить соединения с портами по IP-адресу с целью обнаружения работающих сетевых сервисов.

Сканер портов очень полезен потому, что один из важнейших принципов хорошей защиты системы состоит в отключении неиспользуемых сервисов. Каждый исполняющийся на сервере сервис — это потенциальная цель для атаки. Каждый день выявляются все новые уязвимости системы безопасности; при этом весьма часто причина состоит в уязвимости определенного сетевого сервиса. Если вам не нужен какой-либо сетевой сервис — отключите его! Nmap помогает установить, какие сервисы работают на одиночном хосте или на каждом хосте вашей среды.

Например, если в вашей среде для доступа к серверам используется сервис SSH, вам следует отключить сервис Telnet. В результате пользователи не смогут обращаться к сервису Telnet, который отправляет пароли в виде открытого текста. Кроме того, если в Telnet будет выявлена новая уязвимость, она не повлияет на вашу среду, если этот сервис не исполняется.

Самый простой способ осуществления сканирования портов с помощью Nmap — выполнить команду nmap, сопровождаемую списком имен серверов, IP-адресов или диапазонов IP-адресов (см. рис. 4).

Рисунок 4. Базовое сканирование портов с помощью Nmap
Run the nmap command for Nmap port scan

На рис. 4 показаны результаты базового сканирования портов с помощью Nmap для IP-адреса 192.168.0.245. В случае выполнения этой команды без каких-либо опций, Nmap сканирует 1000 портов, которые используются чаще других. Вы можете дать инструменту Nmap указание проверить все 65535 портов на хосте с данным IP-адресом; однако это занимает очень много времени, поэтому по умолчанию Nmap сканирует лишь 1000 наиболее используемых портов. Как показано на рис. 4, инструмент Nmap нашел пять открытых портов по данному IP-адресу (22, 442, 2301, 5989, 8899).

Инструмент Nmap предоставляет десятки опций, позволяющих контролировать практически все аспекты выполнения сканирования портов. Например, опция -p0- задает сканирование всех 65535 портов вместо сканирования 1000 портов по умолчанию.

Кроме того, имеются опции для управления типом сканирования, скоростью сканирования и т. д. Дополнительную информацию о других опциях можно получить в веб-руководстве по инструменту Nmap.


Обнаружение операционной системы

Функция обнаружения операционной системы позволяет инструменту Nmap попытаться определить, какая операционная система исполняется на устройстве. Эта функция может оказаться полезной, если вы нашли в своей сети какой-то IP-адрес, но не знаете, что это такое, или желаете провести инвентаризацию. Для активации этой функции предназначена опция -O. В примере на рис. 5 инструмент Nmap правильно определил, что на сервере исполняется операционная система IBM AIX.

Рисунок 5. Обнаружение операционной системы с помощью Nmap
Activating Nmap OS detection

Обнаружение версии сервиса

По умолчанию при выполнении сканирования инструмент Nmap просто сообщает, какие порты открыты, и перечисляет имена типовых сервисов для этих портов. Например, если у сервера открыт порт 21, то Nmap сообщает о нем, как о сервисе FTP (File Transfer Protocol). Однако ничего не мешает системному администратору запустить на порту 21 не FTP-сервер, а, например, веб-сервер. Соответственно, в таком случае результаты сканирования Nmap по умолчанию будут ошибочными.

Nmap поддерживает функцию под названием version detection (обнаружение версии), которая преодолевает вышеописанную проблему. Эта функция не только обнаруживает, какие именно порты открыты, но и зондирует эти порты с целью определения сервиса, работающего на определенном порту, и версии этого сервиса. Эта функциональность полезна при аудите ИТ-среды, имеющем целью обеспечить наличие на всех серверах лишь стандартных и утвержденных версий сетевых сервисов.

Для сканирования с обнаружением версии задайте опцию -A. На рис. 6 показаны результаты сканирования с этой опцией. Обратите внимание на отличия результатов на рис. 6 с активированной опцией -A от результатов на рис. 5 без этой опции.

Рисунок 6. Обнаружение версии с помощью Nmap
Enabling Nmap version detection

Кликните, чтобы увидеть увеличенное изображение

Рисунок 6. Обнаружение версии с помощью Nmap

Enabling Nmap version detection

На рис. 6 показано, что при сканировании с обнаружением сервисов инструмент Nmap выводит следующую информацию: на сервере исполняется сервис OpenSSH version 5.8, AIX-версии сервисов ftpd и telnetd и т. д.


Заключение

В данной статье рассмотрены лишь базовые сведения о программном продукте Nmap, позволяющие приступить к работе с ним. Nmap — это мощный и функционально насыщенный инструмент, способный делать гораздо больше, чем описано в этой статье. Начав использовать Nmap, вы убедитесь, насколько это полезный и незаменимый инструмент для каждого системного администратора платформ Linux и UNIX®.

Ресурсы

Научиться

  • Оригинал статьи: Getting started with Nmap for system administrators.
  • Более подробную информацию о Nmap можно получить на официальном веб-сайте Nmap.
  • Датчик Stack Scan использует Nmap для сбора данных о целях для несанкционированного обнаружения. Узнайте, как сконфигурировать Nmap.
  • Установка Nmap с датчиком Stack Scan.
  • Использование мастера Nmap Scan Wizard.
  • Следите на веб-сайте developerWorks за техническими мероприятиями и трансляциями, посвященными различным продуктам IBM и актуальным темам ИТ-отрасли.
  • Следите за developerWorks в Твиттере.
  • Смотрите на веб-сайте developerWorks демонстрации "по запросу", охватывающие диапазон от установки и настройки продуктов демонстраций для новичков до углубленных функциональных возможностей для опытных разработчиков.

Получить продукты и технологии

  • Загрузите инструмент Nmap, чтобы посмотреть, как он работает.
  • Получите пакет Nmap для AIX на сайте Макла Перзла (Michael Perzl).
  • Оцените продукты IBM наиболее удобным для вас способом. Загрузите ознакомительные версии программных продуктов, воспользуйтесь их онлайновыми пробными версиями или примените продукты в облачной среде.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=981326
ArticleTitle=Первое знакомство с инструментом Nmap для системных администраторов
publish-date=08252014