Как установить Greenbone Vulnerability Management (GVM) (бывший OpenVAS) в Kali Linux

OpenVAS теперь переименована в Greenbone Vulnerability Management (GVM)

Когда создавался проект OpenVAS, он состоял только из движка для сканирования уязвимостей. Вскоре после этого Greenbone Networks получила финансирование для оказания профессиональной поддержки в области сканирования уязвимостей. Гринбоун начал руководить разработкой, добавил несколько программных компонентов и превратил OpenVAS в решение для многосторонней работы с уязвимостями, по-прежнему сохраняющее ценности открытого и бесплатного программного обеспечения.

Через несколько лет стало очевидно, что использование OpenVAS в качестве торговой марки для проекта с открытым исходным кодом и финансирование почти всей разработки проекта не было оценено извне. Поэтому после выпуска платформы OpenVAS 9 она была переименована в Greenbone Vulnerability Management (GVM) и выпущена как Greenbone Source Edition (GSE). Начиная с GVM 10 термин OpenVAS используется только для компонента сканера, как это было в начале проекта.

Пакеты Greenbone Vulnerability Management (GVM): https://github.com/greenbone

Ошибки при установке и запуске GVM, OpenVAS

В процессе установки и запуска у меня возникло довольно много ошибок, которые, тем не менее, удалось решить. Исходя из того предположения, что эти ошибки являются общими для всех (а не только для моей конкретной установки), я описал эти ошибки прямо в процессе установки, в результате чего инструкция стала загромождённой.

Если в процессе установки вы не столкнётесь с описываемыми ошибками, напишите, пожалуйста, об этом в комментариях — если ошибки не появляются у всех, то я вынесу их в самый конец статьи, благодаря чему в целом инструкция станет более ясной.

Как установить OpenVAS (GVM)

Поскольку авторы переименовали openvas в gvm (точнее, разделили на разные пакеты), то теперь основным пакетом является gvm, при его установке в качестве зависимостей также будут получены все другие необходимые пакеты.

Установка делается так:

sudo apt update
sudo apt install gvm

Настройка OpenVAS

Начнём с настройки Open Vulnerability Assessment Scanner (OpenVAS), то есть открытого сканера оценки уязвимостей для Greenbone Vulnerability Management (GVM).

Он используется в Greenbone Security Manager и представляет собой полнофункциональный модуль сканирования, который выполняет постоянно обновляемую и расширенную подачу Network Vulnerability Tests (NVTs), то есть тестов сетевых уязвимостей.

Сканеру нужен запущенный сервер Redis для временного хранение собранной информации по сканированным хостам. Настройка сервера Redis делается так (эти команды нужно выполнить один раз):

wget https://raw.githubusercontent.com/greenbone/openvas-scanner/master/config/redis-openvas.conf
sudo cp redis-openvas.conf /etc/redis/
sudo chown redis:redis /etc/redis/redis-openvas.conf
echo 'db_address = /run/redis-openvas/redis.sock' | sudo tee /etc/openvas/openvas.conf

Запуск сервера Redis (нужно делать после каждой перезагрузки компьютера):

sudo systemctl start redis-server@openvas.service

Или, если хотите, добавьте его в автозагрузку:

sudo systemctl enable redis-server@openvas.service

Служба Greenbone Vulnerability Management (gvmd) действует как клиент OSP для подключения к сканерам и управления ими. openvas не действует как служба OSP — для этого вам понадобится модуль OSPD-OpenVAS. Фактические пользовательские интерфейсы (например, GSA или GVM-Tools) будут взаимодействовать только с gvmd и/или ospd-openvas, но не со сканером. Вы можете запустить openvas, чтобы загрузить плагины в Redis, используя следующую команду:

sudo openvas -u

но ospd-openvas выполнит обновление автоматически.

Обратите внимание: хотя вы можете запускать openvas от имени пользователя без повышенных прав, рекомендуется запускать openvas от имени пользователя root, поскольку для выполнения ряда тестов на уязвимость сети (NVT) требуются привилегии root для выполнения определённых операций, таких как подделка пакетов. Если вы запускаете openvas от имени пользователя без разрешения на выполнение этих операций, результаты сканирования, скорее всего, будут неполными.

Поскольку openvas будет запускаться из процесса ospd-openvas с помощью sudo, в файле sudoers требуется следующая конфигурация:

sudo visudo

добавьте эту строку, чтобы позволить пользователю, запускающему ospd-openvas, запускать openvas с правами root

ПОЛЬЗОВАТЕЛЬ ALL = NOPASSWD: /usr/sbin/openvas

Замените ПОЛЬЗОВАТЕЛЬ на имя вашего пользователя Linux.

Узнать имя пользователя можно командой:

echo $USER

Если что-то не работает, то посмотреть журнал можно командой:

cat /var/log/gvm/openvas.log

Настройка Greenbone Vulnerability Management (GVM)

Greenbone Vulnerability Manager — это центральная служба управления между сканерами безопасности и пользовательскими клиентами.

Он управляет хранением любых конфигураций работы с уязвимостями и результатов сканирования. Доступ к данным, командам управления и рабочим процессам обеспечивается через протокол управления Greenbone Management Protocol (GMP) на основе XML. Управление сканерами, такими как OpenVAS, осуществляется через протокол открытого сканера (OSP).

Скрипт развёртывания (вместо openvas-setup):

sudo gvm-setup

Этот скрипт нужно запустить только один раз.

Работа скрипта завершилась ошибкой:

sent 2,908 bytes  received 1,097,808,438 bytes  405,171.19 bytes/sec
total size is 1,097,537,923  speedup is 1.00
[*] Updating: Cert Data
rsync: [Receiver] failed to connect to feed.community.greenbone.net (45.135.106.142): Connection refused (111)
rsync: [Receiver] failed to connect to feed.community.greenbone.net (2a0e:6b40:20:106:20c:29ff:fe67:cbb5): Network is unreachable (101)
rsync error: error in socket IO (code 10) at clientserver.c(137) [Receiver=3.2.3]
[*] Checking Default scanner
Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied

** (process:2450): ERROR (recursed) **: Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied[*] Modifying Default Scanner
Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied

** (process:2452): ERROR (recursed) **: Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied
[+] Done

Запущенная проверка:

sudo gvm-check-setup

также показала наличие ошибки на четвёртом шаге:


gvm-check-setup 20.8.0
  Test completeness and readiness of GVM-20.8.0
Step 1: Checking OpenVAS (Scanner)... 
        OK: OpenVAS Scanner is present in version 20.8.1.
        OK: Server CA Certificate is present as /var/lib/gvm/CA/servercert.pem.
Checking permissions of /var/lib/openvas/gnupg/*
        OK: _gvm owns all files in /var/lib/openvas/gnupg
        OK: redis-server is present.
        OK: scanner (db_address setting) is configured properly using the redis-server socket: /run/redis-openvas/redis.sock
        OK: redis-server is running and listening on socket: /run/redis-openvas/redis.sock.
        OK: redis-server configuration is OK and redis-server is running.
        OK: _gvm owns all files in /var/lib/openvas/plugins
        OK: NVT collection in /var/lib/openvas/plugins contains 66548 NVTs.
Checking that the obsolete redis database has been removed
Could not connect to Redis at /var/run/redis-openvas/redis-server.sock: No such file or directory
        OK: No old Redis DB
        OK: ospd-OpenVAS is present in version 20.8.1.
Step 2: Checking GVMD Manager ... 
        OK: GVM Manager (gvmd) is present in version 20.08.1.
Step 3: Checking Certificates ... 
        OK: GVM client certificate is valid and present as /var/lib/gvm/CA/clientcert.pem.
        OK: Your GVM certificate infrastructure passed validation.
Step 4: Checking data ... 
        OK: SCAP data found in /var/lib/gvm/scap-data.
        ERROR: CERT data are missing.
        FIX: Run the CERT synchronization script greenbone-feed-sync.
        sudo runuser -u _gvm -- greenbone-feed-sync --type CERT.

 ERROR: Your GVM-20.8.0 installation is not yet complete!

Please follow the instructions marked with FIX above and run this
script again.

Для исправления ошибки «ERROR: CERT data are missing. FIX: Run the CERT synchronization script greenbone-feed-sync.» выполните следующую команду:

sudo runuser -u _gvm -- greenbone-feed-sync --type CERT

Повторный запуск проверки показал ошибку на пятом шаге:

Step 5: Checking Postgresql DB and user ... 
        OK: Postgresql version and default port are OK.
 gvmd         | _gvm         | UTF8      | ru_RU.UTF-8 | ru_RU.UTF-8 | 
Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied

** (process:2699): ERROR (recursed) **: Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied        ERROR: No users found. You need to create at least one user to log in.
        FIX: create a user by running 'sudo runuser -u _gvm -- gvmd --create-user=<name> --password=<password>'

 ERROR: Your GVM-20.8.0 installation is not yet complete!

Please follow the instructions marked with FIX above and run this
script again.

Там сразу несколько ошибок, но ключевой является «ERROR: No users found. You need to create at least one user to log in.», для её исправления выполните команду вида:

sudo runuser -u _gvm -- gvmd --create-user=<ИМЯ> --password=<ПАРОЛЬ>

Например, для создания пользователя с именем mial и паролем 2:

sudo runuser -u _gvm -- gvmd --create-user=mial --password=2

Предыдущая команда завершилась неудачей:

Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied

** (process:2807): ERROR (recursed) **: Can not open '/var/log/gvm/gvmd.log' logfile: Permission denied

Суть ошибки в том, что у команды не хватает прав на запись в файл /var/log/gvm/gvmd.log даже не смотря на то, что предыдущая команда запущена с sudo. Для исправления ошибки выполните следующую команду:

sudo chmod 666 /var/log/gvm/gvmd.log

Затем вновь запустите создание нового пользователя.

И ещё одна ошибка на седьмом шаге:

Step 7: Checking if GVM services are up and running ... 
        OK: ospd-openvas service is active.
        Starting gvmd service
        Waiting for gvmd service
        OK: gvmd service is active.
        Starting greenbone-security-assistant service
Job for greenbone-security-assistant.service failed because a fatal signal was delivered to the control process.
See "systemctl status greenbone-security-assistant.service" and "journalctl -xe" for details.
        Waiting for greenbone-security-assistant service
        ERROR: greenbone-security-assistant service did not start.
        Please check journalctl -xe and /var/log/gvm/gsad.log

 ERROR: Your GVM-20.8.0 installation is not yet complete!

Please follow the instructions marked with FIX above and run this
script again.

Я не знаю как её решить до конца, но знаю как обойти.

Перейдём к запуску необходимых служб.

Не забывайте, что перед запуском службы вам нужно запустить сервер Redis, то есть перед выполнить команду:

sudo systemctl start redis-server@openvas.service

Запуск службы:

sudo gvm-start

И получаем следующее:

[*] Please wait for the GVM / OpenVAS services to start.
[*]
[*] You might need to refresh your browser once it opens.
[*]
[*]  Web UI (Greenbone Security Assistant): https://127.0.0.1:9392

Job for greenbone-security-assistant.service failed because a fatal signal was delivered to the control process.
See "systemctl status greenbone-security-assistant.service" and "journalctl -xe" for details.

Суть сообщений в том, что всё нормально запустилось, кроме greenbone-security-assistant, то есть gsa, то есть Web UI (Greenbone Security Assistant), ну то есть веб-интерфейса.

Можно посмотреть содержимое журнала:

cat /var/log/gvm/gsad.log

Вывод:

gsad main:MESSAGE:2021-04-15 09h07.55 utc:1650: Starting GSAD version 20.08.1~git
gsad main:CRITICAL:2021-04-15 09h07.55 utc:1651: main: start_https_daemon failed!

Не удалось запустить https демон.

У gsad есть опция --http-only которая запускает только HTTP без HTTPS. Воспользуемся ею:

sudo gsad --http-only

Опять будет выведено очередное сообщение, что что-то не так:

Oops, secure memory pool already initialized

Тем не менее, теперь веб-интерфейс доступен по адресу http://127.0.0.1:9392 (но не доступен по https://127.0.0.1:9392!).

Войдите в него используя учётные данные, которые вы придумали при создании нового пользователя.

Остановка службы:

sudo gvm-stop

Прочее:

sudo gvm-cli
sudo gvm-feed-update
sudo gvm-manage-certs
sudo gvm-pyshell
gvm-script

В будущем для обновления сигнатур запускайте иногда команду:

sudo runuser -u _gvm -- greenbone-nvt-sync

Если что-то не работает, то посмотреть журнал можно командой:

sudo cat /var/log/gvm/gvmd.log

Заключение

О том, как работать в Greenbone Vulnerability Management (GVM) (бывшем OpenVAS) будет посвящена одна из следующих инструкций.

А вы не забудьте написать — возникали ли у вас при установке описанные ошибки.

Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован.