Nmap (Network Mapper) — это стандартный инструмент для сканирования сетей, обнаружения хостов, открытых портов, версий служб и операционных систем. Он незаменим для аудита безопасности (проверка открытых портов), тестирования фаерволов, инвентаризации сети и даже для поиска устройств в локальной сети. Главные сложности для новичка: нужно понимать разницу между APT-версией (стабильна, но может быть старой) и сборкой из исходников (свежая, с новыми NSE-скриптами, но требует компиляции). Также некоторые типы сканирования (SYN-сканирование, определение ОС) требуют прав root.
💡 В этом руководстве вы установите Nmap на Debian двумя способами: через APT (рекомендованный) и сборкой из исходников (если нужна последняя версия). Вы также узнаете основы работы с Nmap, как интерпретировать результаты и решать типичные проблемы.
В этой статье вы узнаете:
- Как установить Nmap через APT (рекомендовано)
- Как собрать Nmap из исходников (актуальная версия)
- Как создать скрипт для обновления source-сборки
- Основные команды Nmap: сканирование портов, определение служб, ОС
- Как интерпретировать состояния портов (open, closed, filtered)
- Как решить типичные проблемы: permission denied, команда не найдена, ошибки зависимостей
Для кого: системные администраторы, специалисты по безопасности, разработчики, а также все, кто хочет изучить свою сеть на Debian 11, 12 или 13.
1. 🔧 Предварительные требования
Перед установкой убедитесь, что:
- У вас установлена Debian 11, 12 или 13
- Подключение к интернету стабильно
- У вас есть права sudo
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.
Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
1.1 Обновление системы
Перед установкой всегда обновляйте список пакетов.
sudo apt update && sudo apt upgrade -y
Что делает:
sudo— права суперпользователяapt update— обновляет список доступных пакетов из репозиториев&&— выполняет следующую команду только если предыдущая успешнаapt upgrade -y— обновляет все установленные пакеты до последних версий
Зачем: Это стандартная практика безопасности перед установкой нового ПО.
2. 📊 Сравнение способов установки Nmap
В Debian есть два основных способа установки Nmap. Вот их сравнение:
| Метод | Откуда | Версия | Обновления | Плюсы | Минусы |
|---|---|---|---|---|---|
| APT рекомендовано | Репозитории Debian | Debian 13: 7.95, Debian 12: 7.93, Debian 11: 7.80 | Автоматически через apt upgrade | Простота, безопасность, минимум усилий | Версия может быть старой, особенно на Debian 11 |
| Сборка из исходников | Nmap.org | Последняя стабильная | Вручную (скрипт) | Максимальная свежесть, новые NSE-скрипты | Требует установки инструментов сборки, ручное обновление |
💡 Рекомендация: Для большинства пользователей подойдёт APT. Сборку из исходников выбирайте, если вам нужна самая свежая версия Nmap или новые NSE-скрипты, которых нет в репозитории.
3. 📦 Способ 1: Установка Nmap через APT (рекомендованный)
Этот способ подходит для большинства пользователей. Вы получаете стабильную версию, протестированную для вашего выпуска Debian.
3.1 Установка пакета
sudo apt install nmap -y
Что делает: Устанавливает Nmap из официальных репозиториев Debian.
3.2 Проверка версии
nmap --version
✅ Ожидаемый вывод в терминале (Debian 13):
Nmap version 7.95 ( https://nmap.org )
Какие версии в разных Debian:
| Версия Debian | Версия Nmap |
|---|---|
| Debian 13 (Trixie) | 7.95 |
| Debian 12 (Bookworm) | 7.93 |
| Debian 11 (Bullseye) | 7.80 |
4. 🔧 Способ 2: Сборка Nmap из исходников (актуальная версия)
Этот способ подходит, если вам нужна самая свежая версия Nmap (с новыми NSE-скриптами).
4.1 Установка инструментов сборки и зависимостей
sudo apt install build-essential libssh2-1-dev libssl-dev libpcre2-dev wget ca-certificates curl -y
Что делает: Устанавливает компилятор, утилиты и библиотеки для поддержки SSH, SSL, PCRE и других функций.
4.2 Определение последней версии и скачивание исходников
NMAP_VER=$(curl -s https://nmap.org/download.html | grep -oP 'nmap-\d+\.\d+\.tar\.bz2' | head -1 | grep -oP '\d+\.\d+')
wget "https://nmap.org/dist/nmap-${NMAP_VER}.tar.bz2"
Что делает: Запрашивает страницу загрузки Nmap.org, извлекает номер последней версии и скачивает архив.
4.3 Распаковка и конфигурация
tar -xjf nmap-*.tar.bz2
cd nmap-*/
./configure --with-localdirs
Что делает: Распаковывает архив, переходит в директорию с исходниками и настраивает сборку.
4.4 Компиляция и установка
make -j$(nproc)
sudo make install
Что делает: Компилирует Nmap (используя все ядра) и устанавливает в систему.
4.5 Проверка установки
nmap --version
✅ Ожидаемый вывод: Более новая версия, чем в APT (например, 7.98).
4.6 Создание скрипта для обновления source-сборки
sudo tee /usr/local/bin/update-nmap > /dev/null << 'EOF'
#!/bin/bash
set -e
for cmd in curl wget tar make; do
if ! command -v $cmd &>/dev/null; then
echo "Ошибка: $cmd не установлен."
exit 1
fi
done
CURRENT_VER=$(nmap --version 2>/dev/null | grep -oP 'Nmap version \K[\d.]+' || echo "0")
LATEST_VER=$(curl -s https://nmap.org/download.html | grep -oP 'nmap-\d+\.\d+\.tar\.bz2' | head -1 | grep -oP '\d+\.\d+')
if [ -z "$LATEST_VER" ]; then
echo "Ошибка: не удалось определить последнюю версию."
exit 1
fi
echo "Текущая версия: $CURRENT_VER"
echo "Последняя версия: $LATEST_VER"
if [ "$CURRENT_VER" = "$LATEST_VER" ]; then
echo "Nmap уже последней версии."
exit 0
fi
echo "Обновление с $CURRENT_VER до $LATEST_VER..."
BUILD_DIR=$(mktemp -d)
cd "$BUILD_DIR"
wget -q "https://nmap.org/dist/nmap-${LATEST_VER}.tar.bz2"
tar -xjf nmap-*.tar.bz2
cd nmap-*/
./configure --with-localdirs >/dev/null
make -j$(nproc) >/dev/null
sudo make install >/dev/null
NEW_VER=$(nmap --version | grep -oP 'Nmap version \K[\d.]+')
echo "Успешно обновлён до Nmap $NEW_VER"
rm -rf "$BUILD_DIR"
EOF
sudo chmod +x /usr/local/bin/update-nmap
Запуск обновления:
sudo update-nmap
5. 📡 Основные команды Nmap
5.1 Сканирование одного хоста
nmap 192.168.1.1
5.2 Сканирование диапазона портов
nmap -p 80,443,8080 192.168.1.1
nmap -p 1-1000 192.168.1.1
5.3 Определение версий служб
nmap -sV 192.168.1.1
5.4 Определение операционной системы (требует sudo)
sudo nmap -O 192.168.1.1
5.5 SYN-сканирование (быстрое, требует sudo)
sudo nmap -sS 192.168.1.1
5.6 Сканирование всей локальной сети
nmap 192.168.1.0/24
6. 📖 Понимание состояний портов
| Состояние | Значение |
|---|---|
open | Порт открыт, приложение принимает соединения |
closed | Порт доступен, но ничего не слушает |
filtered | Порт отфильтрован фаерволом (Nmap не получил ответ) |
unfiltered | Порт доступен, но Nmap не может определить, открыт он или закрыт |
7. ⚠️ Решение типичных проблем
7.1 Ошибка: nmap: command not found
Симптом: Команда nmap не найдена.
Причина: Nmap не установлен.
Решение: Установите через APT (раздел 3) или соберите из исходников.
7.2 Ошибка: Permission denied при использовании -O или -sS
Симптом: nmap -O 192.168.1.1 выдаёт Operation not permitted.
Причина: SYN-сканирование и определение ОС требуют raw-сокетов.
Решение: Используйте sudo:
sudo nmap -O 192.168.1.1
7.3 Ошибка компиляции: missing libssl-dev
Симптом: ./configure выдаёт ошибку о недостающей библиотеке OpenSSL.
Решение:
sudo apt install libssl-dev -y
./configure
8. ❌ Удаление Nmap
Удаление APT-версии
sudo apt remove --purge nmap -y
sudo apt autoremove -y
Удаление source-сборки
cd ~/nmap-*/
sudo make uninstall
rm -rf ~/nmap-*
sudo rm -f /usr/local/bin/update-nmap
Проверка удаления
command -v nmap
✅ Ожидаемый вывод: Пустая строка.
9. 📝 Чек-лист: всё готово к работе
- [ ] Система обновлена (
sudo apt update && sudo apt upgrade -y) - [ ] Выбран и выполнен один из способов установки (APT / Source)
- [ ]
nmap --versionпоказывает ожидаемую версию - [ ]
nmap localhostвыполняется без ошибок - [ ]
sudo nmap -O localhostработает (определяет ОС) - [ ] (Для source-сборки) Скрипт обновления работает (
sudo update-nmap)
Заключение
Вы установили Nmap на Debian. Если вы выбрали APT — получили стабильную, проверенную версию, которая будет обновляться вместе с системой. Если собрали из исходников — получили самую свежую версию с новыми NSE-скриптами, которую можно обновлять скриптом из раздела 4.6. Nmap — это мощный инструмент для исследования сетей, аудита безопасности и диагностики. Главное, что нужно запомнить: для SYN-сканирования и определения ОС требуются права root.
Что дальше:
- Изучите официальную документацию Nmap
- Попробуйте NSE-скрипты:
nmap --script vuln 192.168.1.1(сканирование уязвимостей) - Используйте Nmap для проверки своего фаервола
- Совместите с Wireshark для анализа трафика и с Chkrootkit для проверки безопасности