nmap
— это инструмент сетевого сканирования, который можно использовать для решения целого ряда задач сетевого обнаружения, включая сканирование портов, перечисление служб и снятие отпечатков пальцев ОС.
Чтобы установить nmap
на Ubuntu или Raspbian, используйте:
sudo apt-get install nmap
Для версий Linux, использующих yum
, например Fedora, запустите это от имени пользователя root:
yum install nmap
Самый простой вызов — просто указать имя хоста или IP-адрес компьютера, который вы хотите сканировать. nmap
затем просканирует компьютер, чтобы увидеть, какие порты открыты. Например:
nmap 192.168.1.101
Все соединения TCP/IP используют номер порта для уникальной идентификации каждой сетевой службы. Например, соединения веб-браузера выполняются через порт 80; электронные письма отправляются через порт 25 и загружаются через порт 110; безопасные соединения оболочки выполняются через порт 22; и так далее. Когда nmap
выполняет сканирование портов, он показывает, какие порты открыты и могут принимать соединения. В свою очередь, это указывает, какие службы запущены на удаленном компьютере.
С точки зрения безопасности, чем меньше служб запущено на хосте, тем более он безопасен. Это связано с тем, что здесь меньше «дыр», которые злоумышленник может использовать для попытки получить доступ к машине. Это также полезный способ предварительно проверить, работает ли служба (и принимает ли соединения). Быстрое сканирование моего сервера Ubuntu выглядит так:
Чтобы узнать, какое программное обеспечение обеспечивает сервер за каждым из открытых портов, используйте параметр -sV
:
nmap -sV 192.168.1.101
Вот результаты с Raspberry Pi:
nmap
правильно обнаружил, что сервер OpenSSH используется для предоставления службы SSH на Pi. Инструмент также отмечает, что Pi работает под управлением Linux!
nmap
может выполнять расширенное обнаружение операционной системы с помощью параметра -O
. Для обнаружения операционной системы nmap
необходимо запустить с правами root. Для Ubuntu и Raspbian:
sudo nmap -O 192.168.1.43
Вот результат сканирования, выполненного на компьютере с Windows XP:
Если вы хотите сканировать более одного хоста одновременно, nmap
позволяет вам указать несколько адресов или использовать диапазоны адресов. Чтобы просканировать более одного хоста, просто добавьте дополнительные адреса в список параметров (каждый из которых разделен ПРОБЕЛОМ). Например, для сканирования открытых портов на 192.168.1.1, 192.168.1.4 и 192.168.1.43 используйте:
nmap 192.168.1.1 192.168.1.4 192.168.1.43
Чтобы указать диапазон адресов, используйте символ тире. Например, для сканирования первых пяти хостов в вашей сети вы можете использовать:
nmap 192.168.1.1-5
Вывод будет выглядеть примерно так:
Первый найденный хост — это маршрутизатор, предоставленный моим интернет-провайдером (по адресу 192.168.1.1), а второй — мой Raspberry Pi (по адресу 192.168.1.4).
Кулинарная книга и краткое изложение
Хотя nmap
прост в использовании, он предлагает ряд расширенных функций. В следующей части этой серии будут затронуты некоторые более сложные варианты использования, но в заключение приведем краткий список других команд, которые могут оказаться вам полезными:
Чтобы проверить, открыт ли определенный порт, используйте -p
, за которым следует номер или имя порта, например:
nmap -p ssh 192.168.1.4
Его можно комбинировать с флагом -sV
, чтобы определить версию программного обеспечения, подключенного к этому порту:
nmap -p ssh -sV 192.168.1.4
Чтобы узнать, какие хосты активны в вашей сети, используйте флаг -sn
. Это будет просто ping
хостов, указанных в диапазоне адресов. Например:
nmap -sn 192.168.1.1-254
В заключение следует предостеречь: не запускайте сканирование хостов, которые вы не контролируете или не имеете разрешения на сканирование. Чрезмерное сканирование может быть расценено как атака или может привести к ненужному нарушению работы служб.
Изображение предоставлено: оптоволоконный сетевой сервер от BigStockPhoto