Docs
Личный кабинет

Установка и настройка сетевого сканера


Описание

Сканер - клиентское приложение, устанавливающееся на выделенный сервер и позволяющее производить сканирование разрешенных сетей.

Системные требования

  • Операционная система: Сервер с ОС Linux
  • Рекомендации: Выделенный сервер с полным доступом к аппаратным ресурсам

Важно:

  • Сканер должен использовать систему управления службами systemd.
  • Предполагается что сканер может полностью утилизировать ресурсы выделенного ему сервера

Поддерживаемые системы и дистрибутивы

  • Debian GNU/Linux 11, 12

Регистрация сервис аккаунта

Авторизация сканера проходит через сервис аккаунт по OAuth2 протоколу. В панели администратора необходимо создать сервис аккаунт (см. Как создать Сервис аккаунт) и выбрать группу скоупов uc, которая включает в себя uc:list и uc:get.

Данные скоупы дают доступ для просмотра и скачивания сканера и агентов.

Установка сетевого сканера

Установка и удаление сетевого сканера производится через ansible роль. Роль и инструкция по настройке находится в репозитории (см. ansible-net-scanner).

Ansible - система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Применяется для автоматизации настройки и развёртывания программного обеспечения.

Документация ansible: https://docs.ansible.com/

Для установки сетевого сканера необходимо, чтобы на основной машине был доступ по SSH до всех целевых машин.

Проверьте, установлен ли модуль pip:

bash

Если модуль отсутствует, то его необходимо установить

Установить ansible:

bash

Проверить установленную версию можно выполнив команду:

bash

Создайте директорию, в которой будут находиться файлы для установки сетевого сканера:

bash

Создайте дочернюю директорию и скачайте ansible роль сетевого сканера

bash

Вернитесь в каталог exploitdog

bash

Создайте плейбук, например net-scanner.yaml, со следующим содержимым:

yaml

В поле exploitdog_net_scanner_url необходимо указать URL личного кабинета. Например, для облачного решения:

Пример:

yaml

Далее необходимо создать инвентарь и указать в нём параметры подключения для всех машин, на которые необходимо установить сетевой сканер, в примере файл будет называться hosts:

ini

Структура директории должна иметь следующий вид:

text

Теперь можно запустить установку:

bash

Удаление сетевого сканера

Для удаления сетевого сканера необходимо запустить плейбук с указанием переменной uninstall=true :

bash

Доступные параметры для конфигурирования

ПараметрТипОбязательностьОписаниеПо умолчанию
allowedIPs[]CIDR[]Разрешенные IP-подсети для сканирования (например 192.168.1.0/24)-
interfaces[]string[]Сетевые интерфейсы для сканирования-
dns[]IP[]DNS-серверы для разрешения доменов-
concurrentintegerМаксимальное количество одновременно обрабатываемых заданий (не опирается на количество CPU)10
serverURLURLБазовый URL сервера (только HTTPS). Для облачного решения: -
proxyURLURLПрокси-сервер для подключения (см. Особенности настройки proxyURL)-
logLevelstringУровень логирования (debug, info, warn, error)info
clientIdstringИдентификатор клиента OAuth (см. Как создать Сервис аккаунт)-
clientSecretstringСекретный ключ клиента (см. Как создать Сервис аккаунт)-
ipAddressIPСтатический IP текущего узлаавтоопределение
hostIdstringУникальный идентификатор хоста-
fqdnstringПолное доменное имя устройства-
rateLimitintegerЛимит запросов в секунду (RPS)-
secretsmapСекреты приложения (см. Конфигурационный файл JSON)-

Особенности настройки proxyURL

  1. Поддерживаемые схемы прокси
    • http://
    • https://
  2. Учетные данные (логин/пароль) передаются через URL
    • http://username:password@proxy-host:port
    • https://username:password@proxy-host:port
  3. Таймауты и производительность
    • Общий таймаут клиента (5 секунд) включает установку соединения с прокси. Если прокси не отвечает вовремя, запрос прерывается.
  4. Прозрачность работы
    • Прокси обязан поддерживать метод CONNECT для работы с HTTPS.
    • Все запросы от сканера будут проходить через прокси.
  5. Примеры рабочих конфигураций
    • HTTP-прокси: http://proxy.example.com:8080
    • HTTPS-прокси с аутентификацией: https://user:pass@secure-proxy.com:3128

Для работы с https схемой proxy берутся системные сертификаты.

Методы конфигурации

1. Конфигурационный файл JSON

  • Расположение: /etc/exploitdog_net_scanner/config.json
  • Требования к правам: 0600

json

Важно:

  • объект secrets доступен только через конфигурационный файл. Заполняется для модулей с агентом
  • ключи в объекте secrets регистрозависимые. Т.е. USER != user. Если в конфигурации сканирования указывается секрет ${{secrets.AGENT_TOKEN}} то в конфигурационном файле должен быть прописан секрет "AGENT_TOKEN": "<token>"

2. Переменные окружения

  • Префикс: NS_
  • Ограничение: Не поддерживает массивы/списки

bash

3. Параметры командной строки

  • Формат: Поддерживает множественные значения через повторение параметра

bash

Приоритет конфигурации

Конфигурационные источники применяются в следующем порядке (чем выше в списке - выше приоритет):

  1. Параметры командной строки
  2. JSON-файл
  3. Переменные окружения

Особенности

  • После установки и первичной конфигурации (см. Установка сетевого сканера) сканер производит http запрос для OAuth авторизации и регистрации себя в системе . В ответ он получает дополнительную конфигурацию и JWT токен для авторизации. Такой запрос может выполняться раз в час (по истечению ttl jwt-токена) или при запуске сканера.

  • Сканер может выступать в роли прокси шлюза по адресу 0.0.0.0:8080. Прокси используется в сетях L3 для передачи данных от агента на целевом хосте в сервис, который может находиться вне контура, по адресу serverURL из параметра конфигурирования. Подробнее про количество передаваемой информации можно почитать в документации к агенту (см. Требования к рабочему месту пользователя )

  • Сканер передает на сервер телеметрию о себе. Данную информацию можно будет посмотреть в карточке сканера.

Назад

Метрики