Два года назад я убил восемь часов на установку OpenVAS на свежую Kali - gvmd падал с ошибкой PostgreSQL, feed-синхронизация зависала на 12%, а
gvm-check-setup выдавал красный текст на каждом шаге. Классика жанра. Потом выяснилось: 90% проблем решаются пятью действиями, о которых русскоязычные гайды упорно молчат. Этот чек-лист проведёт от чистой системы до первого скана без многочасового квеста.Требования к окружению перед установкой OpenVAS
Прежде чем набирать первую команду - убедитесь, что машина потянет. Из документации Greenbone:| Параметр | Минимум | Рекомендуется |
|---|---|---|
| CPU | 2 ядра | 4 ядра |
| RAM | 4 ГБ | 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.