SCROLL
Среднее время на прочтение: 9 мин.

Установка GVM (Greenbone Vulnerability Management) 23.* на Debian 12

Greenbone — это программное обеспечение для сканирования уязвимостей и управления ими с открытым исходным кодом. Оно предоставляет набор тестов на сетевую уязвимость для поиска лазеек безопасности в системах и приложениях.

Установка зависимостей

Устанавливаем необходимые пакеты зависимостей.

YXB0LWdldCUyMGluc3RhbGwlMjBidWlsZC1lc3NlbnRpYWwlMjBjbWFrZSUyMHBrZy1jb25maWclMjBnbnVwZyUyMGN1cmwlMjBsaWJnbGliMi4wLWRldiUyMGxpYmdwZ21lLWRldiUyMGxpYmdudXRsczI4LWRldiUyMHV1aWQtZGV2JTIwbGlic3NoLWdjcnlwdC1kZXYlMjBsaWJoaXJlZGlzLWRldiUyMGxpYnhtbDItZGV2JTIwbGlicGNhcC1kZXYlMjBsaWJuZXQxLWRldiUyMGxpYnBhaG8tbXF0dC1kZXYlMjBsaWJsZGFwMi1kZXYlMjBsaWJyYWRjbGktZGV2JTIwbGlicHEtZGV2JTIwbGliaWNhbC1kZXYlMjB4c2x0cHJvYyUyMGxpYmJzZC1kZXYlMjBsaWJzc2wtZGV2JTIwbGlibWljcm9odHRwZC1kZXYlMjBnY2MtbWluZ3ctdzY0JTIwbGlicG9wdC1kZXYlMjBsaWJ1bmlzdHJpbmctZGV2JTIwaGVpbWRhbC1kZXYlMjBwZXJsLWJhc2UlMjBiaXNvbiUyMGxpYmdjcnlwdDIwLWRldiUyMGxpYmtzYmEtZGV2JTIwcnN5bmMlMjBubWFwJTIwbGlianNvbi1nbGliLWRldiUyMGxpYmNqc29uLWRldiUyMGxpYmN1cmw0LWdudXRscy1kZXYlMjBsaWJzbm1wLWRldiUyMG1vc3F1aXR0byUyMHB5dGhvbjMlMjBweXRob24zLXBpcCUyMHB5dGhvbjMtc2V0dXB0b29scyUyMHB5dGhvbjMtcGFja2FnaW5nJTIwcHl0aG9uMy13cmFwdCUyMHB5dGhvbjMtY2ZmaSUyMHB5dGhvbjMtcHN1dGlsJTIwcHl0aG9uMy1seG1sJTIwcHl0aG9uMy1kZWZ1c2VkeG1sJTIwcHl0aG9uMy1wYXJhbWlrbyUyMHB5dGhvbjMtcmVkaXMlMjBweXRob24zLWdudXBnJTIwcHl0aG9uMy1pbXBhY2tldCUyMHB5dGhvbjMtcGFoby1tcXR0JTIwcG9zdGdyZXNxbCUyMHBvc3RncmVzcWwtY29udHJpYiUyMHBvc3RncmVzcWwtc2VydmVyLWRldi0xNSUyMC15
Если сборка выполняется на Debian 11, то нужно устанавливать пакет postgresql-server-dev-13, который доступен в репозиториях.

Создание пользователя

Создаем пользователя от которого будет работать GVM службы.

useradd -r -M -U -s /usr/sbin/nologin -c "GVM User" gvm

Сборка и установка компонентов

JUQwJUExJUQwJUJBJUQwJUIwJUQxJTg3JUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JTIwJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUIyJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJUQwJUJFJUQwJUIyJTIwJUQwJUIyJUQxJTg1JUQwJUJFJUQwJUI0JUQxJThGJUQxJTg5JUQwJUI4JUQxJTg1JTIwJUQwJUIyJTIwJUQxJTgxJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQxJThCJTIwR1ZNJTIwMjMuKiUyMCVEMCVCOCUyMCVEMSU4MCVEMCVCMCVEMSU4MSVEMCVCRiVEMCVCMCVEMCVCQSVEMCVCRSVEMCVCMiVEMSU4QiVEMCVCMiVEMCVCMCVEMCVCNSVEMCVCQyUyMCVEMCVCOCVEMSU4NS4=

Указанные версии компонентов GVM актуальны на момент написания статьи.

JUQwJTkwJUQwJUJBJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJUQwJUJFJUQwJUIyJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgzJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUJGJUQwJUJFJTIwJUQxJTgxJUQxJTgxJUQxJThCJUQwJUJCJUQwJUJBJUQwJUIwJUQwJUJDJTNB

mkdir -p /opt/gvm-source
Y2QlMjAlMkZvcHQlMkZndm0tc291cmNlJTJG

export GVM_LIBS_VERSION=22.14.0
export GVMD_VERSION=24.0.0
ZXhwb3J0JTIwUEdfR1ZNX1ZFUlNJT04lM0QyMi42LjU=
export GSA_VERSION=24.0.1
export GSAD_VERSION=24.0.0
ZXhwb3J0JTIwT1BFTlZBU19TTUJfVkVSU0lPTiUzRDIyLjUuNg==
ZXhwb3J0JTIwT1BFTlZBU19TQ0FOTkVSX1ZFUlNJT04lM0QyMy4xMS4x
ZXhwb3J0JTIwT1NQRF9PUEVOVkFTX1ZFUlNJT04lM0QyMi43LjE=

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
Y3VybCUyMC1mJTIwLUwlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZncmVlbmJvbmUlMkZwZy1ndm0lMkZhcmNoaXZlJTJGcmVmcyUyRnRhZ3MlMkZ2JTI0UEdfR1ZNX1ZFUlNJT04udGFyLmd6JTIwLW8lMjBwZy1ndm0tJTI0UEdfR1ZNX1ZFUlNJT04udGFyLmd6
curl -f -L https://github.com/greenbone/gsa/archive/refs/tags/v$GSA_VERSION.tar.gz -o gsa-$GSA_VERSION.tar.gz
Y3VybCUyMC1mJTIwLUwlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZncmVlbmJvbmUlMkZnc2ElMkZyZWxlYXNlcyUyRmRvd25sb2FkJTJGdiUyNEdTQV9WRVJTSU9OJTJGZ3NhLWRpc3QtJTI0R1NBX1ZFUlNJT04udGFyLmd6JTIwLW8lMjBnc2EtJTI0R1NBX1ZFUlNJT04udGFyLmd6
Y3VybCUyMC1mJTIwLUwlMjBodHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZncmVlbmJvbmUlMkZnc2FkJTJGYXJjaGl2ZSUyRnJlZnMlMkZ0YWdzJTJGdiUyNEdTQURfVkVSU0lPTi50YXIuZ3olMjAtbyUyMGdzYWQtJTI0R1NBRF9WRVJTSU9OLnRhci5neg==
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

dGFyJTIwLXh2emYlMjBndm0tbGlicy0lMjRHVk1fTElCU19WRVJTSU9OLnRhci5neiUyMCUyNiUyNiUyMG12JTIwZ3ZtLWxpYnMtJTI0R1ZNX0xJQlNfVkVSU0lPTiUyMGd2bS1saWJz
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
dGFyJTIwLXh2emYlMjBnc2FkLSUyNEdTQURfVkVSU0lPTi50YXIuZ3olMjAlMjYlMjYlMjBtdiUyMGdzYWQtJTI0R1NBRF9WRVJTSU9OJTIwZ3NhZA==
dGFyJTIwLXh2emYlMjBvcGVudmFzLXNtYi0lMjRPUEVOVkFTX1NNQl9WRVJTSU9OLnRhci5neiUyMCUyNiUyNiUyMG12JTIwb3BlbnZhcy1zbWItJTI0T1BFTlZBU19TTUJfVkVSU0lPTiUyMG9wZW52YXMtc21i
tar -xvzf openvas-scanner-$OPENVAS_SCANNER_VERSION.tar.gz && mv openvas-scanner-$OPENVAS_SCANNER_VERSION openvas-scanner
dGFyJTIwLXh2emYlMjBvc3BkLW9wZW52YXMtJTI0T1NQRF9PUEVOVkFTX1ZFUlNJT04udGFyLmd6JTIwJTI2JTI2JTIwbXYlMjBvc3BkLW9wZW52YXMtJTI0T1NQRF9PUEVOVkFTX1ZFUlNJT04lMjBvc3BkLW9wZW52YXM=

JUQwJTk0JUQwJUIwJUQwJUJCJUQwJUI1JUQwJUI1JTIwJUQwJUJGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJTIwJUQxJTgxJUQwJUJFJUQwJUIxJUQwJUI4JUQxJTgwJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI4JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJUQxJThCLg==

gvm-libs

Y2QlMjBndm0tbGlicw==
bWtkaXIlMjBidWlsZCUyMCUyNiUyNiUyMGNkJTIwYnVpbGQ=
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release -DSYSCONFDIR=/etc -DLOCALSTATEDIR=/var
make
make install
Y2QlMjAuLiUyRi4u

gvmd

cd gvmd
mkdir build && cd build
Y21ha2UlMjAuLiUyMC1EQ01BS0VfSU5TVEFMTF9QUkVGSVglM0QlMkZ1c3IlMkZsb2NhbCUyMC1EQ01BS0VfQlVJTERfVFlQRSUzRFJlbGVhc2UlMjAtRExPQ0FMU1RBVEVESVIlM0QlMkZ2YXIlMjAtRFNZU0NPTkZESVIlM0QlMkZldGMlMjAtREdWTV9EQVRBX0RJUiUzRCUyRnZhciUyMC1ER1ZNRF9SVU5fRElSJTNEJTJGcnVuJTJGZ3ZtZCUyMC1ET1BFTlZBU19ERUZBVUxUX1NPQ0tFVCUzRCUyRnJ1biUyRm9zcGQlMkZvc3BkLW9wZW52YXMuc29jayUyMC1ER1ZNX0ZFRURfTE9DS19QQVRIJTNEJTJGdmFyJTJGbGliJTJGZ3ZtJTJGZmVlZC11cGRhdGUubG9jayUyMC1EU1lTVEVNRF9TRVJWSUNFX0RJUiUzRCUyRmxpYiUyRnN5c3RlbWQlMkZzeXN0ZW0lMjAtRERFRkFVTFRfQ09ORklHX0RJUiUzRCUyRmV0YyUyRmRlZmF1bHQlMjAtRExPR1JPVEFURV9ESVIlM0QlMkZldGMlMkZsb2dyb3RhdGUuZA==
make
make install
Y2QlMjAuLiUyRi4u

pg-gvm

cd pg-gvm
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
bWFrZQ==
bWFrZSUyMGluc3RhbGw=
Y2QlMjAuLiUyRi4u

gsa

Y2QlMjBnc2E=
bWtkaXIlMjAtcCUyMCUyRnVzciUyRmxvY2FsJTJGc2hhcmUlMkZndm0lMkZnc2FkJTJGd2Vi
cp -rv * /usr/local/share/gvm/gsad/web
Y2QlMjAuLg==

gsad

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
Y2QlMjAuLiUyRi4u

openvas-smb

Y2QlMjBvcGVudmFzLXNtYg==
bWtkaXIlMjBidWlsZCUyMCUyNiUyNiUyMGNkJTIwYnVpbGQ=
Y21ha2UlMjAuLiUyMC1EQ01BS0VfSU5TVEFMTF9QUkVGSVglM0QlMkZ1c3IlMkZsb2NhbCUyMC1EQ01BS0VfQlVJTERfVFlQRSUzRFJlbGVhc2U=
make
bWFrZSUyMGluc3RhbGw=
Y2QlMjAuLiUyRi4u

openvas-scanner

Y2QlMjBvcGVudmFzLXNjYW5uZXI=
bWtkaXIlMjBidWlsZCUyMCUyNiUyNiUyMGNkJTIwYnVpbGQ=
Y21ha2UlMjAuLiUyMC1EQ01BS0VfSU5TVEFMTF9QUkVGSVglM0QlMkZ1c3IlMkZsb2NhbCUyMC1EQ01BS0VfQlVJTERfVFlQRSUzRFJlbGVhc2UlMjAtRElOU1RBTExfT0xEX1NZTkNfU0NSSVBUJTNET0ZGJUMyJUEwLURTWVNDT05GRElSJTNEJTJGZXRjJTIwLURMT0NBTFNUQVRFRElSJTNEJTJGdmFyJTIwLURPUEVOVkFTX0ZFRURfTE9DS19QQVRIJTNEJTJGdmFyJTJGbGliJTJGb3BlbnZhcyUyRmZlZWQtdXBkYXRlLmxvY2slMjAtRE9QRU5WQVNfUlVOX0RJUiUzRCUyRnJ1biUyRm9zcGQ=
make
make install
cd ../..

ospd-openvas

Y2QlMjBvc3BkLW9wZW52YXM=
cHl0aG9uMyUyMC1tJTIwcGlwJTIwaW5zdGFsbCUyMC4lMjAtLXByZWZpeCUzRCUyRnVzciUyMC0tbm8td2Fybi1zY3JpcHQtbG9jYXRpb24=
Y2QlMjAuLg==

openvasd

JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJThGJUQwJUI3JUQxJThCJUQwJUJBJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIzJUQxJTgwJUQwJUIwJUQwJUJDJUQwJUJDJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQxJThGJTIwUnVzdCUyMCVEMCVCRCVEMCVCNSVEMCVCRSVEMCVCMSVEMSU4NSVEMCVCRSVEMCVCNCVEMCVCOCVEMCVCQyVEMSU4QiVEMCVCOSUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMSU4MSVEMCVCMSVEMCVCRSVEMSU4MCVEMCVCQSVEMCVCOCUyMG9wZW52YXNkLg==

Y3VybCUyMC0tcHJvdG8lMjAnJTNEaHR0cHMnJTIwLS10bHN2MS4yJTIwLXNTZiUyMGh0dHBzJTNBJTJGJTJGc2gucnVzdHVwLnJzJTIwJTdDJTIwc2g=
source "$HOME/.cargo/env"
Так же можно ознакомится как установить язык программирования Rust в подробной статье — https://jakondo.ru/kak-ustanovit-yazyk-programmirovaniya-rust-na-debian-11/

Собираем и устанавливаем.

Y2QlMjBvcGVudmFzLXNjYW5uZXIlMkZydXN0

Y2FyZ28lMjBidWlsZCUyMC0tcmVsZWFzZQ==

cd target/release/
cp -rv openvasd /usr/local/bin/
Y3AlMjAtcnYlMjBzY2FubmVyY3RsJTIwJTJGdXNyJTJGbG9jYWwlMkZiaW4lMkY=
cd ../../../..

greenbone-feed-sync

cHl0aG9uMyUyMC1tJTIwcGlwJTIwaW5zdGFsbCUyMC0tcHJlZml4JTNEJTJGdXNyJTIwLS1uby13YXJuLXNjcmlwdC1sb2NhdGlvbiUyMGdyZWVuYm9uZS1mZWVkLXN5bmM=

gvm-tools

python3 -m pip install --prefix=/usr --no-warn-script-location gvm-tools

Настройка системы

Настройка Redis

JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUIwJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwJTIwUmVkaXMu

YXB0LWdldCUyMGluc3RhbGwlMjByZWRpcy1zZXJ2ZXIlMjAlMjAteQ==

Добавление конфигурации для запуска сервера Redis для сканера.

Y3AlMjAlMkZvcHQlMkZndm0tc291cmNlJTJGb3BlbnZhcy1zY2FubmVyJTJGY29uZmlnJTJGcmVkaXMtb3BlbnZhcy5jb25mJTIwJTJGZXRjJTJGcmVkaXMlMkY=
Y2hvd24lMjByZWRpcyUzQXJlZGlzJTIwJTJGZXRjJTJGcmVkaXMlMkZyZWRpcy1vcGVudmFzLmNvbmY=

echo "db_address = /run/redis-openvas/redis.sock" | tee -a /etc/openvas/openvas.conf

Запускаем службу Redis и добавляем ее в автозагрузку.

systemctl start redis-server@openvas.service
systemctl enable redis-server@openvas.service

Добавление пользователя gvm в группу redis, чтобы иметь доступ к сокету redis unix по адресу /run/redis-openvas/redis.sock

dXNlcm1vZCUyMC1hRyUyMHJlZGlzJTIwZ3Zt

Настройка разрешений

JUQwJTlEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUIwJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUI4JTIwJUQwJUJFJUQxJTgyJUQwJUJEJUQwJUJFJUQxJTgxJUQxJThGJUQxJTg5JUQwJUI4JUQwJUI1JUQxJTgxJUQxJThGJTIwJUQwJUJBJTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQwJUI1JTIwR1ZNLg==

bWtkaXIlMjAtcCUyMCUyRnZhciUyRmxpYiUyRm5vdHVz
bWtkaXIlMjAtcCUyMCUyRnJ1biUyRmd2bWQ=

Y2hvd24lMjAtUiUyMGd2bSUzQWd2bSUyMCUyRnZhciUyRmxpYiUyRmd2bQ==
chown -R gvm:gvm /var/lib/openvas
Y2hvd24lMjAtUiUyMGd2bSUzQWd2bSUyMCUyRnZhciUyRmxpYiUyRm5vdHVz
Y2hvd24lMjAtUiUyMGd2bSUzQWd2bSUyMCUyRnZhciUyRmxvZyUyRmd2bQ==
chown -R gvm:gvm /run/gvmd

Y2htb2QlMjAtUiUyMGclMkJzcnclMjAlMkZ2YXIlMkZsaWIlMkZndm0=
chmod -R g+srw /var/lib/openvas
Y2htb2QlMjAtUiUyMGclMkJzcnclMjAlMkZ2YXIlMkZsb2clMkZndm0=

chown gvm:gvm /usr/local/sbin/gvmd
Y2htb2QlMjA2NzUwJTIwJTJGdXNyJTJGbG9jYWwlMkZzYmluJTJGZ3ZtZA==

Импорт ключа подписи

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJBJUQwJUI4JTIwJUQxJTg2JUQwJUI1JUQwJUJCJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUJEJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUI2JUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUJEJUQxJThCJUQxJTg1JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUJFJUQwJUIyJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQxJTgzJUQwJUI1JUQxJTgyJUQxJTgxJUQxJThGJTIwR251UEclMjAlRDAlQjglRDElODElRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDElODMlRDAlQjUlRDElODIlRDElODElRDElOEYlMjAlRDAlQkUlRDElODIlRDAlQkElRDElODAlRDElOEIlRDElODIlRDElOEIlRDAlQjklMjAlRDAlQkElRDAlQkIlRDElOEUlRDElODclMjAlRDAlQkYlRDAlQkUlRDAlQjQlRDAlQkYlRDAlQjglRDElODElRDAlQjglMjAlRDElODElRDAlQkUlRDAlQkUlRDAlQjElRDElODklRDAlQjUlRDElODElRDElODIlRDAlQjIlRDAlQjAlMjBHcmVlbmJvbmUlMjAlRDAlQjglRDAlQkMlRDAlQkYlRDAlQkUlRDElODAlRDElODIlRDAlQjglRDElODAlRDAlQkUlRDAlQjIlRDAlQjAlRDAlQkQlRDAlQkQlRDElOEIlRDAlQjklMjAlRDAlQjIlMjAlRDElODElRDAlQjIlRDElOEYlRDAlQjclRDAlQkElRDElODMlMjAlRDAlQkElRDAlQkIlRDElOEUlRDElODclRDAlQjUlRDAlQjklMjAlRDElODIlRDAlQjUlRDAlQkElRDElODMlRDElODklRDAlQjUlRDAlQjMlRDAlQkUlMjAlRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDElODIlRDAlQjUlRDAlQkIlRDElOEYuJTIwJUQwJTk4JUQwJUJDJUQwJUJGJUQwJUJFJUQxJTgwJUQxJTgyJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQwJUI1JUQwJUIzJUQwJUJFLg==

curl -f -L https://www.greenbone.net/GBCommunitySigningKey.asc -o /tmp/GBCommunitySigningKey.asc

export GNUPGHOME=/tmp/openvas-gnupg
mkdir -p $GNUPGHOME

gpg --import /tmp/GBCommunitySigningKey.asc
ZWNobyUyMCUyMjhBRTRCRTQyOUI2MEE1OUIzMTFDMkU3Mzk4MjNGQUE2MEVEMUU1ODAlM0E2JTNBJTIyJTIwJTdDJTIwZ3BnJTIwLS1pbXBvcnQtb3duZXJ0cnVzdA==

ZXhwb3J0JTIwT1BFTlZBU19HTlVQR19IT01FJTNEJTJGZXRjJTJGb3BlbnZhcyUyRmdudXBn
c3VkbyUyMG1rZGlyJTIwLXAlMjAlMjRPUEVOVkFTX0dOVVBHX0hPTUU=
sudo cp -r /tmp/openvas-gnupg/* $OPENVAS_GNUPG_HOME/
sudo chown -R gvm:gvm $OPENVAS_GNUPG_HOME

Настройка sudo

Для того чтобы пользователи группы gvm запускали приложение openvas-scanner от имени пользователя root через sudo, добавим соответствующее разрешение.

ZWNobyUyMCUyMmd2bSUyMEFMTCUyMCUzRCUyME5PUEFTU1dEJTNBJTIwJTI0KHdoaWNoJTIwb3BlbnZhcyklMjIlMjAlM0UlM0UlMjAlMkZldGMlMkZzdWRvZXJzLmQlMkZndm0=

Настройка PostgreSQL

Настройка PostgreSQL. Создание пользователя и базы данных, настройка разрешений и расширений базы данных.

sudo -Hiu postgres createuser gvm
sudo -Hiu postgres createdb -O gvm gvmd
c3VkbyUyMC1IaXUlMjBwb3N0Z3JlcyUyMHBzcWwlMjAtYyUyMCdjcmVhdGUlMjByb2xlJTIwZGJhJTIwd2l0aCUyMHN1cGVydXNlciUyMG5vaW5oZXJpdCUzQiclMjBndm1k
c3VkbyUyMC1IaXUlMjBwb3N0Z3JlcyUyMHBzcWwlMjAtYyUyMCdncmFudCUyMGRiYSUyMHRvJTIwZ3ZtJTNCJyUyMGd2bWQ=

Настройка пользователя Admin

Создаем учетную запись администратора и настраиваем ее на выполнение функций владельца импорта каналов.

c3VkbyUyMGd2bWQlMjAtLWNyZWF0ZS11c2VyJTNEYWRtaW4lMjAtLXBhc3N3b3JkJTNEJyUzQ3Bhc3N3b3JkJTNFJw==

c3VkbyUyMGd2bWQlMjAtLW1vZGlmeS1zZXR0aW5nJTIwNzhlY2VhZWMtMzM4NS0xMWVhLWIyMzctMjhkMjQ0NjEyMTViJTIwLS12YWx1ZSUyMCU2MHN1ZG8lMjBndm1kJTIwLS1nZXQtdXNlcnMlMjAtLXZlcmJvc2UlMjAlN0MlMjBncmVwJTIwYWRtaW4lMjAlN0MlMjBhd2slMjAnJTdCcHJpbnQlMjAlMjQyJTdEJyU2MA==

Настройка служб для Systemd

ospd-openvas

cat << EOF > /etc/systemd/system/ospd-openvas.service
[Unit]
RGVzY3JpcHRpb24lM0RPU1BkJTIwV3JhcHBlciUyMGZvciUyMHRoZSUyME9wZW5WQVMlMjBTY2FubmVyJTIwKG9zcGQtb3BlbnZhcyk=
RG9jdW1lbnRhdGlvbiUzRG1hbiUzQW9zcGQtb3BlbnZhcyg4KSUyMG1hbiUzQW9wZW52YXMoOCk=
After=network.target networking.service redis-server@openvas.service mosquitto.service
Wants=redis-server@openvas.service mosquitto.service notus-scanner.service
Q29uZGl0aW9uS2VybmVsQ29tbWFuZExpbmUlM0QhcmVjb3Zlcnk=

JTVCU2VydmljZSU1RA==
VHlwZSUzRGV4ZWM=
VXNlciUzRGd2bQ==
R3JvdXAlM0Rndm0=
RuntimeDirectory=ospd
UnVudGltZURpcmVjdG9yeU1vZGUlM0QyNzc1
PIDFile=/run/ospd/ospd-openvas.pid
RXhlY1N0YXJ0JTNEJTJGdXNyJTJGbG9jYWwlMkZiaW4lMkZvc3BkLW9wZW52YXMlMjAtLWZvcmVncm91bmQlMjAtLXVuaXgtc29ja2V0JTIwJTJGcnVuJTJGb3NwZCUyRm9zcGQtb3BlbnZhcy5zb2NrJTIwLS1waWQtZmlsZSUyMCUyRnJ1biUyRm9zcGQlMkZvc3BkLW9wZW52YXMucGlkJTIwLS1sb2ctZmlsZSUyMCUyRnZhciUyRmxvZyUyRmd2bSUyRm9zcGQtb3BlbnZhcy5sb2clMjAtLWxvY2stZmlsZS1kaXIlMjAlMkZ2YXIlMkZsaWIlMkZvcGVudmFzJTIwLS1zb2NrZXQtbW9kZSUyMDBvNzcwJTIwLS1tcXR0LWJyb2tlci1hZGRyZXNzJTIwbG9jYWxob3N0JTIwLS1tcXR0LWJyb2tlci1wb3J0JTIwMTg4MyUyMC0tbm90dXMtZmVlZC1kaXIlMjAlMkZ2YXIlMkZsaWIlMkZub3R1cyUyRmFkdmlzb3JpZXM=
U3VjY2Vzc0V4aXRTdGF0dXMlM0RTSUdLSUxM
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target
EOF

gvmd

Y2F0JTIwJTNDJTNDJTIwRU9GJTIwJTNFJTIwJTJGbGliJTJGc3lzdGVtZCUyRnN5c3RlbSUyRmd2bWQuc2VydmljZQ==
[Unit]
RGVzY3JpcHRpb24lM0RHcmVlbmJvbmUlMjBWdWxuZXJhYmlsaXR5JTIwTWFuYWdlciUyMGRhZW1vbiUyMChndm1kKQ==
QWZ0ZXIlM0RuZXR3b3JrLnRhcmdldCUyMG5ldHdvcmtpbmcuc2VydmljZSUyMHBvc3RncmVzcWwuc2VydmljZSUyMG9zcGQtb3BlbnZhcy5zZXJ2aWNl
Wants=postgresql.service ospd-openvas.service
RG9jdW1lbnRhdGlvbiUzRG1hbiUzQWd2bWQoOCk=
ConditionKernelCommandLine=!recovery
[Service]
VHlwZSUzRGZvcmtpbmc=
VXNlciUzRGd2bQ==
R3JvdXAlM0Rndm0=
UElERmlsZSUzRCUyRnJ1biUyRmd2bWQlMkZndm1kLnBpZA==
RuntimeDirectory=gvmd
RuntimeDirectoryMode=2775
ExecStart=/usr/local/sbin/gvmd --osp-vt-update=/run/ospd/ospd-openvas.sock --listen-group=gvm
UmVzdGFydCUzRGFsd2F5cw==
TimeoutStopSec=10
JTVCSW5zdGFsbCU1RA==
WantedBy=multi-user.target
EOF

gsad

cat << EOF > /etc/systemd/system/gsad.service
JTVCVW5pdCU1RA==
RGVzY3JpcHRpb24lM0RHcmVlbmJvbmUlMjBTZWN1cml0eSUyMEFzc2lzdGFudCUyMGRhZW1vbiUyMChnc2FkKQ==
RG9jdW1lbnRhdGlvbiUzRG1hbiUzQWdzYWQoOCklMjBodHRwcyUzQSUyRiUyRnd3dy5ncmVlbmJvbmUubmV0
After=network.target gvmd.service
Wants=gvmd.service

JTVCU2VydmljZSU1RA==
VHlwZSUzRGZvcmtpbmc=
VXNlciUzRGd2bQ==
Group=gvm
RuntimeDirectory=gsad
UnVudGltZURpcmVjdG9yeU1vZGUlM0QyNzc1
UElERmlsZSUzRCUyRnJ1biUyRmdzYWQlMkZnc2FkLnBpZA==
RXhlY1N0YXJ0JTNEJTJGdXNyJTJGbG9jYWwlMkZzYmluJTJGZ3NhZCUyMC0tbGlzdGVuJTNEMC4wLjAuMCUyMC0tcG9ydCUzRDkzOTIlMjAtLWh0dHAtb25seQ==
UmVzdGFydCUzRGFsd2F5cw==
VGltZW91dFN0b3BTZWMlM0QxMA==

[Install]
V2FudGVkQnklM0RtdWx0aS11c2VyLnRhcmdldA==
Alias=greenbone-security-assistant.service
RU9G

openvasd

cat << EOF > /etc/systemd/system/openvasd.service
[Unit]
RGVzY3JpcHRpb24lM0RPcGVuVkFTJTIwRGFlbW9u
RG9jdW1lbnRhdGlvbiUzRGh0dHBzJTNBJTJGJTJGZ2l0aHViLmNvbSUyRmdyZWVuYm9uZSUyRm9wZW52YXMtc2Nhbm5lcg==
After=ospd-openvas.service
Wants=ospd-openvas.service
ConditionKernelCommandLine=!recovery
JTVCU2VydmljZSU1RA==
VHlwZSUzRGV4ZWM=
VXNlciUzRGd2bQ==
UnVudGltZURpcmVjdG9yeSUzRG9wZW52YXNk
RuntimeDirectoryMode=2775
PIDFile=/run/openvasd/openvasd.pid
ExecStart=/usr/local/bin/openvasd --feed-path /var/lib/openvas/plugins --feed-check-interval 3600 --api-key some_api_key --ospd-socket /run/ospd/ospd-openvas.sock --read-timeout 1 --result-check-interval 1 --listening 127.0.0.1:3000 --storage-type inmemory
SuccessExitStatus=SIGKILL
Restart=always
RestartSec=60
[Install]
V2FudGVkQnklM0RtdWx0aS11c2VyLnRhcmdldA==
EOF

Информирование systemd о новых служебных файлах.

systemctl daemon-reload

Первичная синхронизации каналов

JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI0JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUJFJUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJTJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI4JUQxJTg3JUQwJUJEJUQxJTgzJUQxJThFJTIwJUQxJTgxJUQwJUI4JUQwJUJEJUQxJTg1JUQxJTgwJUQwJUJFJUQwJUJEJUQwJUI4JUQwJUI3JUQwJUIwJUQxJTg2JUQwJUI4JUQxJThFJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTJDJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUI1JTIwJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQxJThFJUQxJTgyJUQxJTgxJUQxJThGJUMyJUEwR3JlZW5ib25lJTIwQ29tbXVuaXR5JTIwRmVlZC4=

Синхронизация всегда состоит из двух этапов:

  1. Загрузка изменений с помощью скрипта greenbone-feed-sync
  2. Загрузка изменений в память и базу данных демоном
Оба этапа могут занять некоторое время, от нескольких минут до нескольких часов, особенно при первоначальной синхронизации.

JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI4JUQxJTg3JUQwJUJEJUQxJTgzJUQxJThFJTIwJUQxJTgxJUQwJUI4JUQwJUJEJUQxJTg1JUQxJTgwJUQwJUJFJUQwJUJEJUQwJUI4JUQwJUI3JUQwJUIwJUQxJTg2JUQwJUI4JUQxJThFLg==

c3VkbyUyMC11JTIwZ3ZtJTIwZ3JlZW5ib25lLWZlZWQtc3luYw==

После завершения синхронизации, добавим задание в cron (в моем случае задания добавлены для root пользователя) выполнение синхронизаций один раз в день.

# Update Feed data from Greenbone Community Feed
MCUyMDIzJTIwKiUyMColMjAqJTIwc3VkbyUyMC11JTIwZ3ZtJTIwZ3JlZW5ib25lLWZlZWQtc3luYyUyMDIlM0UlMjYx

Запуск служб

Включаем запуск служб при каждом запуске системы.

systemctl enable ospd-openvas
systemctl enable gvmd
systemctl enable gsad
systemctl enable openvasd

JUQwJTk3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQxJThCLg==

c3lzdGVtY3RsJTIwc3RhcnQlMjBvc3BkLW9wZW52YXM=
c3lzdGVtY3RsJTIwc3RhcnQlMjBndm1k
systemctl start gsad
c3lzdGVtY3RsJTIwc3RhcnQlMjBvcGVudmFzZA==

Проверка состояния служб.

systemctl status ospd-openvas
systemctl status gvmd
systemctl status gsad
c3lzdGVtY3RsJTIwc3RhdHVzJTIwb3BlbnZhc2Q=

Тюнинг

Для повышение производительности системы, рекомендую выполнить следующие настройки системы.

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

ZWNobyUyMCduZXQuY29yZS5zb21heGNvbm4lMjAlM0QlMjAxMDI0JyUyMCUzRSUzRSUyMCUyRmV0YyUyRnN5c2N0bC5jb25m
ZWNobyUyMCd2bS5vdmVyY29tbWl0X21lbW9yeSUyMCUzRCUyMDEnJTIwJTNFJTNFJTIwJTJGZXRjJTJGc3lzY3RsLmNvbmY=
c3lzY3RsJTIwLXA=

Эта настройка отключает поддержку Transparent Huge Pages (THP) для улучшения производительности некоторых приложений, снижая накладные расходы памяти.

Y2F0JTIwJTNFJTIwJTJGZXRjJTJGc3lzdGVtZCUyRnN5c3RlbSUyRmRpc2FibGVfdGhwLnNlcnZpY2UlMjAlM0MlM0MlMjAnRU9MJw==
JTVCVW5pdCU1RA==
RGVzY3JpcHRpb24lM0REaXNhYmxlJTIwS2VybmVsJTIwU3VwcG9ydCUyMGZvciUyMFRyYW5zcGFyZW50JTIwSHVnZSUyMFBhZ2VzJTIwKFRIUCk=

JTVCU2VydmljZSU1RA==
VHlwZSUzRHNpbXBsZQ==
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
V2FudGVkQnklM0RtdWx0aS11c2VyLnRhcmdldA==
EOL

c3lzdGVtY3RsJTIwZGFlbW9uLXJlbG9hZA==
systemctl enable --now disable_thp

Дополнение

Читатель блога Udgen подметил что в случае если при экспорте отчета в PDF, выгруженный файл отчета нулевого размера, то вероятно в системе отсутствуют пакеты TeX Live (LaTeX) которые Greenbone использует для экспорта отчетов в PDF.

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQwJUI4JUQxJTgyJUQxJTgzJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JTJDJTIwJUQwJUJEJUQwJUI1JUQwJUJFJUQwJUIxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUI4JUQwJUJDJUQwJUJFJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQxJTgzJTIwJUQxJTgxJUQwJUJCJUQwJUI1JUQwJUI0JUQxJTgzJUQxJThFJUQxJTg5JUQwJUI4JUQxJTg1JTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJUQwJUJFJUQwJUIyJTNB

c3VkbyUyMGFwdC1nZXQlMjBpbnN0YWxsJTIwdGV4bGl2ZSUyMHRleGxpdmUtbGF0ZXgtZXh0cmElMjB0ZXhsaXZlLWZvbnRzLXJlY29tbWVuZGVkJTIwLXk=
Так же можно установить последнюю версию следую понятной инструкций на оф. сайте — https://tug.org/texlive/quickinstall.html
 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

Ответ на комментарий АлександрОтмена ответа
11 комментариев
  • Касательно прав, отмечу, что ыло все коректно.
    использовать chown не пришлось

  • Я бы еще добавил при следующее для возможности выгрузки резултатов сканирования. Без этого через веб интерфейс выгрущить отчет не получается. Файл нулевого размера.

    Для экспорта отчетов в PDF Greenbone использует LaTeX. Проверьте, установлены ли необходимые пакеты:
    Установите LaTeX и зависимости:

    Для систем на основе Ubuntu/Debian (наш вариант):
    sudo apt-get install texlive texlive-latex-extra texlive-fonts-recommended

    Проверьте права доступа
    sudo chown -R gvm:gvm /var/lib/gvm/
    sudo chmod -R 750 /var/lib/gvm/

    sudo systemctl restart gvmd
    sudo systemctl restart gsad

    • Это ответ на комментарий Udgen

      Добавил эту информацию в статью, спасибо

  • Доброго.
    На Debian 12, как в заголовке статьи 😉

    • Это ответ на комментарий Udgen

      Понял. Прогоню у себя еще раз контрольно все по статье.

  • с настройкой sudo
    echo "gvm ALL = NOPASSWD: $(which openvas)" >> /etc/sudoers.d/gvm

    не получалось стартовать сканирование, прерывалось с сообщением Interrupted at 0%

    пришлось закомментить в настройках /etc/sudoers
    возможность подятягиваьт конфиг из /etc/sudoers.d
    добавить строку непосредственно в него

    gvm ALL=(ALL) NOPASSWD: ALL

    После этого завелось

    а так при обращении к sudo можно было увидеть ошибку
    /etc/sudoers.d/gvm:1:21: expected a fully-qualified path name
    gvm ALL = NOPASSWD: $(which openvas)»

    может чего напортачил при создании пользователя

    • Это ответ на комментарий Udgen

      хм, странно, но пусть будет.
      А на какой системе разворачивали ?
      Я сам лично не однократно копи-пастой из своей же статьи разворачивал gvm все работало. Но я все делал на Debian 12

  • У меня почему-то отсутсвуют конфиги сканирования. Создать новый или импортировать из xml-файла не получается — выдает ошибку

    • Это ответ на комментарий Александр

      А что за ошибку выдает ? По всей видимости установка у вас не гладко прошла, вероятно что то с базой.

  • Ошибки при скачивании и сборке. Возможно надо запускать все от рута?