Come installare e utilizzare GVM Vulnerability Scanner su Ubuntu 20.04
Su questa pagina
- Prerequisiti
- Per iniziare
- Installa le dipendenze richieste
- Installa e configura PostgreSQL
- Scarica GVM
- Installa gvm-libs
- Installa openvas-smb
- Installa OpenVAS Scanner
- Crea file di servizio Systemd
- Aggiorna NVT
- Installa Greenbone Vulnerability Manager
- Configura e aggiorna i feed (GVM)
- Installa gsa
- Configura OSPD-OpenVAS
- Crea un file di servizio Systemd per GVM, GSAD e OpenVAS
- Modifica scanner predefinito
- Accedi all'interfaccia web di GVM
- 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.