GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e utilizzare GVM Vulnerability Scanner su Ubuntu 20.04

GVM chiamato anche "Greenbone Vulnerability Management" è un software open source di scansione e gestione delle vulnerabilità che fornisce una serie di test di vulnerabilità della rete per trovare scappatoie di sicurezza in sistemi e 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.
  • Una password di root è configurata sul server.

Per iniziare

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

apt-get update -y

Una volta aggiornato il tuo 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

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

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

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

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

Quindi, 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";

Quindi, 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 ''

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

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

Quindi, 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

Quindi, definisci il percorso della libreria GVM usando il seguente comando:

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

Aggiungi la seguente riga:

/opt/gvm/lib

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

su - gvm
mkdir src

Quindi, 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 compilare e compilare gvm-libs usando il seguente comando:

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

Installa openvas-smb

Quindi, 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

Quindi, cambia la directory per compilare e compilare openvas-smb con il seguente comando:

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

Installa lo scanner OpenVAS

Quindi, 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

Quindi, cambia 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

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

exit

Quindi, crea la cache nelle 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

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

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

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

systemctl enable [email protected]
systemctl start [email protected]

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

Quindi, ricarica il 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

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

systemctl start disable-thp 
systemctl enable disable-thp

Quindi, 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, dovrai 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 compilare e installare gvmd con il seguente comando:

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

Quindi, 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 feed (GVM)

Innanzitutto, 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

Quindi, cambia la directory per compilare e installare gsa con il seguente comando:

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

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

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

Configura OSPD-OpenVAS

Innanzitutto, cambia 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

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

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

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

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

Quindi, 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 .

Quindi, 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 [email protected]
[email protected]

[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

Quindi, avvia tutti i servizi e abilita l'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

Quindi, 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

Accedi 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 su Accedi pulsante. 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à. Sentiti libero di chiedermi se hai domande.


Ubuntu
  1. Come installare e utilizzare Wine su Ubuntu 20.04

  2. Come installare e utilizzare FFmpeg su Ubuntu 18.04

  3. Come installare e utilizzare MongoDB su Ubuntu 20.04

  4. Come installare e utilizzare Elasticsearch su Ubuntu 20.04

  5. Come installare e utilizzare PowerShell su Ubuntu 20.04

Come installare e utilizzare iTunes su Ubuntu 20.04

Come installare e utilizzare R su Ubuntu

Come installare e utilizzare vnStat su Ubuntu 21.04

Come installare e utilizzare Nmap su Ubuntu

Come installare e utilizzare Kontact in Ubuntu

Come installare e utilizzare Git su Ubuntu 18.04