Установка Nmap на Debian 13, 12, 11: подробное руководство

Nmap (Network Mapper) — это стандартный инструмент для сканирования сетей, обнаружения хостов, открытых портов, версий служб и операционных систем. Он незаменим для аудита безопасности (проверка открытых портов), тестирования фаерволов, инвентаризации сети и даже для поиска устройств в локальной сети. Главные сложности для новичка: нужно понимать разницу между APT-версией (стабильна, но может быть старой) и сборкой из исходников (свежая, с новыми NSE-скриптами, но требует компиляции). Также некоторые типы сканирования (SYN-сканирование, определение ОС) требуют прав root.

💡 В этом руководстве вы установите Nmap на Debian двумя способами: через APT (рекомендованный) и сборкой из исходников (если нужна последняя версия). Вы также узнаете основы работы с Nmap, как интерпретировать результаты и решать типичные проблемы.

В этой статье вы узнаете:

  • Как установить Nmap через APT (рекомендовано)
  • Как собрать Nmap из исходников (актуальная версия с проверкой SHA256)
  • Как создать скрипт для обновления source-сборки (с обработкой Debian 11)
  • Основные команды 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
рекомендовано
Репозитории DebianDebian 13: 7.95,
Debian 12: 7.93,
Debian 11: 7.80
Автоматически
через
apt upgrade
Простота,
безопасность,
минимум
усилий
Версия может
быть старой,
особенно на
Debian 11
Сборка из
исходников
Nmap.orgПоследняя
стабильная
Вручную
(скрипт с
проверкой SHA256)
Максимальная
свежесть,
новые
NSE-скрипты
Требует
установки
инструментов
сборки,
ручное
обновление

💡 Рекомендация: Для большинства пользователей подойдёт APT. Сборку из исходников выбирайте, если вам нужна самая свежая версия Nmap или новые NSE-скрипты, которых нет в репозитории.

3. 📦 Способ 1: Установка Nmap через APT (рекомендованный)

Этот способ подходит для большинства пользователей. Вы получаете стабильную версию, протестированную для вашего выпуска Debian.

3.1 Установка пакетов

sudo apt install nmap -y

Что делает: Устанавливает Nmap из официальных репозиториев Debian.

Дополнительные инструменты (опционально):

sudo apt install ncat ndiff -y

Что делает: ncat — это улучшенная версия nc (netcat), а ndiff — инструмент для сравнения результатов сканирования.

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

3.3 Проверка, что Nmap в PATH

command -v nmap

Ожидаемый вывод: /usr/bin/nmap

4. 🔧 Способ 2: Сборка Nmap из исходников (актуальная версия)

Этот способ подходит, если вам нужна самая свежая версия Nmap (с новыми NSE-скриптами).

4.1 Установка инструментов сборки и зависимостей

sudo apt install build-essential libssh2-1-dev libssl-dev libpcre2-dev wget ca-certificates curl bzip2 -y

Что делает: Устанавливает компилятор, утилиты и библиотеки для поддержки SSH, SSL, PCRE и других функций.

4.2 Определение последней версии, скачивание и проверка SHA256

cd /tmp
NMAP_ARCHIVE=$(curl -fsSL https://nmap.org/download.html | grep -Eo 'nmap-[0-9]+\.[0-9]+\.tar\.bz2' | sort -V | tail -n 1)
NMAP_VER=${NMAP_ARCHIVE#nmap-}
NMAP_VER=${NMAP_VER%.tar.bz2}
echo "Последняя версия: $NMAP_VER"

curl -fLO "https://nmap.org/dist/$NMAP_ARCHIVE"
curl -fLo "$NMAP_ARCHIVE.digest.txt" "https://nmap.org/dist/sigs/$NMAP_ARCHIVE.digest.txt"

NMAP_SHA256=$(awk '
/SHA256 =/ {
  sub(/^.*SHA256 = /, "")
  gsub(/[[:space:]]/, "")
  hash = $0
  getline
  gsub(/[[:space:]]/, "")
  hash = hash $0
  print tolower(hash)
  exit
}
' "$NMAP_ARCHIVE.digest.txt")

printf '%s  %s\n' "$NMAP_SHA256" "$NMAP_ARCHIVE" | sha256sum -c -

Ожидаемый вывод: nmap-7.99.tar.bz2: OK

Что делает: Проверяет целостность скачанного архива. Если контрольная сумма не совпадает — файл повреждён.

4.3 Распаковка и конфигурация с учётом версии Debian

tar -xjf "$NMAP_ARCHIVE"
cd "nmap-$NMAP_VER"

CONFIGURE_FLAGS=(--with-localdirs)
. /etc/os-release
if [ "${ID:-}" = "debian" ] && [ "${VERSION_ID%%.*}" = "11" ]; then
  echo "Debian 11 detected: compiling without OpenSSL support"
  CONFIGURE_FLAGS+=(--without-openssl)
fi

./configure "${CONFIGURE_FLAGS[@]}"

Что делает: Настраивает сборку. Для Debian 11 отключает OpenSSL (из-за проблем совместимости с Nmap 7.99).

4.4 Компиляция и установка

make -j$(nproc)
sudo make install

Что делает: Компилирует Nmap (используя все ядра) и устанавливает в систему.

4.5 Проверка установки

command -v nmap
nmap --version

Ожидаемый вывод: /usr/local/bin/nmap и версия (например, 7.99).

4.6 Создание скрипта для обновления source-сборки (с проверкой SHA256 и поддержкой Debian 11)

sudo tee /usr/local/bin/update-nmap > /dev/null << 'EOF'
#!/bin/bash
set -euo pipefail

if [ "${EUID:-$(id -u)}" -ne 0 ]; then
    echo "Запускайте скрипт с sudo: sudo update-nmap"
    exit 1
fi

for cmd in curl wget tar make sha256sum grep awk; do
    if ! command -v "$cmd" >/dev/null 2>&1; then
        echo "Ошибка: $cmd не установлен."
        exit 1
    fi
done

CONFIGURE_FLAGS=(--with-localdirs)
if [ -r /etc/os-release ]; then
    . /etc/os-release
    if [ "${ID:-}" = "debian" ] && [ "${VERSION_ID%%.*}" = "11" ]; then
        echo "Debian 11 detected: compiling without OpenSSL support"
        CONFIGURE_FLAGS+=(--without-openssl)
    fi
fi

NMAP_ARCHIVE=$(curl -fsSL https://nmap.org/download.html | grep -Eo 'nmap-[0-9]+\.[0-9]+\.tar\.bz2' | sort -V | tail -n 1)
if [ -z "$NMAP_ARCHIVE" ]; then
    echo "Ошибка: не удалось определить последнюю версию."
    exit 1
fi

NMAP_VER=${NMAP_ARCHIVE#nmap-}
NMAP_VER=${NMAP_VER%.tar.bz2}
CURRENT_VER=$({ /usr/local/bin/nmap --version 2>/dev/null || true; } | awk '/^Nmap version / {print $3; exit}')
CURRENT_VER=${CURRENT_VER:-0}

echo "Текущая версия: $CURRENT_VER"
echo "Последняя версия: $NMAP_VER"

if [ "$CURRENT_VER" = "$NMAP_VER" ]; then
    echo "Nmap уже последней версии."
    exit 0
fi

BUILD_DIR=$(mktemp -d)
trap 'rm -rf "$BUILD_DIR"' EXIT
cd "$BUILD_DIR"

curl -fLO "https://nmap.org/dist/$NMAP_ARCHIVE"
curl -fLo "$NMAP_ARCHIVE.digest.txt" "https://nmap.org/dist/sigs/$NMAP_ARCHIVE.digest.txt"

NMAP_SHA256=$(awk '
/SHA256 =/ {
  sub(/^.*SHA256 = /, "")
  gsub(/[[:space:]]/, "")
  hash = $0
  getline
  gsub(/[[:space:]]/, "")
  hash = hash $0
  print tolower(hash)
  exit
}
' "$NMAP_ARCHIVE.digest.txt")
if [ -z "$NMAP_SHA256" ]; then
    echo "Ошибка: не удалось извлечь SHA256 из файла контрольной суммы."
    exit 1
fi

echo "Проверка контрольной суммы..."
printf '%s  %s\n' "$NMAP_SHA256" "$NMAP_ARCHIVE" | sha256sum -c -

tar -xjf "$NMAP_ARCHIVE"
cd "nmap-$NMAP_VER"
./configure "${CONFIGURE_FLAGS[@]}"
make -j"$(nproc)"
make install

echo "Обновление завершено!"
/usr/local/bin/nmap --version
EOF

sudo chmod 0755 /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 или libpcap-dev

Симптом: ./configure выдаёт ошибку о недостающей библиотеке.

Решение:

sudo apt install libssl-dev libpcap-dev -y
./configure

7.4 Ошибка компиляции на Debian 11 (OpenSSL)

Симптом: Сборка Nmap 7.99 на Debian 11 падает с ошибкой в nse_ssl_cert.cc.

Причина: Nmap 7.99 не компилируется с OpenSSL на Debian 11.

Решение: Скрипт из раздела 4.6 автоматически определит Debian 11 и добавит флаг --without-openssl. Если вы собираете вручную, используйте:

./configure --with-localdirs --without-openssl

7.5 Nmap установлен, но команда не найдена

Симптом: nmap --version не работает, но sudo /usr/local/bin/nmap --version работает.

Причина: Директория /usr/local/bin не добавлена в PATH (редко, но бывает).

Решение: Временно:

export PATH=/usr/local/bin:$PATH

Постоянно: добавьте в ~/.bashrc:

echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

8. ❌ Удаление Nmap

Удаление APT-версии

sudo apt remove --purge nmap ncat ndiff -y
sudo apt autoremove -y

Удаление source-сборки

sudo rm -f /usr/local/bin/nmap /usr/local/bin/ncat /usr/local/bin/nping
sudo rm -f /usr/local/bin/update-nmap
sudo rm -rf /usr/local/share/nmap

Проверка удаления

command -v nmap

Ожидаемый вывод: Пустая строка.

9. 📝 Чек-лист: всё готово к работе

  • [ ] Система обновлена (sudo apt update && sudo apt upgrade -y)
  • [ ] Выбран и выполнен один из способов установки (APT / Source)
  • [ ] nmap --version показывает ожидаемую версию
  • [ ] command -v nmap показывает правильный путь (/usr/bin/nmap для APT, /usr/local/bin/nmap для Source)
  • [ ] nmap localhost выполняется без ошибок
  • [ ] sudo nmap -O localhost работает (определяет ОС)
  • [ ] (Для source-сборки) Скрипт обновления работает (sudo update-nmap)

Заключение

Вы установили Nmap на Debian. Если вы выбрали APT — получили стабильную, проверенную версию, которая будет обновляться вместе с системой. Если собрали из исходников — получили самую свежую версию с новыми NSE-скриптами и проверкой SHA256, которую можно обновлять скриптом из раздела 4.6. На Debian 11 сборка из исходников автоматически отключает OpenSSL для совместимости. Nmap — это мощный инструмент для исследования сетей, аудита безопасности и диагностики. Главное, что нужно запомнить: для SYN-сканирования и определения ОС требуются права root, а для проверки целостности source-сборки всегда используйте SHA256.

Что дальше:

  • Изучите официальную документацию Nmap
  • Попробуйте NSE-скрипты: nmap --script vuln 192.168.1.1 (сканирование уязвимостей)
  • Используйте Nmap для проверки своего фаервола
  • Совместите с Wireshark для анализа трафика и с Chkrootkit для проверки безопасности

Связанные статьи: