Ricerca nel sito web

Come installare e utilizzare GVM Vulnerability Scanner su Ubuntu 20.04


Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa le dipendenze richieste
  4. Installa e configura PostgreSQL
  5. Scarica GVM
  6. Installa gvm-libs
  7. Installa openvas-smb
  8. Installa OpenVAS Scanner
  9. Crea file di servizio Systemd
  10. Aggiorna NVT
  11. Installa Greenbone Vulnerability Manager
  12. Configura e aggiorna i feed (GVM)
  13. Installa gsa
  14. Configura OSPD-OpenVAS
  15. Crea un file di servizio Systemd per GVM, GSAD e OpenVAS
  16. Modifica scanner predefinito
  17. Accedi all'interfaccia web di GVM
  18. Conclusione

GVM chiamato anche \Greenbone Vulnerability Management\ è un software di scansione e gestione delle vulnerabilità open source che fornisce una serie di test di vulnerabilità della rete per trovare scappatoie di sicurezza nei sistemi e nelle applicazioni. Questa è una suite di strumenti all-in-one utilizzata da molti esperti di sicurezza e utenti normali in tutto il mondo.

In questo tutorial, ti mostreremo come installare e configurare GVM sul server Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • Il server è configurato con una password di root.

Iniziare

Prima di iniziare, dovrai aggiornare i tuoi pacchetti di sistema all'ultima versione. Puoi aggiornarli usando il seguente comando:

apt-get update -y

Una volta aggiornato il server, puoi procedere al passaggio successivo.

Installa le dipendenze richieste

Prima di iniziare, dovrai installare tutte le dipendenze richieste nel tuo sistema. Puoi installarli eseguendo il seguente comando:

apt-get install software-properties-common build-essential cmake pkg-config libglib2.0-dev libgpgme-dev libgnutls28-dev uuid-dev libssh-gcrypt-dev libldap2-dev doxygen graphviz libradcli-dev libhiredis-dev libpcap-dev bison libksba-dev libsnmp-dev gcc-mingw-w64 heimdal-dev libpopt-dev xmltoman redis-server xsltproc libical-dev gnutls-bin nmap rpm nsis curl wget fakeroot gnupg sshpass socat snmp smbclient libmicrohttpd-dev libxml2-dev python3-polib gettext rsync xml-twig-tools python3-paramiko python3-lxml python3-defusedxml python3-pip python3-psutil python3-impacket virtualenv vim git texlive-latex-extra texlive-fonts-recommended -y

Una volta installate tutte le dipendenze, aggiungi il repository Yarn al tuo sistema:

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

Successivamente, aggiorna il repository e installa il pacchetto Yarn con il seguente comando:

apt-get update -y
apt-get install yarn -y

Successivamente, aggiorna Yarn all'ultima versione utilizzando il seguente comando:

yarn install
yarn upgrade

Una volta terminato, puoi procedere al passaggio successivo.

Installa e configura PostgreSQL

GVM utilizza PostgreSQL come database back-end, quindi dovrai installare il server PostgreSQL sul tuo sistema. Puoi installarlo con il seguente comando:

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

Una volta terminata l'installazione, accedi a PostgreSQL e crea un utente e un database per GVM:

sudo -u postgres bash
export LC_ALL="C"
createuser -DRS gvm
createdb -O gvm gvmd

Successivamente, connettiti al database, quindi crea un ruolo e le estensioni con il seguente comando:

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

Successivamente, esci da PostgreSQL con il seguente comando:

exit
exit

Scarica GVM

Innanzitutto, crea una directory e un utente separati per GVM con il seguente comando:

mkdir /opt/gvm
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''

Successivamente, aggiungi un utente redis a GVM e imposta l'autorizzazione appropriata con il seguente comando:

usermod -aG redis gvm
chown gvm:gvm /opt/gvm/

Successivamente, crea una variabile di percorso per GVM con il seguente comando:

echo 'export PATH="$PATH:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin"' | tee -a /etc/profile.d/gvm.sh
chmod 0755 /etc/profile.d/gvm.sh
source /etc/profile.d/gvm.sh

Successivamente, definisci il percorso della libreria GVM utilizzando il seguente comando:

nano /etc/ld.so.conf.d/gvm.conf

Aggiungi la seguente riga:

/opt/gvm/lib

Successivamente, accedi all'utente GVM e crea una directory per tutti i componenti:

su - gvm
mkdir src

Successivamente, scarica tutti i componenti richiesti all'interno della directory src con il seguente comando:

cd src
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
git clone -b gvm-libs-20.08 --single-branch https://github.com/greenbone/gvm-libs.git
git clone -b openvas-20.08 --single-branch https://github.com/greenbone/openvas.git
git clone -b gvmd-20.08 --single-branch https://github.com/greenbone/gvmd.git
git clone -b master --single-branch https://github.com/greenbone/openvas-smb.git
git clone -b gsa-20.08 --single-branch https://github.com/greenbone/gsa.git
git clone -b ospd-openvas-20.08 --single-branch https://github.com/greenbone/ospd-openvas.git
git clone -b ospd-20.08 --single-branch https://github.com/greenbone/ospd.git

Installa gvm-libs

Quindi, cambia la directory in gvm-libs, esporta il percorso di configurazione e crea una directory di build con il seguente comando:

cd gvm-libs
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Quindi, cambia la directory per creare e compilare gvm-libs usando il seguente comando:

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

Installa openvas-smb

Successivamente, cambia la directory in openvas-smb, esporta il percorso di configurazione e crea una directory di build con il seguente comando:

cd /opt/gvm/src
cd openvas-smb
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Successivamente, modifica la directory per creare e compilare openvas-smb con il seguente comando:

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

Installa lo scanner OpenVAS

Successivamente, cambia la directory in openvas, esporta il percorso di configurazione e crea una directory di build con il seguente comando:

cd /opt/gvm/src
cd openvas
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Successivamente, modifica la directory per creare e installare lo scanner OpenVAS con il seguente comando:

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

Successivamente, esci dall'utente gvm con il seguente comando:

exit

Successivamente, crea la cache per le librerie condivise installate con il seguente comando:

export LC_ALL="C"
ldconfig

Quindi, copia il file di configurazione Redis dello scanner OpenVAS con il seguente comando:

cp /etc/redis/redis.conf /etc/redis/redis.orig
cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/

Quindi, imposta la proprietà corretta con il seguente comando:

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

Successivamente, aggiorna il percorso al socket unix Redis con il seguente comando:

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

Successivamente, abilita e avvia il servizio Redis con il seguente comando:

systemctl enable 

Successivamente, dovrai modificare il file sysctl.conf. Puoi farlo con il seguente comando:

sysctl -w net.core.somaxconn=1024 
sysctl vm.overcommit_memory=1
echo "net.core.somaxconn=1024" >> /etc/sysctl.conf
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf

Successivamente, ricarica sysctl con il seguente comando:

sysctl -p

Crea file di servizio Systemd

Innanzitutto, crea un file di servizio systemd per Transparent Huge Pages (THP) con il seguente comando:

nano /etc/systemd/system/disable-thp.service

Aggiungi le seguenti righe:

Description=Disable 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

Salva e chiudi il file, quindi ricarica il servizio systemd con il seguente comando:

systemctl daemon-reload

Successivamente, avvia il servizio disable-thp e abilitalo per l'avvio al riavvio del sistema:

systemctl start disable-thp 
systemctl enable disable-thp

Successivamente, riavvia il servizio Redis per applicare le modifiche:

systemctl restart redis-server

Successivamente, dovrai concedere all'utente gvm di eseguire tutti i comandi di sistema utilizzando sudo senza fornire una password. Puoi farlo con il seguente comando:

sed 's/Defaults\s.*secure_path=\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin:\/snap\/bin\"/Defaults secure_path=\"\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin:\/snap\/bin:\/opt\/gvm\/sbin\"/g' /etc/sudoers | EDITOR='tee' visudo
echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas" > /etc/sudoers.d/gvm
echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad" >> /etc/sudoers.d/gvm

Aggiorna NVT

Successivamente, sarà necessario aggiornare il feed dei test di vulnerabilità della rete da Greenbone Security Feed/Community Feed.

Innanzitutto, accedi a gvm user con il seguente comando:

su - gvm

Successivamente, aggiorna il feed con il seguente comando:

greenbone-nvt-sync

Una volta completato l'aggiornamento, aggiorna il server Redis con le stesse informazioni VT dai file VT:

sudo openvas --update-vt-info

Installa Greenbone Vulnerability Manager

Innanzitutto, cambia la directory in gvmd, esporta il percorso di configurazione e crea una directory di build con il seguente comando:

cd /opt/gvm/src/gvmd 
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Quindi, cambia la directory per creare e installare gvmd con il seguente comando:

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

Successivamente, correggi il certificato con il seguente comando:

gvm-manage-certs -a

Dovresti ottenere il seguente output:

Generated private key in /tmp/tmp.gW57p1UV0s/cakey.pem.
Generated self signed certificate in /tmp/tmp.gW57p1UV0s/cacert.pem.
Installed private key to /opt/gvm/var/lib/gvm/private/CA/cakey.pem.
Installed certificate to /opt/gvm/var/lib/gvm/CA/cacert.pem.
Generated private key in /tmp/tmp.gW57p1UV0s/serverkey.pem.
Generated certificate request in /tmp/tmp.gW57p1UV0s/serverrequest.pem.
Signed certificate request in /tmp/tmp.gW57p1UV0s/serverrequest.pem with CA certificate in /opt/gvm/var/lib/gvm/CA/cacert.pem to generate certificate in /tmp/tmp.gW57p1UV0s/servercert.pem
Installed private key to /opt/gvm/var/lib/gvm/private/CA/serverkey.pem.
Installed certificate to /opt/gvm/var/lib/gvm/CA/servercert.pem.
Generated private key in /tmp/tmp.gW57p1UV0s/clientkey.pem.
Generated certificate request in /tmp/tmp.gW57p1UV0s/clientrequest.pem.
Signed certificate request in /tmp/tmp.gW57p1UV0s/clientrequest.pem with CA certificate in /opt/gvm/var/lib/gvm/CA/cacert.pem to generate certificate in /tmp/tmp.gW57p1UV0s/clientcert.pem
Installed private key to /opt/gvm/var/lib/gvm/private/CA/clientkey.pem.
Installed certificate to /opt/gvm/var/lib/gvm/CA/clientcert.pem.
Removing temporary directory /tmp/tmp.gW57p1UV0s.

Configura e aggiorna i feed (GVM)

Per prima cosa, crea un utente amministratore per accedere all'interfaccia web di GVM:

gvmd --create-user=admin --password=admin

Quindi, trova l'UUID di un utente amministratore con il seguente comando:

gvmd --get-users --verbose

Dovresti ottenere il seguente output:

admin 1288cbcf-23a0-407f-8013-b7a57acc5795

Quindi, modifica le impostazioni di gvmd con l'UUID dell'utente:

gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 1288cbcf-23a0-407f-8013-b7a57acc5795

Successivamente, sincronizza tutti i feed greenbone con il seguente comando:

greenbone-feed-sync --type GVMD_DATA
greenbone-feed-sync --type SCAP
greenbone-feed-sync --type CERT

Installa gsa

Innanzitutto, cambia la directory in gsa, esporta il percorso di configurazione e crea una directory di build con il seguente comando:

cd /opt/gvm/src/gsa 
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Successivamente, modifica la directory per creare e installare gsa con il seguente comando:

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

Successivamente, crea un file di registro per gsa con il seguente comando:

touch /opt/gvm/var/log/gvm/gsad.log

Configura OSPD-OpenVAS

Innanzitutto, modifica la directory in src ed esporta il percorso di configurazione con il seguente comando:

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

Successivamente, crea l'ambiente virtuale Python con il seguente comando:

virtualenv --python python3.8 /opt/gvm/bin/ospd-scanner/

Quindi, attiva l'ambiente virtuale con il seguente comando:

source /opt/gvm/bin/ospd-scanner/bin/activate

Successivamente, crea una directory per ospd con il seguente comando:

mkdir /opt/gvm/var/run/ospd/

Quindi, cambia la directory in ospd e installa ospd con pip:

cd ospd 
pip3 install .

Quindi, cambia la directory in ospd-openvas e installa ospd-openvas usando il comando pip:

cd /opt/gvm/src/ospd-openvas
pip3 install .

Successivamente, esci dall'utente gvm con il seguente comando:

exit

Crea un file di servizio Systemd per GVM, GSAD e OpenVAS

Innanzitutto, crea un file di servizio systemd per gvmd con il seguente comando:

nano /etc/systemd/system/gvmd.service

Aggiungi le seguenti righe:

[Unit]
Description=Open Vulnerability Assessment System Manager Daemon
Documentation=man:gvmd(8) https://www.greenbone.net
Wants=postgresql.service ospd-openvas.service
After=postgresql.service ospd-openvas.service

[Service]
Type=forking
User=gvm
Group=gvm
PIDFile=/opt/gvm/var/run/gvmd.pid
WorkingDirectory=/opt/gvm
ExecStart=/opt/gvm/sbin/gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sock
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
Restart=on-failure
RestartSec=2min
KillMode=process
KillSignal=SIGINT
GuessMainPID=no
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Salva e chiudi il file, quindi crea un file di servizio systemd per gsad con il seguente comando:

nano /etc/systemd/system/gsad.service

Aggiungi le seguenti righe:

[Unit]
Description=Greenbone Security Assistant (gsad)
Documentation=man:gsad(8) https://www.greenbone.net
After=network.target
Wants=gvmd.service


[Service]
Type=forking
PIDFile=/opt/gvm/var/run/gsad.pid
WorkingDirectory=/opt/gvm
ExecStart=/opt/gvm/sbin/gsad --drop-privileges=gvm
Restart=on-failure
RestartSec=2min
KillMode=process
KillSignal=SIGINT
GuessMainPID=no
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Salva e chiudi il file, quindi crea un file di servizio systemd per openvas con il seguente comando:

nano /etc/systemd/system/ospd-openvas.service

Aggiungi le seguenti righe:

[Unit]
Description=Job that runs the ospd-openvas daemon
Documentation=man:gvm
After=network.target 


[Service]
Environment=PATH=/opt/gvm/bin/ospd-scanner/bin:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Type=forking
User=gvm
Group=gvm
WorkingDirectory=/opt/gvm
PIDFile=/opt/gvm/var/run/ospd-openvas.pid
ExecStart=/opt/gvm/bin/ospd-scanner/bin/python /opt/gvm/bin/ospd-scanner/bin/ospd-openvas --pid-file /opt/gvm/var/run/ospd-openvas.pid --unix-socket=/opt/gvm/var/run/ospd.sock --log-file /opt/gvm/var/log/gvm/ospd-scanner.log --lock-file-dir /opt/gvm/var/run/ospd/
Restart=on-failure
RestartSec=2min
KillMode=process
KillSignal=SIGINT
GuessMainPID=no
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Salva e chiudi il file, quindi ricarica il demone systemd con il seguente comando:

systemctl daemon-reload

Successivamente, avvia tutti i servizi e abilitali all'avvio al riavvio del sistema con il seguente comando:

systemctl enable gvmd
systemctl enable gsad
systemctl enable ospd-openvas
systemctl start gvmd
systemctl start gsad
systemctl start ospd-openvas

Puoi anche verificare lo stato di tutti i servizi con il seguente comando:

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

Modifica scanner predefinito

Innanzitutto, accedi a gvm user con il seguente comando:

sudo su - gvm

Successivamente, ottieni l'UUID dello scanner con il seguente comando:

gvmd --get-scanners

Dovresti ottenere il seguente comando:

08b69003-5fc2-4037-a479-93b440211c73  OpenVAS  /var/run/ospd/ospd.sock  0  OpenVAS Default
6acd0832-df90-11e4-b9d5-28d24461215b  CVE    0  CVE

Ora, modifica lo scanner predefinito utilizzando l'UUID sopra:

gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/var/run/ospd/ospd.sock

Accedere all'interfaccia Web GVM

A questo punto, GVM è installato e in ascolto sulle porte 80 e 443. Puoi accedervi utilizzando l'URL https://your-server-ip. Verrai reindirizzato alla pagina di accesso di GVM come mostrato di seguito:

Fornisci il nome utente e la password dell'amministratore e fai clic sul pulsante Accedi. Dovresti vedere la dashboard GVM nella pagina seguente:

Conclusione

Congratulazioni! hai installato e configurato correttamente GVM sul server Ubuntu 20.04. Ora puoi esplorare GVM e iniziare a scansionare il tuo sistema alla ricerca di vulnerabilità. Non esitate a chiedermi se avete domande.