Install and setup GVM 20.08 on Debian 10

25
792

In this guide, you will learn how to install and setup GVM 20.08 on Debian 10. Greenbone Vulnerability Management (GVM), previously known as OpenVAS, is a network security scanner which provides a set of network vulnerability tests (NVTs) to detect security loopholes in systems and applications. As of this writing, GVM 20.08 is the current stable release and  is the first release that uses a calendar based versioning (August of 2020).

With the release of GVM 20.08, GVM 10 and GVM 11 were set to retire by end of 2020.

Install and Setup GVM 20.08 on Debian 10

Prerequisites

In this demo, we will install and setup GVM 20.08 on Debian 10 from source code. As such, below are the system requirements I would personally recommend.

  • At least 4 GB RAM
  • At least 4 vCPUs
  • More than 8 GB disk space (We used 16 GB in this demo)

These requirements will vary depending on your use cases, however. Just be sure to provide “enough”.

Run System Update

To begin with, update and upgrade your system packages;

apt update
apt upgrade

Create GVM User on Ubuntu

In this demo, we will run GVM 20.08 as a non privileged system user. Thus, create gvm system user account.

useradd -r -d /opt/gvm -c "GVM User" -s /bin/bash gvm

Create the GVM user directory as specified by option -d in the command above and set the user and group ownership to gvm.

mkdir /opt/gvm
chown gvm: /opt/gvm

Install Required Build Tools

In order to successfully build GVM 20.08 on Debian 10, you need to install a number of required dependencies and build tools.

apt install gcc g++ make bison flex libksba-dev curl redis libpcap-dev \
cmake git pkg-config libglib2.0-dev libgpgme-dev nmap libgnutls28-dev uuid-dev \
libssh-gcrypt-dev libldap2-dev gnutls-bin libmicrohttpd-dev libhiredis-dev \
zlib1g-dev libxml2-dev libradcli-dev clang-format libldap2-dev doxygen \
gcc-mingw-w64 xml-twig-tools libical-dev perl-base heimdal-dev libpopt-dev  libunistring-dev graphviz \
libsnmp-dev python3-setuptools python3-paramiko python3-lxml python3-defusedxml python3-dev gettext python3-polib xmltoman \
python3-pip texlive-fonts-recommended texlive-latex-extra --no-install-recommends xsltproc sudo vim rsync

Install Yarn on Debian 10

Next, install Yarn JavaScript package manager

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
apt update
apt install yarn -y

Install PostgreSQL on Debian 10

GVM 20.08 uses PostgreSQL as the backend database. Therefore, run the command below to install PostgreSQL on Debian 10;

apt install postgresql postgresql-contrib postgresql-server-dev-all

Create PostgreSQL User and Database

Once the installation is done, create the PostgreSQL user and database for Greenbone Vulnerability Management Daemon (gvmd). Note that the database and user should be created as PostgreSQL user, postgres.

sudo -Hiu postgres
createuser gvm
createdb -O gvm gvmd

Grant PostgreSQL User DBA Roles

psql gvmd
create role dba with superuser noinherit;
grant dba to gvm;
create extension "uuid-ossp";
create extension "pgcrypto";
\q
exit

Once that is done, restart PostgreSQL;

systemctl restart postgresql
systemctl enable postgresql

Building GVM 20.08 from Source Code

There are different tools required to install and setup GVM 20.08 on Debian 10. These include;

  • GVM Libraries
  • OpenVAS Scanner
  • OSPd
  • ospd-openvas
  • Greenbone Vulnerability Manager
  • Greenbone Security Assistant
  • Python-GVM
  • GVM-Tools
  • OpenVAS SMB

Every component has README.md and a INSTALL.md file that explains how to build and install it.

Since we are running GVM as non-privileged user, gvm, then we will install all the GVM configuration files and libraries under, /opt/gvm.

Update the PATH environment variable on /etc/environment, to include the GVM binary path such that it looks like;

echo "PATH=\$PATH:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin" > /etc/profile.d/gvm.sh

Add GVM library path to /etc/ld.so.conf.d.

echo "/opt/gvm/lib" > /etc/ld.so.conf.d/gvm.conf

Build and Install GVM 20.08 on Debian 10

Switch to GVM user, gvm and create a temporary directory to store GVM source files.

su - gvm
mkdir gvm-source

Download GVM 20.08 Source Files

Navigate to temporary directory created above and run the subsequent commands to clone the GVM github branch files.

cd gvm-source
git clone -b gvm-libs-20.08 https://github.com/greenbone/gvm-libs.git
git clone -b master https://github.com/greenbone/openvas-smb.git
git clone -b openvas-20.08 https://github.com/greenbone/openvas.git
git clone -b ospd-20.08 https://github.com/greenbone/ospd.git
git clone -b ospd-openvas-20.08 https://github.com/greenbone/ospd-openvas.git
git clone -b gvmd-20.08 https://github.com/greenbone/gvmd.git
git clone -b gsa-20.08 https://github.com/greenbone/gsa.git

Once the source files are in place, proceed to build and install GVM 20.08 on Debian 10.

Note the current working directory;

pwd
/opt/gvm/gvm-source
ls -1
gsa
gvmd
gvm-libs
openvas
openvas-smb
ospd
ospd-openvas

Note that we will install all GVM 20.08 files and libraries to a non-standard location, /opt/gvm. As such, you need to set the PKG_CONFIG_PATH environment variable to the location of your pkg-config files before configuring:

export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

Be sure to replace the path, /opt/gvm, accordingly.

Build and Install GVM 11 Libraries

From within the source directory, /opt/gvm/gvm-source, in this setup, change to GVM libraries directory;

cd gvm-libs

Create a build directory and change into it;

mkdir build
cd build

Configure the build;

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm

Next, compile and install GVM libraries

make
make install

Build and Install OpenVAS scanner and OpenVAS SMB

Open Vulnerability Assessment Scanner (OpenVAS) is a full-featured scan engine that executes a continuously updated and extended feed of Network Vulnerability Tests (NVTs).

OpenVAS SMB provides modules for the OpenVAS Scanner to interface with Microsoft Windows Systems through the Windows Management Instrumentation API and a winexe binary to execute processes remotely on that system.

Build and install openvas-smb;

cd ../../openvas-smb/
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

Build and install OpenVAS scanner;

cd ../../openvas

Proceed to build and install openvas.

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

Configuring OpenVAS Scanner

The host scan information is stored temporarily on Redis server. The default configuration of Redis server is /etc/redis/redis.conf.

Switch back to privileged user and proceed.

exit

To begin run the command below to create the cache to the installed shared libraries;

ldconfig

Next, copy OpenVAS scanner Redis configuration file, redis-openvas.conf, to the same Redis config directory;

cp /opt/gvm/gvm-source/openvas/config/redis-openvas.conf /etc/redis/

Update the ownership of the configuration.

chown redis:redis /etc/redis/redis-openvas.conf

Update the path to Redis unix socket on the /opt/gvm/etc/openvas/openvas.conf using the db_address parameter as follows;

echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf

Note, the Unix socket path is defined on /etc/redis/redis-openvas.conf file.

chown gvm:gvm /opt/gvm/etc/openvas/openvas.conf

Add gvm user to redis group;

usermod -aG redis gvm

You can also optimize Redis server itself improve the performance by making the following adjustments;

Increase the value of somaxconn in order to avoid slow clients connections issues.

echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf

Redis background save may fail under low memory condition. To avoid this, enable memory overcommit (man 5 proc).

echo 'vm.overcommit_memory = 1' >> /etc/sysctl.conf

Reload sysctl variables created above.

sysctl -p

To avoid creation of latencies and memory usage issues with Redis, disable Linux Kernel’s support for Transparent Huge Pages (THP). To easily work around this, create a systemd service unit for this purpose.

cat > /etc/systemd/system/disable_thp.service << 'EOL'
[Unit]
Description=Disable Kernel Support for Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target
EOL

Reload systemd configurations;

systemctl daemon-reload

Start and enable this service to run on system boot.

systemctl enable --now disable_thp

Restart OpenVAS Redis server

systemctl enable --now [email protected]

A number of Network Vulnerability Tests (NVTs) require root privileges to perform certain operations. Since openvas is launched from an ospd-openvas process, via sudo, add the line below to sudoers file to ensure that the gvm user used in this demo can run the openvas with elevated rights using passwordless sudo.

echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas" > /etc/sudoers.d/gvm

Also, update the secure_path to include the GVM /sbin paths, /opt/gvm/sbin.

visudo
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/gvm/sbin"

Also, enable gvm user to run GSA web application daemon, gsad, with passwordless sudo.

echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad" >> /etc/sudoers.d/gvm

Update NVTs

Update Network Vulnerability Tests feed from Greenbone Security Feed/Community Feed using the greenbone-nvt-sync command.

The greenbone-nvt-sync command must not be executed as privileged user root, hence switch back to GVM user we created above and update the NVTs.

su - gvm

Next, update the NVTs as openvas user;

greenbone-nvt-sync

Once the update is done, you need to update Redis server with the same VT info from VT files;

sudo openvas --update-vt-info

Build and Install Greenbone Vulnerability Manager

export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
cd gvm-source/gvmd
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

Build and Install Greenbone Security Assistant

cd ../../gsa
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/gvm
make
make install

Generate GVM Certificates

Next, run the command below to generate certificates gvmd. Server certificates are used for authentication while client certificates are primarily used for authorization. More on man gvm-manage-certs.

gvm-manage-certs -a

Keeping the feeds up-to-date

The gvmd Data, SCAP and CERT Feeds should be kept up-to-date by calling the greenbone-feed-sync script regularly (e.g. via a cron entry):

sudo -Hiu gvm greenbone-feed-sync --type GVMD_DATA
sudo -Hiu gvm greenbone-feed-sync --type SCAP
sudo -Hiu gvm greenbone-feed-sync --type CERT

Please note: The CERT feed sync depends on data provided by the SCAP feed and should be called after syncing the later.

Also, in case the commands fail with such an error;

rsync: read error: Connection reset by peer (104)
rsync error: error in socket IO (code 10) at io.c(794) [receiver=3.1.3]
rsync: connection unexpectedly closed (1047 bytes received so far) [generator]
rsync error: error in rsync protocol data stream (code 12) at io.c(235) [generator=3.1.3]

Try adding --rsync option to the command, for example;

sudo -Hiu gvm greenbone-feed-sync --type CERT --rsync

Build and Install OSPd and OSPd-OpenVAS

Open Scanner Protocol (OSP) creates a unified interface for different security scanners and makes their control flow and scan results consistently available under the central Greenbone Vulnerability Manager service.

As much as you can build them from the source, it has been made such that you can install using Python package manager, pip as shown below;

su - gvm
pip3 install wheel
pip3 install python-gvm gvm-tools ospd ospd-openvas

This command installs both OSPD and OSPd-OpenVAS OSPd-OpenVAS binary is placed under the /opt/gvm/.local/bin directory.

Running OpenVAS Scanner, GSA and GVM services

In order to make the management of OpenVAS scanner, GSA (WebUI service) and GVM daemon, create systemd service unit files for each of them as follows.

Log out as gvm user and execute the commands below as a privileged user.

exit

Creating Systemd Service units for GVM services

Create OpenVAS systemd service
cat > /etc/systemd/system/openvas.service << 'EOL'
[Unit]
Description=Control the OpenVAS service
After=redis.service
After=postgresql.service

[Service]
ExecStartPre=-rm -rf /opt/gvm/var/run/ospd-openvas.pid /opt/gvm/var/run/ospd.sock /opt/gvm/var/run/gvmd.sock
Type=simple
User=gvm
Group=gvm
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin
ExecStart=/usr/bin/python3 /opt/gvm/.local/bin/ospd-openvas \
--pid-file /opt/gvm/var/run/ospd-openvas.pid \
--log-file /opt/gvm/var/log/gvm/ospd-openvas.log \
--lock-file-dir /opt/gvm/var/run -u /opt/gvm/var/run/ospd.sock
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOL

Reload systemd service unit configurations.

systemctl daemon-reload
systemctl start openvas

Check the status of the service;

systemctl status openvas
● openvas.service - Control the OpenVAS service
   Loaded: loaded (/etc/systemd/system/openvas.service; disabled; vendor preset: enabled)
   Active: active (exited) since Thu 2021-02-11 04:22:34 EST; 12s ago
  Process: 2785 ExecStartPre=/usr/bin/rm -rf /opt/gvm/var/run/ospd-openvas.pid /opt/gvm/var/run/ospd.sock /opt/gvm/var/run/gvmd.sock (code=exited, status=0/SUCCESS)
  Process: 2786 ExecStart=/usr/bin/python3 /opt/gvm/.local/bin/ospd-openvas --pid-file /opt/gvm/var/run/ospd-openvas.pid --log-file /opt/gvm/var/log/gvm/ospd-openvas.log --
 Main PID: 2786 (code=exited, status=0/SUCCESS)
    Tasks: 6 (limit: 2359)
   Memory: 61.4M
   CGroup: /system.slice/openvas.service
           ├─2788 /usr/bin/python3 /opt/gvm/.local/bin/ospd-openvas --pid-file /opt/gvm/var/run/ospd-openvas.pid --log-file /opt/gvm/var/log/gvm/ospd-openvas.log --lock-fil
           ├─2790 /usr/bin/python3 /opt/gvm/.local/bin/ospd-openvas --pid-file /opt/gvm/var/run/ospd-openvas.pid --log-file /opt/gvm/var/log/gvm/ospd-openvas.log --lock-fil
           ├─2798 openvas --update-vt-info
           └─2799 openvas --update-vt-info

Feb 11 04:22:34 debian systemd[1]: Starting Control the OpenVAS service...
Feb 11 04:22:34 debian systemd[1]: Started Control the OpenVAS service.

Enable OpenVAS scanner to run on system boot;

systemctl enable openvas
Create GSA systemd service Unit file
cat > /etc/systemd/system/gsa.service << 'EOL'
[Unit]
Description=Control the OpenVAS GSA service
After=openvas.service

[Service]
Type=simple
User=gvm
Group=gvm
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin
ExecStart=/usr/bin/sudo /opt/gvm/sbin/gsad
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOL
cat >  /etc/systemd/system/gsa.path << 'EOL'
[Unit]
Description=Start the OpenVAS GSA service when gvmd.sock is available

[Path]
PathChanged=/opt/gvm/var/run/gvmd.sock
Unit=gsa.service

[Install]
WantedBy=multi-user.target
EOL
Create GVM Systemd Service unit file
cat > /etc/systemd/system/gvm.service << 'EOL'
[Unit]
Description=Control the OpenVAS GVM service
After=openvas.service

[Service]
Type=simple
User=gvm
Group=gvm
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin
ExecStart=/opt/gvm/sbin/gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sock
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOL
cat > /etc/systemd/system/gvm.path << 'EOL'
[Unit]
Description=Start the OpenVAS GVM service when opsd.sock is available

[Path]
PathChanged=/opt/gvm/var/run/ospd.sock
Unit=gvm.service

[Install]
WantedBy=multi-user.target
EOL

Reload system unit configs and start the services;

systemctl daemon-reload
systemctl enable --now gvm.{path,service}
systemctl enable --now gsa.{path,service}

Checking the status;

systemctl status gvm.{path,service}
● gvm.path - Start the OpenVAS GVM service when opsd.sock is available
   Loaded: loaded (/etc/systemd/system/gvm.path; enabled; vendor preset: enabled)
   Active: active (waiting) since Thu 2021-02-11 04:24:50 EST; 31s ago

Feb 11 04:24:50 debian systemd[1]: Started Start the OpenVAS GVM service when opsd.sock is available.

● gvm.service - Control the OpenVAS GVM service
   Loaded: loaded (/etc/systemd/system/gvm.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2021-02-11 04:24:50 EST; 31s ago
 Main PID: 2885 (code=exited, status=0/SUCCESS)
    Tasks: 8 (limit: 2359)
   Memory: 336.5M
   CGroup: /system.slice/gvm.service
           ├─2886 gvmd: Waiting for incoming connections
           ├─2938 gpg-agent --homedir /opt/gvm/var/lib/gvm/gvmd/gnupg --use-standard-socket --daemon
           ├─2947 gvmd: Reloading NVTs
           ├─2948 gvmd: Syncing SCAP: Updating CPEs
           ├─2949 gvmd: OSP: Updating NVT cache
           ├─2950 gvmd: Syncing CERT
           ├─2957 sh -c xml_split -s40Mb split.xml && head -n 2 split-00.xml > head.xml && echo '</cpe-list>' > tail.xml && for F in split-*.xml; do    awk 'NR>3 {print las
           └─2958 /usr/bin/perl -w /usr/bin/xml_split -s40Mb split.xml

Feb 11 04:24:50 debian systemd[1]: Started Control the OpenVAS GVM service
systemctl status gsa.{path,service}
● gsa.path - Start the OpenVAS GSA service when gvmd.sock is available
   Loaded: loaded (/etc/systemd/system/gsa.path; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-02-11 04:24:51 EST; 55s ago

Feb 11 04:24:51 debian systemd[1]: Started Start the OpenVAS GSA service when gvmd.sock is available.

● gsa.service - Control the OpenVAS GSA service
   Loaded: loaded (/etc/systemd/system/gsa.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2021-02-11 04:24:51 EST; 55s ago
  Process: 2907 ExecStart=/usr/bin/sudo /opt/gvm/sbin/gsad (code=exited, status=0/SUCCESS)
 Main PID: 2907 (code=exited, status=0/SUCCESS)
    Tasks: 4 (limit: 2359)
   Memory: 3.9M
   CGroup: /system.slice/gsa.service
           ├─2909 /opt/gvm/sbin/gsad
           └─2910 /opt/gvm/sbin/gsad

Feb 11 04:24:51 debian systemd[1]: Started Control the OpenVAS GSA service.
Feb 11 04:24:52 debian sudo[2907]:      gvm : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/opt/gvm/sbin/gsad
Feb 11 04:24:52 debian sudo[2907]: pam_unix(sudo:session): session opened for user root by (uid=0)
Feb 11 04:24:52 debian sudo[2907]: Oops, secure memory pool already initialized
Feb 11 04:24:52 debian sudo[2907]: pam_unix(sudo:session): session closed for user root

Various Log files are located under the /opt/gvm/var/log/gvm directory.

ls /opt/gvm/var/log/gvm
gsad.log  gvmd.log  openvas.log  ospd-openvas.log

Create GVM Scanner

Since we launched the scanner and set it to use our non-standard scanner host path (/opt/gvm/var/run/ospd.sock), we need to create and register our scanner;

sudo -Hiu gvm gvmd --create-scanner="Kifarunix-demo OpenVAS Scanner" --scanner-type="OpenVAS" --scanner-host=/opt/gvm/var/run/ospd.sock

Next, you need to verify your scanner. For this, you first need to get the scanner identifier;

sudo -Hiu gvm gvmd --get-scanners
08b69003-5fc2-4037-a479-93b440211c73  OpenVAS  /var/run/ospd/ospd.sock  0  OpenVAS Default
6acd0832-df90-11e4-b9d5-28d24461215b  CVE    0  CVE
50afbf2b-d854-4b6d-879f-c62aa62254d2  OpenVAS  /opt/gvm/var/run/ospd.sock  9390  Kifarunix-demo OpenVAS Scanner

Based on the output above, our scanner UUID is, 50afbf2b-d854-4b6d-879f-c62aa62254d2.

Verify the scanner;

sudo -Hiu gvm gvmd --verify-scanner=50afbf2b-d854-4b6d-879f-c62aa62254d2

Command output;

Scanner version: OpenVAS 20.8.2.

Create OpenVAS (GVM) Admin User

Create OpenVAS administrative user by running the command below;

sudo -Hiu gvm gvmd --create-user admin

This command generates a random password for the user. See sample output below;

User created with password 'fee42e66-117c-42f8-9b48-429e51194a13'.

If you want to create a user and at the same time create your own password;

sudo -Hiu gvm gvmd --create-user gvmadmin [email protected]

Otherwise, you can reset the password of an already existing user;

sudo -Hiu gvm gvmd --user=<USERNAME> --new-password=<PASSWORD>

An administrator user can later create further users or administrators via clients like the Greenbone Security Assistant (GSA).

If you want to reset the GVM admin password, simply run the command below;

sudo -Hiu gvm gvmd --user=admin --new-password=<new-password>

Replace the <new-password> with your password.

Set the Feed Import Owner

According to gvmd/INSTALL.md, certain resources that were previously part of the gvmd source code are now shipped via the feed. An example is the config “Full and Fast”.

gvmd will only create these resources if a “Feed Import Owner” is configured:

sudo -Hiu gvm gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value <uuid_of_user>

The UUIDs of all created users can be found using

sudo -Hiu gvm gvmd --get-users --verbose

Sample output;

admin 9a9e5070-d2f0-4802-971e-c9d61e682c21

Then modify the gvmd settings with the user UUID.

sudo -Hiu gvm gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 9a9e5070-d2f0-4802-971e-c9d61e682c21

Accessing GVM 20.08 (OpenVAS)

Greenbone Security Assistant (GSA) WebUI daemon opens port 443 and listens on all interfaces. If firewall is running, open this port to allow external access.

ufw allow 443/tcp

You can now access GSA via the url https:<serverIP-OR-hostname>. Accept the self-signed SSL warning and proceed.

Install and Setup GVM 20.08 on Debian 10

Login with the administrative credentials generated above.

Install and Setup GVM 20.08 on Debian 10
Install and Setup GVM 20.08 on Debian 10

Port lists

Install and Setup GVM 20.08 on Debian 10

And there you go. That is all it take to install and Setup GVM 20.08 on Debian 10. You can now start running your scans.

In case you see The SCAP database is required, upon accessing the NVTs, CVEs, then the SCAP database is might still being rebuild. Check the gvmd.log file;

tail -f /opt/gvm/var/log/gvm/gvmd.log
md manage:MESSAGE:2021-02-12 06h17.42 utc:11210: No SCAP database found
util gpgme:MESSAGE:2021-02-12 06h17.46 utc:11210: Setting GnuPG dir to '/opt/gvm/var/lib/gvm/gvmd/gnupg'
util gpgme:MESSAGE:2021-02-12 06h17.46 utc:11210: Using OpenPGP engine version '2.2.12'
md manage:WARNING:2021-02-12 06h17.47 utc:11237: update_scap: No SCAP db present, rebuilding SCAP db from scratch
md manage:   INFO:2021-02-12 06h17.53 utc:11237: update_scap: Updating data from feed
md manage:   INFO:2021-02-12 06h17.53 utc:11237: Updating CPEs
...

The error will disappear once the SCAP database rebuild completes.

NOTE: When creating a scan task, be sure to select the Scanner we created above.

Install and Setup GVM 20.08 on Debian 10

You can now create your target hosts to scan and schedule the scans to run at your own preferred time.

That marks the end of our tutorial on how to install and setup GVM 20.08 on Debian 10.

Did I miss anything, drop it in the comments section!! Enjoy

Reference

Source files README.md and INSTALL.md files

Related Tutorials

Install OpenVAS 10 (GVM) on Debian 10 Buster

Install OpenVAS 9 with PostgreSQL in Ubuntu 18.04

How to Add and Scan a Target for Vulnerabilities on OpenVAS Scanner

How to Install and Setup OpenVAS 9 Vulnerability Scanner on Ubuntu 18.04

How to Install and Use WPScan WordPress Vulnerability Scanner Ubuntu 18.04

25 COMMENTS

  1. Followed your guide however when i attempt to login i get “An error occurred during making the request. Most likely the web server does not respond.”

    Any help would be appreciated

  2. This manual doesn’t work. Many problems with the permissions under Linux for root and normal user and problems with the compile of the packages

  3. Compilierung-Problems at SMB and the Scanner

    make[2]: *** [winexe/CMakeFiles/winexe.dir/build.make:140: winexe/winexe] Fehler 1
    make[1]: *** [CMakeFiles/Makefile2:151: winexe/CMakeFiles/winexe.dir/all] Fehler 2
    make: *** [Makefile:152: all] Fehler 2

  4. Worked great on a Raspberry Pi 4 with 8GB of RAM, running stock Raspberry Pi OS (32 bit)!
    I needed to go to stock OS as AnyDesk is needed in this particular use case, which works neither on Kali 64bit nor 32bit.

    I needed two more prerequites in addition to what you wrote:
    apt install graphviz # fix warnings about dot missing
    apt install libunistring-dev # fix linker error

    Thanks for the great write-up!

  5. Hello,
    thanks for the tuto but GSA doesn’t work when i run systemctl enable –now gsa.{path,service}
    it tell me there are a problem with pam_unix(sudo:auth): auth could not identify password for [gvm …
    Thank’s for any help.

  6. Hey koromicha. Thanks a lot for your work and writeup! top

    unfortunately I got a problem starting at the NVT part:
    sudo openvas –update-vt-info
    The error message is
    “openvas: error while loading shared libraries: libopenvas_nasl.so.20: cannot open shared object file: No such file or directory”

    the library is in the lib folder. I don’t get it.
    As a side effect gvm and gsa daemon don’t start either.

    [email protected]:~$ ls -lh lib/
    insgesamt 9,5M
    lrwxrwxrwx 1 scanadm scanadm 17 Apr 7 17:14 libgvm_base.so -> libgvm_base.so.20
    lrwxrwxrwx 1 scanadm scanadm 49 Apr 7 17:14 libgvm_base.so.20 -> libgvm_base.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    -rw-r–r– 1 scanadm scanadm 223K Apr 7 17:14 libgvm_base.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    lrwxrwxrwx 1 scanadm scanadm 19 Apr 7 17:14 libgvm_boreas.so -> libgvm_boreas.so.20
    lrwxrwxrwx 1 scanadm scanadm 51 Apr 7 17:14 libgvm_boreas.so.20 -> libgvm_boreas.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    -rw-r–r– 1 scanadm scanadm 137K Apr 7 17:14 libgvm_boreas.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    lrwxrwxrwx 1 scanadm scanadm 16 Apr 7 17:14 libgvm_gmp.so -> libgvm_gmp.so.20
    lrwxrwxrwx 1 scanadm scanadm 48 Apr 7 17:14 libgvm_gmp.so.20 -> libgvm_gmp.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    -rw-r–r– 1 scanadm scanadm 65K Apr 7 17:14 libgvm_gmp.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    lrwxrwxrwx 1 scanadm scanadm 16 Apr 7 17:14 libgvm_osp.so -> libgvm_osp.so.20
    lrwxrwxrwx 1 scanadm scanadm 48 Apr 7 17:14 libgvm_osp.so.20 -> libgvm_osp.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    -rw-r–r– 1 scanadm scanadm 60K Apr 7 17:14 libgvm_osp.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    lrwxrwxrwx 1 scanadm scanadm 22 Apr 7 18:09 libgvm-pg-server.so -> libgvm-pg-server.so.20
    lrwxrwxrwx 1 scanadm scanadm 52 Apr 7 18:09 libgvm-pg-server.so.20 -> libgvm-pg-server.so.20.08.1~git-7a247dbeb-gvmd-20.08
    -rw-r–r– 1 scanadm scanadm 97K Apr 7 18:09 libgvm-pg-server.so.20.08.1~git-7a247dbeb-gvmd-20.08
    lrwxrwxrwx 1 scanadm scanadm 17 Apr 7 17:14 libgvm_util.so -> libgvm_util.so.20
    lrwxrwxrwx 1 scanadm scanadm 49 Apr 7 17:14 libgvm_util.so.20 -> libgvm_util.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    -rw-r–r– 1 scanadm scanadm 308K Apr 7 17:14 libgvm_util.so.20.8.2~git-aa3bba16-gvm-libs-20.08
    lrwxrwxrwx 1 scanadm scanadm 21 Apr 7 17:20 libopenvas_misc.so -> libopenvas_misc.so.20
    lrwxrwxrwx 1 scanadm scanadm 25 Apr 7 17:20 libopenvas_misc.so.20 -> libopenvas_misc.so.20.8.2
    -rw-r–r– 1 scanadm scanadm 196K Apr 7 17:19 libopenvas_misc.so.20.8.2
    lrwxrwxrwx 1 scanadm scanadm 21 Apr 7 17:20 libopenvas_nasl.so -> libopenvas_nasl.so.20
    lrwxrwxrwx 1 scanadm scanadm 25 Apr 7 17:20 libopenvas_nasl.so.20 -> libopenvas_nasl.so.20.8.2
    -rw-r–r– 1 scanadm scanadm 1,1M Apr 7 17:19 libopenvas_nasl.so.20.8.2
    lrwxrwxrwx 1 scanadm scanadm 23 Apr 7 17:17 libopenvas_wincmd.so -> libopenvas_wincmd.so.21
    lrwxrwxrwx 1 scanadm scanadm 46 Apr 7 17:17 libopenvas_wincmd.so.21 -> libopenvas_wincmd.so.21.4.0~git-1756788-master
    -rw-r–r– 1 scanadm scanadm 2,8M Apr 7 17:17 libopenvas_wincmd.so.21.4.0~git-1756788-master
    lrwxrwxrwx 1 scanadm scanadm 26 Apr 7 17:17 libopenvas_wmiclient.so -> libopenvas_wmiclient.so.21
    lrwxrwxrwx 1 scanadm scanadm 49 Apr 7 17:17 libopenvas_wmiclient.so.21 -> libopenvas_wmiclient.so.21.4.0~git-1756788-master
    -rw-r–r– 1 scanadm scanadm 4,6M Apr 7 17:17 libopenvas_wmiclient.so.21.4.0~git-1756788-master
    drwxr-xr-x 2 scanadm scanadm 4,0K Apr 7 17:17 pkgconfig
    drwxr-xr-x 3 scanadm scanadm 4,0K Apr 7 18:09 systemd

      • Thanks for your reply. Appreciate it.
        ldconfig sounds logic, that’s right.
        I’m sure I’ve done this but I think my session crashed a bit afterwards.
        Don’t know if that may be a problem or what else could have caused this.
        Is there any chance to “repair” that without starting all over again?

        • Hi. Not sure if you have found a solution. But I would suggest you start rebuild (sounds like a waste of time, -:)), one step at a time paying attention to the output of each build command.

  7. Hello, thanks a lot for the tutorial.
    Install seems to be good but when I try to run à scan I get de error “Interrupted at 0%”
    Any idea ?

    I’m going to try to understand the problem cheking the log.

    • Hello again, my log file tells that:

      event task:MESSAGE:2021-04-15 22h24.26 UTC:26461: Status of task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has changed to Requested
      event task:MESSAGE:2021-04-15 22h24.26 UTC:26461: Task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has been requested to start by admin
      md manage:WARNING:2021-04-15 22h24.32 UTC:26464: Could not connect to Scanner at /var/run/ospd/ospd.sock
      md manage:WARNING:2021-04-15 22h24.32 UTC:26464: OSP start_scan 66557342-fb81-4243-82e6-eeb459c062db: Could not connect to Scanner
      event task:MESSAGE:2021-04-15 22h24.32 UTC:26464: Status of task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has changed to Done
      event task:MESSAGE:2021-04-15 22h24.32 UTC:26464: Status of task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has changed to Interrupted

  8. Hello thanks a lot for the tutorial.
    The install went fine. But when I try to run a scan I get de error “Interrupted at 0 %”

    This is what I have in my log file:

    event task:MESSAGE:2021-04-15 22h24.26 UTC:26461: Status of task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has changed to Requested
    event task:MESSAGE:2021-04-15 22h24.26 UTC:26461: Task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has been requested to start by admin
    md manage:WARNING:2021-04-15 22h24.32 UTC:26464: Could not connect to Scanner at /var/run/ospd/ospd.sock
    md manage:WARNING:2021-04-15 22h24.32 UTC:26464: OSP start_scan 66557342-fb81-4243-82e6-eeb459c062db: Could not connect to Scanner
    event task:MESSAGE:2021-04-15 22h24.32 UTC:26464: Status of task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has changed to Done
    event task:MESSAGE:2021-04-15 22h24.32 UTC:26464: Status of task SCAN (1fbebb31-0072-4395-833c-c561d451cca2) has changed to Interrupted

  9. Hello!
    Thanks for such a detailed tutorial, all worked well following your instructions, the only issue is that when I try to setup a scan it fails with the following error:
    Failed to find config ‘daba56c8-73ec-11df-a475-002264764cea’

    I’ve tried all the options listed in the GVM community site, but no lock, any pointers on how to solve this?

  10. Thanks for this guide I’ve been running this successfully for nearly a year.

    In the last couple of weeks GVM has been reporting a critical vulnerability as the GVM libraries are now end-of-life “Report outdated / end-of-life Scan Engine / Environment (local)” stating “Latest available GVM Libraries (gvm-libs) version: 20.8.1”.

    How do I update the libraries?

LEAVE A REPLY

Please enter your comment!
Please enter your name here