Обновление GVM (Greenbone Vulnerability Management) на Debian 12
Данное руководство описывает процесс обновления компонентов GVM (Greenbone Vulnerability Management) до актуальной версии в среде Debian 12.
Включены все этапы: обновление системы, установка или пересборка компонентов (gvmd, ospd-openvas, openvas-scanner и другие), миграция базы данных PostgreSQL, настройка сервисов и устранение типичных ошибок, таких как несовместимость версий кластеров PostgreSQL и проблемы с сокетами.
Предварительные действия
Сперва останавливаем службы GVM:
systemctl stop ospd-openvas
systemctl stop gvmd
systemctl stop gsad
systemctl stop openvasd
Устанавливаем необходимый пакет, если таковой ранее не был установлен:
apt-get install libkrb5-dev -y
Обновляем язык программирования Rust
который необходимый для сборки openvasd
.
rustup update --no-self-update
Скачивание компонентов
Актуальные версии пакетов можно узнать по ссылкам:
- Releases · greenbone/gvm-libs
- Releases · greenbone/gvmd
- Releases · greenbone/pg-gvm
- Releases · greenbone/gsa
- Releases · greenbone/gsad
- Releases · greenbone/openvas-smb
- Releases · greenbone/openvas-scanner
- Releases · greenbone/ospd-openvas
Для удобства создадим каталог для размещения актуальных версий пакетов входящих в состав GVM и скачиваем исходников пакетов и распаковываем их:
mkdir -p /opt/update
cd /opt/update/
export GVM_LIBS_VERSION=22.21.0
export GVMD_VERSION=25.2.1
export PG_GVM_VERSION=22.6.9
export GSA_VERSION=24.6.1
export GSAD_VERSION=24.2.4
export OPENVAS_SMB_VERSION=22.5.7
export OPENVAS_SCANNER_VERSION=23.16.1
export OSPD_OPENVAS_VERSION=22.8.2
curl -f -L https://github.com/greenbone/gvm-libs/archive/refs/tags/v$GVM_LIBS_VERSION.tar.gz -o gvm-libs-$GVM_LIBS_VERSION.tar.gz
curl -f -L https://github.com/greenbone/gvmd/archive/refs/tags/v$GVMD_VERSION.tar.gz -o gvmd-$GVMD_VERSION.tar.gz
curl -f -L https://github.com/greenbone/pg-gvm/archive/refs/tags/v$PG_GVM_VERSION.tar.gz -o pg-gvm-$PG_GVM_VERSION.tar.gz
curl -f -L https://github.com/greenbone/gsa/archive/refs/tags/v$GSA_VERSION.tar.gz -o gsa-$GSA_VERSION.tar.gz
curl -f -L https://github.com/greenbone/gsad/archive/refs/tags/v$GSAD_VERSION.tar.gz -o gsad-$GSAD_VERSION.tar.gz
curl -f -L https://github.com/greenbone/openvas-smb/archive/refs/tags/v$OPENVAS_SMB_VERSION.tar.gz -o openvas-smb-$OPENVAS_SMB_VERSION.tar.gz
curl -f -L https://github.com/greenbone/openvas-scanner/archive/refs/tags/v$OPENVAS_SCANNER_VERSION.tar.gz -o openvas-scanner-$OPENVAS_SCANNER_VERSION.tar.gz
curl -f -L https://github.com/greenbone/ospd-openvas/archive/refs/tags/v$OSPD_OPENVAS_VERSION.tar.gz -o ospd-openvas-$OSPD_OPENVAS_VERSION.tar.gz
tar -xvzf gvm-libs-$GVM_LIBS_VERSION.tar.gz && mv gvm-libs-$GVM_LIBS_VERSION gvm-libs
tar -xvzf gvmd-$GVMD_VERSION.tar.gz && mv gvmd-$GVMD_VERSION gvmd
tar -xvzf pg-gvm-$PG_GVM_VERSION.tar.gz && mv pg-gvm-$PG_GVM_VERSION pg-gvm
mkdir gsa && tar -C "gsa" -xvzf gsa-$GSA_VERSION.tar.gz
tar -xvzf gsad-$GSAD_VERSION.tar.gz && mv gsad-$GSAD_VERSION gsad
tar -xvzf openvas-smb-$OPENVAS_SMB_VERSION.tar.gz && mv openvas-smb-$OPENVAS_SMB_VERSION openvas-smb
tar -xvzf openvas-scanner-$OPENVAS_SCANNER_VERSION.tar.gz && mv openvas-scanner-$OPENVAS_SCANNER_VERSION openvas-scanner
tar -xvzf ospd-openvas-$OSPD_OPENVAS_VERSION.tar.gz && mv ospd-openvas-$OSPD_OPENVAS_VERSION ospd-openvas
Сборка и установка пакетов
Последовательно собираем и устанавливаем пакеты.
gvm-libs
Модуль библиотек для Greenbone Community Edition.
cd gvm-libs
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DSYSCONFDIR=/etc -DLOCALSTATEDIR=/var
make
make install
cd ../..
gvmd
Greenbone Vulnerability Manager — бэкэнд базы данных для Greenbone Community Edition.
cd gvmd
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DLOCALSTATEDIR=/var -DSYSCONFDIR=/etc -DGVM_DATA_DIR=/var -DGVMD_RUN_DIR=/run/gvmd -DOPENVAS_DEFAULT_SOCKET=/run/ospd/ospd-openvas.sock -DGVM_FEED_LOCK_PATH=/var/lib/gvm/feed-update.lock -DSYSTEMD_SERVICE_DIR=/lib/systemd/system -DDEFAULT_CONFIG_DIR=/etc/default -DLOGROTATE_DIR=/etc/logrotate.d
make
make install
cd ../..
pg-gvm
Библиотека Greenbone для вспомогательных функций в PostgreSQL.
cd pg-gvm
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
make install
cd ../..
gsa
Greenbone Security Assistant — web frontend для Greenbone Community Edition.
cd gsa
mkdir -p /usr/local/share/gvm/gsad/web
cp -rv * /usr/local/share/gvm/gsad/web
cd ..
gsad
Greenbone Security Assistant HTTP Server — сервер, взаимодействующий с демоном Greenbone Vulnerability Management daemon (gvmd).
cd gsad
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DSYSCONFDIR=/etc -DLOCALSTATEDIR=/var -DGVMD_RUN_DIR=/run/gvmd -DGSAD_RUN_DIR=/run/gsad -DLOGROTATE_DIR=/etc/logrotate.d
make
make install
cd ../..
openvas-smb
Это smb-модуль для сканера OpenVAS. Он включает библиотеку openvas-wmiclient для взаимодействия с системами Microsoft Windows через Windows Management Instrumentation API и двоичный файл wmic для удаленного выполнения запросов на этой системе.
cd openvas-smb
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release
make
make install
cd ../..
openvas-scanner
Сканер OpenVAS представляет собой полнофункциональный механизм сканирования, выполняющий постоянно обновляемый и расширенный набор тестов уязвимостей (VT).
cd openvas-scanner
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DINSTALL_OLD_SYNC_SCRIPT=OFF -DSYSCONFDIR=/etc -DLOCALSTATEDIR=/var -DOPENVAS_FEED_LOCK_PATH=/var/lib/openvas/feed-update.lock -DOPENVAS_RUN_DIR=/run/ospd
make
make install
cd ../..
ospd-openvas
ospd-openvas — это реализация OSP-сервера для удаленного управления OpenVAS Scanner.
cd ospd-openvas
python3 -m pip install . --prefix=/usr --no-warn-script-location
cd ..
openvasd
OpenVASD используется для обнаружения уязвимых продуктов.
cd openvas-scanner/rust
cargo build --release
cd target/release/
cp -rv openvasd /usr/local/bin/
cp -rv scannerctl /usr/local/bin/
cd ../../../..
greenbone-feed-sync
Инструмент для загрузки Greenbone Community Feed.
python3 -m pip install --prefix=/usr --no-warn-script-location greenbone-feed-sync
gvm-tools
Удаленное управление Greenbone Community Edition.
python3 -m pip install --prefix=/usr --no-warn-script-location gvm-tools
Настройка разрешений
После обновления пакетов, создаем необходимые каталоги и применяем права доступа:
mkdir -p /var/lib/notus
mkdir -p /run/gvmd
chown -R gvm:gvm /var/lib/gvm
chown -R gvm:gvm /var/lib/openvas
chown -R gvm:gvm /var/lib/notus
chown -R gvm:gvm /var/log/gvm
chown -R gvm:gvm /run/gvmd
chmod -R g+srw /var/lib/gvm
chmod -R g+srw /var/lib/openvas
chmod -R g+srw /var/log/gvm
chown gvm:gvm /usr/local/sbin/gvmd
chmod 6750 /usr/local/sbin/gvmd
Настройка Systemd
Перезагружаем демон systemd
systemctl daemon-reload
Настройка базы данных PostgreSQL
Выполняем миграцию базы данных на актуальную версию:
sudo -u gvm gvmd --migrate
Синхронизация данных
sudo -u gvm greenbone-feed-sync
Запуск служб
Запускаем службы и выводим их статус для проверки что все успешно запустилось.
ldconfig
systemctl start ospd-openvas
systemctl start gvmd
systemctl start gsad
systemctl start openvasd
systemctl status ospd-openvas
systemctl status gvmd
systemctl status gsad
systemctl status openvasd
Прошу обратить внимание что порядок обновления может не сработать, если с момента написания статьи разработчики GVM внесли какие то кардинальные изменения в систему. Но думаю что в рамках 22.x.x версии должно все проходить по описанному сценарию. В противном случае нужно смотреть на ошибки в процессе сборки пакетов.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.