Гид по технологиям

Установка и использование Vuls на Ubuntu 22.04

• 8 min read • Безопасность • Обновлено 27 Nov 2025
Vuls на Ubuntu 22.04: установка и настройка
Vuls на Ubuntu 22.04: установка и настройка

Логотип Vuls и обзор

О чём эта инструкция

Эта подробная инструкция поможет вам:

  • Установить Vuls на Ubuntu 22.04 (инсталлятор/ручная установка).
  • Настроить директорию данных и файл конфигурации config.toml.
  • Собрать базы уязвимостей (NVD/CVE, OVAL, Gost, Metasploit).
  • Просканировать локальную и удалённую систему (SSH, режимы fast/fast-root/deep).
  • Просмотреть результаты в TUI и интегрировать их в VulsRepo веб‑дашборд.

Важно: Vuls — агентless. Для сканирования удалённых хостов требуется SSH‑доступ. Для глубокого сканирования (deep/fast-root) необходимы привилегии root или passwordless sudo.

Кому полезно (основное намерение)

Primary intent: Установка и настройка Vuls на Ubuntu 22.04. Другие похожие запросы: установка vuls ubuntu, vuls tutorial, vulsrepo интеграция, сканер уязвимостей vuls, vuls ssh scan.

Предварительные требования

  • Сервер с Ubuntu 22.04 (в примерах использован хост с именем vuls и адресом 192.168.5.20).
  • Пользователь с sudo (не root) или root-доступ.
  • Второй сервер (тестовая цель) для демонстрации удалённого сканирования через SSH.

Совет: заранее убедитесь в наличии SSH‑ключей и возможности passwordless sudo для пользователей на целевых хостах, если планируете режим fast-root/deep.

Краткий план действий

  1. Установить Vuls (скрипт install.sh).
  2. Создать /usr/share/vuls-data и config.toml.
  3. Собрать базы (gost, go-cve-dictionary, goval-dictionary, go-msfdb).
  4. Запустить vuls scan (локально и по SSH).
  5. Экспортировать отчёты и поднять VulsRepo для веб‑просмотра.

1. Установка Vuls через инсталлятор

Официальный инсталлятор автоматизирует установку зависимостей, Go и компиляцию утилит. Запустите на Ubuntu 22.04:

bash <( curl -s https://raw.githubusercontent.com/vulsio/vulsctl/master/install-host/install.sh )

Если установка прошла успешно, в терминале вы увидите вывод установки и список действий.

Вывод установщика Vuls в терминале

Инсталлятор выполняет:

  • установку пакетов (gcc, git, wget, curl, sqlite3 и т. п.),
  • установку Go из бинарного архива,
  • сборку бинарников vuls и сопутствующих утилит: go-cti, go-kev, go-exploitdb, go-msfdb, go-cve-dictionary, goval-dictionary, gost.

После установки бинарники будут в /usr/local/bin. Проверьте:

ls /usr/local/bin/

Ожидается наличие vuls, go-cve-dictionary, goval-dictionary, gost и прочих утилит.

Important: если в вашей среде есть ограничения на загрузку внешних бинарных пакетов, ознакомьтесь с ручной установкой Go и компиляцией из исходников.

2. Настройка директории данных и config.toml

Vuls ожидает рабочую директорию с файлом config.toml и базами данных. Создайте директорию и конфиг:

mkdir -p /usr/share/vuls-data
touch /usr/share/vuls-data/config.toml

Откройте файл для редактирования:

nano /usr/share/vuls-data/config.toml

Добавьте базовую конфигурацию (пример):

[cveDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"

[ovalDict]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"

[gost]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"

[metasploit]
type = "sqlite3"
SQLite3Path = "/usr/share/vuls-data/go-msfdb.sqlite3"

[servers]

[servers.localhost]
host = "localhost"
port = "local"
scanMode = [ "fast" ]
#scanMode = ["fast", "fast-root", "deep", "offline"]

Объяснение кратко:

  • cveDict — база CVE (NVD/JVN).
  • ovalDict — OVAL для дистрибутива.
  • gost — Security Tracker (для Ubuntu/Debian и др.).
  • metasploit — CVE из модулей Metasploit.

Перейдите в рабочую директорию и проверьте конфигурацию:

cd /usr/share/vuls-data/
vuls configtest

Если конфигурация корректна — вы увидите успешный вывод.

Результат проверки конфигурации vuls configtest

Если хотите автоматически сгенерировать пример конфигурации для подсети, можно использовать discover:

vuls discover 127.0.0.1/32

3. Сборка баз данных Vuls

Vuls использует локальные sqlite3‑базы. Создайте их командами из пакета утилит:

  • Security Tracker (gost):
gost fetch ubuntu --dbpath /usr/share/vuls-data/gost.sqlite3
  • CVE (go-cve-dictionary) из NVD:
go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3

— вывод завершения загрузки CVE —

Завершение скачивания базы CVE

  • OVAL для Ubuntu 22:
goval-dictionary fetch ubuntu 22 --dbpath /usr/share/vuls-data/oval.sqlite3
  • Metasploit CVE:
go-msfdb fetch msfdb --dbpath /usr/share/vuls-data/go-msfdb.sqlite3

Генерация базы Metasploit для Vuls

Проверьте наличие файлов:

ls /usr/share/vuls-data/*.sqlite3

Ожидаемый список: gost.sqlite3, cve.sqlite3, oval.sqlite3, go-msfdb.sqlite3.

Совет: обновляйте базы регулярно (например, cron), особенно go-cve-dictionary и goval-dictionary, чтобы иметь актуальные данные.

4. Сканирование локальной машины

В конфиге мы создали [servers.localhost] с scanMode = [“fast”]. Этот режим не требует root. Запуск сканирования всех хостов из config.toml:

vuls scan

Или конкретного хоста:

vuls scan localhost

Пример вывода при сканировании локального хоста:

Пример вывода сканирования Vuls локального хоста

Для интерактивного просмотра результатов используйте TUI:

vuls tui

В интерфейсе вы увидите список хостов, перечень найденных CVE, подробности CVE и список затронутых пакетов. Навигация клавишей TAB, выход Ctrl+C.

Просмотр результатов сканирования в vuls tui

Окно vuls tui со сведениями о уязвимостях

Команда для просмотра истории сканирований:

vuls history

5. Сканирование удалённого сервера по SSH

Пример целевого сервера:

Hostname        IP Address      OS
------------------------------------------
debian-server   192.168.5.75    Debian 11

Шаги:

  1. Установите необходимые пакеты на целевом хосте (если нужен режим fast-root/deep):
sudo apt install debian-goodies reboot-notifier

Установка зависимостей на целевом сервере Debian

  1. На Vuls‑сервере добавьте OVAL/Gost для Debian в базы:
goval-dictionary fetch debian 11 --dbpath /usr/share/vuls-data/oval.sqlite3

gost fetch debian --dbpath /usr/share/vuls-data/gost.sqlite3
  1. Добавьте хост в config.toml:
nano /usr/share/vuls-data/config.toml

Добавьте в конец:

[servers.debian-server]
host = "192.168.5.75"
port = "22"
user = "debian"
keyPath = "~/.ssh/id_ed25519"
scanMode = [ "fast-root" ] # "fast", "fast-root" or "deep"

Примечание: fast-root подразумевает доступ к sudo без пароля или root.

Добавление удалённого хоста в config.toml

  1. Проверка конфигурации:
vuls configtest

Vuls покажет, какие хосты готовы к сканированию и какие зависимости не выполнены.

Проверка готовности хостов перед сканированием

  1. Запуск сканирования (все хосты или конкретный):
vuls scan
# или
vuls scan debian-server

Пример одновременного сканирования локального и удалённого хоста:

Результат одновременного сканирования локального и удалённого хоста

Просмотр результатов в TUI покажет оба хоста:

Список хостов и результаты в vuls tui

Экран с итогами удалённого сканирования

6. Экспорт отчётов и интеграция с VulsRepo

VulsRepo — веб‑интерфейс для просмотра JSON-отчётов Vuls. Процесс интеграции:

  1. Сгенерируйте JSON‑отчёты в директории results:
cd /usr/share/vuls-data/
vuls report -format-json
  1. Склонируйте VulsRepo и настройте сервер:
cd /opt/
git clone https://github.com/ishiDACo/vulsrepo.git
cd /opt/vulsrepo/server/
cp vulsrepo-config.toml.sample vulsrepo-config.toml
nano vulsrepo-config.toml

Отредактируйте секцию [Server]:

[Server]
rootPath = "/opt/vulsrepo"
resultsPath = "/usr/share/vuls-data/results"
serverPort = "5111"
serverIP = "192.168.5.20"
  1. Запустите сервер vulsrepo:
./vulsrepo-server

Вы увидите сообщение о запуске на указанном IP и порте.

Клонирование репозитория VulsRepo в /opt

Запуск vulsrepo-server и информация о порте

  1. Откройте http://192.168.5.20:5111/ в браузере, выберите JSON результат и нажмите Submit.

Выбор JSON с результатами в VulsRepo

Пример таблицы результатов в VulsRepo:

Интерфейс VulsRepo с таблицей результатов

7. Проверка результата и типичные команды

  • Сканирование всех хостов: vuls scan
  • Сканирование конкретного хоста: vuls scan
  • TUI просмотр: vuls tui
  • История сканов: vuls history
  • Проверка конфигурации: vuls configtest
  • Генерация JSON отчёта: vuls report -format-json

Практические рекомендации и лучшие практики

  • Регулярно обновляйте локальные базы (NVD/OVAL/GOST/MSFDB) — автоматизируйте через cron.
  • Для удалённых хостов используйте ключевую аутентификацию SSH и passwordless sudo для безостановочного сканирования.
  • Разграничивайте роли: администраторы отвечают за доступ, безопасность команда — за приоритезацию CVE.
  • Тестируйте новый конфиг и сбор баз в тестовой среде прежде, чем применять в продакшене.

Когда Vuls может не сработать или даст ложные срабатывания

  • Недостаток прав на целевом хосте (deep/fast-root требуют root).
  • Несоответствие версий OVAL для дистрибутива — нужно подтянуть правильную ветку OVAL.
  • Устаревшие локальные базы — CVE могут отсутствовать или иметь некорректные соответствия.
  • Особенности пакетов, собранных вручную или из нестандартных репозиториев — Vuls ориентируется на менеджер пакетов дистрибутива.

Отладка и распространённые ошибки

  • “connection refused” при сканировании по SSH — проверьте SSH‑доступ и порт.
  • “permission denied” при использовании fast-root — настройте passwordless sudo или используйте ключ root.
  • Проблемы с go-cve-dictionary — проверьте сетевой доступ к NVD/JVN и наличие disk space.

Чеклист для отладки:

  • Проверить /usr/local/bin/* доступны и исполняемы.
  • Проверить наличие файлов *.sqlite3 в /usr/share/vuls-data.
  • Проверить корректность путей в config.toml (keyPath, resultsPath).
  • Прогнать vuls configtest и проанализировать предупреждения.

Мини‑методология: как эффективно управлять результатами сканов

  1. Автоматическое обновление баз и ежедневный скан.
  2. Автоматическая выгрузка JSON и импорт в VulsRepo.
  3. Маркировка CVE по критичности (High/Critical) и связке с инвентарём сервисов.
  4. Создание тикетов на исправление для High/Critical CVE с дедлайном и владельцем.

Мини‑правило: фокусируйтесь сначала на эксплуатируемых и локально присутствующих пакетаx.

Ролевые чек‑листы

  • Системный администратор:

    • Установить Vuls и утилиты в /usr/local/bin.
    • Настроить SSH‑ключи и passwordless sudo на целевых хостах.
    • Настроить cron для обновления баз и запусков сканов.
  • Инженер по безопасности:

    • Проводить ежедневный обзор High/Critical CVE.
    • Настроить интеграцию с ticketing-системой (ручная или API).
    • Оценивать эксплойтабельность и планировать патчи.
  • Менеджер/владелец сервиса:

    • Проверять статус сканов в VulsRepo.
    • Назначать владельцев для устранения уязвимостей.

Критерии приёмки

  • Все целевые хосты успешно сканируются без ошибок связи.
  • Базы данных cve/oval/gost/go-msfdb актуальны и доступны.
  • Для критичных CVE созданы тикеты с назначенными владельцами.
  • Результаты доступны в VulsRepo и отражают последние сканы.

Тесты и критерии приёмки (примеры)

  • Тест 1: Убедиться, что при отключенном keyPath vuls configtest выдаёт ошибку и не ломает процесс.
  • Тест 2: При добавлении нового хоста в config.toml и запуске vuls scan — хост показывается в vuls tui.
  • Тест 3: При обновлении go-cve-dictionary и перегенерации отчёта — VulsRepo показывает новые CVE в JSON.

Шаблон расписания работ (пример cron)

# Обновление CVE (ежедневно 03:00)
0 3 * * * /usr/local/bin/go-cve-dictionary fetch nvd --dbpath /usr/share/vuls-data/cve.sqlite3 >> /var/log/vuls/cve-update.log 2>&1
# Обновление OVAL/GOST (ежедневно 04:00)
0 4 * * * /usr/local/bin/goval-dictionary fetch ubuntu 22 --dbpath /usr/share/vuls-data/oval.sqlite3 >> /var/log/vuls/oval-update.log 2>&1
0 4 * * * /usr/local/bin/gost fetch ubuntu --dbpath /usr/share/vuls-data/gost.sqlite3 >> /var/log/vuls/gost-update.log 2>&1
# Ежедневный скан и генерация отчёта (05:00)
0 5 * * * cd /usr/share/vuls-data && /usr/local/bin/vuls scan && /usr/local/bin/vuls report -format-json >> /var/log/vuls/scan.log 2>&1

Безопасность и приватность данных

  • Храните JSON отчёты и sqlite‑файлы в защищённой файловой системе с ограниченным доступом.
  • Если VulsRepo доступен в сети — используйте брандмауэр и, при возможности, HTTPS и аутентификацию.
  • Не выкладывайте JSON‑отчёты с детальной информацией о конфигурации хостов в публичный доступ.

Миграция и совместимость

  • При переносе Vuls на новый сервер — скопируйте /usr/share/vuls-data (базы и results) и config.toml, а также ключи SSH.
  • При обновлении версии Vuls проверьте совместимость формата sqlite и бэкапните файлы.

Частые сценарии и альтернативные подходы

  • Если у вас много хостов — используйте несколько Vuls‑инстансов, централизуйте JSON в single VulsRepo.
  • Для корпоративных сред рассмотрите запуск Vuls в Docker с привязкой volume к /usr/share/vuls-data.

Короткое руководство для быстрого старта (SOP)

  1. Установить через install.sh.
  2. Создать /usr/share/vuls-data/config.toml и добавить localhost.
  3. Сгенерировать базы: gost, go-cve-dictionary, goval-dictionary, go-msfdb.
  4. Запустить vuls scan и vuls tui.
  5. Экспортировать JSON и поднять VulsRepo для удобного просмотра.

Карта принятия решений (Mermaid)

flowchart TD
  A[Нужен быстрый аудит?] -->|Да| B[Использовать scanMode = fast]
  A -->|Нет, нужен root| C[Использовать fast-root или deep]
  B --> D[Запустить vuls scan]
  C --> D
  D --> E{Есть удалённые хосты?}
  E -->|Да| F[Настроить SSH key и add host]
  E -->|Нет| G[Сканировать локально]
  F --> D
  G --> D
  D --> H[Генерировать JSON и импорт в VulsRepo]

Глоссарий (1‑строчные определения)

  • Vuls: агентless сканер уязвимостей для Linux/FreeBSD.
  • OVAL: язык и база для описания проверок уязвимостей.
  • NVD/CVE: централизованная база уязвимостей (NVD — реализация для CVE).
  • Gost: security tracker (трекер безопасности дистрибутивов).
  • VulsRepo: веб-интерфейс для визуализации JSON‑отчётов Vuls.

Заключение

Вы установили и настроили Vuls на Ubuntu 22.04, создали и обновили локальные базы уязвимостей, выполнили сканирование локального и удалённого хостов, а также интегрировали результаты в веб‑дашборд VulsRepo. Используйте автоматическое обновление баз и регулярные сканы, чтобы поддерживать видимость рисков в инфраструктуре.

Если нужно, могу: 1) подготовить systemd unit и сервис для автоматического запуска vulsrepo-server; 2) написать playbook Ansible для развёртывания Vuls и VulsRepo; 3) помочь добавить интеграцию с системой тикетов.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро