Макросъёмка платы Raspberry Pi 4 на тёмном антистатическом коврике: миниатюрный OLED-экран показывает статус проверки настройки сканера и данные фида уязвимостей зелёным моноширинным шрифтом. Резки...


Два года назад я убил восемь часов на установку OpenVAS на свежую Kali - gvmd падал с ошибкой PostgreSQL, feed-синхронизация зависала на 12%, а gvm-check-setup выдавал красный текст на каждом шаге. Классика жанра. Потом выяснилось: 90% проблем решаются пятью действиями, о которых русскоязычные гайды упорно молчат. Этот чек-лист проведёт от чистой системы до первого скана без многочасового квеста.

Требования к окружению перед установкой OpenVAS​

Прежде чем набирать первую команду - убедитесь, что машина потянет. Из документации Greenbone:

ПараметрМинимумРекомендуется
CPU2 ядра4 ядра
RAM4 ГБ8 ГБ
Диск20 ГБ свободных60 ГБ свободных

60 ГБ - не перестраховка: коллекция NVT (Network Vulnerability Tests) содержит более 100 000 проверок, плюс данные SCAP, CERT и результаты сканирований быстро накапливаются в PostgreSQL. Диск кончается тихо и больно.

Работает если: Kali Linux 2024.x и новее, Debian 12/13, Ubuntu 24.04 LTS. PostgreSQL совместимой с дистрибутивом версии. Исходящий доступ к feed.community.greenbone.net по порту 873/TCP (rsync) для синхронизации фидов.

Не работает если: RAM менее 4 ГБ - процесс gvmd при загрузке фидов сожрёт всю память и будет убит OOM killer (проверено, причём без внятного сообщения). Ubuntu 22.04 - пакет gvm/gsad может отсутствовать или быть устаревшим в репозиториях, берите Kali или Debian 12/13. Виртуалка с 1 ядром и 2 ГБ RAM - сканирование будет зависать или не запустится вовсе.

Сравнение способов установки сканера уязвимостей​

GVM (Greenbone Vulnerability Management) можно развернуть тремя путями. Честное сравнение по опыту десятка установок:

МетодСложностьВремяКонтрольДля кого
Kali (apt install gvm)Низкая30–60 минСреднийНачинающие пентестеры
Docker ComposeСредняя15–30 минНизкийИзоляция от хоста, быстрый старт
Сборка из исходниковВысокая2–4 часаПолныйРазработчики, кастомные стенды

Для первого знакомства - однозначно пакеты Kali. Docker - когда нужна изоляция и нет желания воевать с системными зависимостями. Сборка из исходников - только если нужна конкретная версия компонентов; Greenbone сами предупреждают, что этот путь для людей с опытом сборки C-проектов через cmake. Если слово cmake вызывает лёгкую тошноту - не ваш вариант.

Установка и настройка Greenbone Community Edition на Kali Linux​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

), выполните sudo runuser -u _gvm -- gvmd --user=admin --new-password=ваш_пароль, затем запустите обратно (sudo systemctl start gvmd).

Синхронизация фидов - самый долгий этап. На хорошем канале 20–40 минут, на слабом - до нескольких часов. Не прерывайте процесс: неполная синхронизация приведёт к пустым конфигурациям сканирования. Идите пить кофе. Серьёзно.

Шаг 4. Проверка. Выполните sudo gvm-check-setup. Если в конце вывода строка It seems like your GVM-22.x.x installation is OK - всё работает. Красные строки ERROR - читайте разбор ошибок ниже.

Для понимания архитектуры: gvmd - бэкенд, управляющий логикой сканирования и базой данных. ospd-openvas - демон, который непосредственно запускает сканер. gsad - HTTP-сервер, отдающий веб-интерфейс (Greenbone Security Assistant). Redis кэширует загруженные NVT-проверки, PostgreSQL хранит результаты, конфигурации и пользователей. Когда эта картинка сложится в голове - любая ошибка перестанет быть чёрным ящиком. Вы будете смотреть в лог и понимать, кто именно из этого зоопарка упал.

OpenVAS Docker установка: альтернативный путь​

Greenbone предоставляет официальные контейнеры. Весь стек разворачивается через docker-compose.yml из документации Greenbone. Скачиваете файл и запускаете docker compose -p greenbone-community-edition up -d - веб-интерфейс поднимется на порту из поля ports в compose-файле (обычно https://127.0.0.1:9392, но в некоторых релизах порт отличается - сверьтесь с файлом).

Главный подводный камень: конфликт портов. Если на хосте уже крутятся PostgreSQL (порт 5432) или Redis (6379) - контейнеры не стартуют, причём без внятного сообщения. Всегда проверяйте docker compose logs при проблемах. Преимущество Docker-пути - при неудаче можно снести всё через docker compose down -v и начать с нуля за минуту. Попробуйте так же с нативной установкой.

Ошибки gvm-setup и gvmd: решение частых проблем​

Пять ошибок, на которые наступает каждый второй. Каждую встречал на реальных стендах - и каждая решается за пару минут, если знать, какой сервис сломался.

PostgreSQL: порт 5432 занят другой версией​

gvm-setup сообщает, что порт 5432 занят. Причина - на Kali одновременно стоят PostgreSQL 15 и 16. Загляните в /etc/postgresql/: если там две папки - вот и виновник. Отредактируйте postgresql.conf старой версии, сменив port на 5433. Для нужной версии оставьте 5432. Перезапустите PostgreSQL и повторите sudo gvm-setup.

gvm-check-setup: ошибка MQTT-брокера​

Вывод содержит ошибку про отсутствие MQTT. Добавьте строку mqtt_server_uri = localhost:1883 в /etc/openvas/openvas.conf и запустите mosquitto: sudo systemctl start mosquitto. Всё.

Коллация PostgreSQL не совпадает​

Сообщение: The database was created using collation version 2.36, but the operating system provides version 2.37. Выглядит страшно, лечится просто:
SQL:
-- подключение: sudo -u postgres psql
ALTER DATABASE gvmd REFRESH COLLATION VERSION;
ALTER DATABASE postgres REFRESH COLLATION VERSION;
-- выход: \q
-- перезапуск: systemctl daemon-reload && systemctl restart gvmd.service gsad.service

Права на лог-файл: ospd-openvas не стартует​

Ошибка ospd-openvas.service failed - почти всегда дело в правах на /var/log/gvm/openvas.log. Решение: sudo chown _gvm:_gvm /var/log/gvm/openvas.log && sudo chmod 644 /var/log/gvm/openvas.log, затем sudo gvm-start. Банальность, но съедает кучу времени, если не знать куда смотреть.

NVT feed обновление не завершается​

Веб-интерфейс показывает пустые конфигурации, скан не запускается. Фиды не загружены или rsync заблокирован файрволом. Убедитесь, что порт 873/TCP открыт для исходящих соединений к feed.community.greenbone.net. Запустите синхронизацию вручную: sudo greenbone-feed-sync. Статус - в Administration → Feed Status.

Настройка сканирования в OpenVAS: первый запуск​

Запускаем сервисы: sudo gvm-start, открываем https://127.0.0.1:9392. Браузер покажет предупреждение о самоподписанном сертификате - принимаем. Если нужен удалённый доступ к веб-интерфейсу: sudo systemctl edit gsad.service и в открывшемся файле переопределяем ExecStart с --listen=0.0.0.0. Затем sudo systemctl daemon-reload && sudo systemctl restart gsad. Но тут сразу ограничьте доступ через firewall (ufw allow from <ваша_сеть> to any port 9392) - без этого веб-интерфейс GVM будет доступен всем желающим. А желающие найдутся.

Перед первым сканированием проверьте Feed Status (Administration → Feed Status). Все строки должны быть в статусе Current. Пока статус Loading - не запускайте скан: без фидов сканер либо выдаст ошибку «failed to find config», либо отработает вхолостую и ничего не найдёт.

Для запуска: Scans → Tasks → New Task. Создаём цель (Target) с IP-адресом тестового хоста. Конфигурацию выбираем Full and fast - она покрывает основные уязвимости и использует результаты предварительного port/service discovery для оптимизации порядка проверок. Full and deep ultimate игнорирует эти оптимизации, лезет агрессивнее, проверяет нестандартные порты - время растёт кратно, а прирост обнаружения на большинстве целей сомнительный. Я использую deep ultimate только на изолированных стендах, где нет риска положить продакшн.

Первый скан одного хоста на Full and fast - 15–40 минут в зависимости от количества открытых портов. Результаты в Scans → Reports с разбивкой по severity. Если привязывать к MITRE ATT&CK: автоматизированное сканирование уязвимостей - это Vulnerability Scanning (T1595.002, Reconnaissance) и Network Service Discovery (T1046, Discovery). Каждая найденная уязвимость - потенциальный вектор для Exploit Public-Facing Application (T1190, Initial Access). Привязка полезна при составлении отчётов: заказчик видит не абстрактные CVE, а шаги kill chain.

Сразу сравните результаты OpenVAS с выводом nmap по тем же хостам. Это разные инструменты пентеста: nmap быстрее находит открытые порты и версии сервисов, OpenVAS глубже копает каждый сервис на известные уязвимости. Они дополняют друг друга. На одном проекте nmap показал чистый 443/tcp с nginx, а OpenVAS вытащил оттуда CVE-2021-23017 - resolver vulnerability, которую по баннеру не видно.

На начальном этапе OpenVAS вызывает больше раздражения, чем пользы - слишком много компонентов, слишком долгая синхронизация, слишком невнятные ошибки. Но проблема не в инструменте, а в пороге входа: документация рассчитана на тех, кто уже понимает systemd, PostgreSQL и Redis. Новичкам этого контекста не хватает, и каждый gvm-setup превращается в лотерею. Не пытайтесь собирать GVM из исходников, пока не поставите его хотя бы трижды через пакетный менеджер. Сначала разберитесь, как компоненты связаны - после этого любая строчка в логе будет указывать на конкретный сервис, а не на «где-то что-то сломалось». И ещё одно наблюдение: большинство людей, которые бросают OpenVAS, на самом деле застревают не на сканере, а на незнании Linux в целом - права, сервисы, порты, логи. Базовый трек IB Basics на codeby.school - для тех, кто не хочет в одиночку ковыряться в Kali.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab