
Installazione di Greenbone Vulnerability Management (OpenVAS)
In questo post esamineremo l'installazione di GVM (Gestione delle vulnerabilità Greenbone) precedentemente noto come OpenVAS (Sistema aperto di valutazione delle vulnerabilità). Una soluzione che ci aiuterà a conoscere le vulnerabilità che hanno i nostri sistemi, e in un futuro documento lo integreremo con Centreon.
Cosa ho detto, L'idea è quella di implementare una soluzione che analizzi e cerchi eventuali vulnerabilità nei nostri sistemi, che viene aggiornato e confrontato con elenchi o CVE (Vulnerabilità ed esposizioni comuni). Una volta terminata la lunga installazione, Possiamo già utilizzare una semplice gestione web (o anche CLI) Crea attività di scansione e saremo in grado di accedere ai report per analizzare i possibili problemi di sicurezza che dobbiamo affrontare. Oh, bene, In un altro documento vedremo cosa immagini, la capacità di centralizzare da Centreon in modo da poter controllare le vulnerabilità delle nostre macchine, Quindi, se una macchina non è conforme a nessuna normativa, Lo sapremo.
Iniziamo con una macchina Ubuntu Server 20.10, iniziamo con le dipendenze necessarie per GVM-20.08 (OpenVAS 20.08):
sudo apt-get install build-essential cmake gnutls-bin pkg-config glib2.0 libgnutls28-dev libssh-dev libssl-dev redis-server libhiredis-dev libxml2-dev doxygen xsltproc libldap2-dev libgcrypt-dev libpcap-dev libgpgme-dev libradcli-dev graphviz bison libksba-dev libical-dev libpq-dev postgresql postgresql-contrib postgresql-server-dev-all libopenvas-dev heimdal-dev libpopt-dev xmltoman gcc-mingw-w64 nmap libmicrohttpd-dev npm nodejs virtualenv python3-paramiko python3-lxml python3-defusedXML python3-pip python3-psutil
Filato Instalamos:
sudo npm install -g filato --prefisso /usr/
Creamos el perfil para el usuario de GVM:
echo 'export PATH="$SENTIERO:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin"' | sudo tee -a /etc/profile.d/gvm.sh sudo chmod 0755 /etc/profile.d/gvm.sh source /etc/profile.d/gvm.sh
Creamos el fichero /etc/ld.so.conf.d/gvm.conf con el siguiente contenido:
# Posizione gmv-libs /opt/gvm/lib
Creamos el usuario GVM, corregimos permisos y nos logueamos como él:
sudo mkdir /opt/gvm
sudo adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''
sudo usermod -aG redis gvm
sudo chown gvm:gvm /opt/gvm/ sudo su - gvm
Creamos el directorio src y establecemos la variable con el path correcto:
mkdir /opt/gvm/src cd /opt/gvm/src/ esportazione PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
Descargamos y compilamos las librerías de GVM:
git clone -b gvm-libs-20.08 --single-branch https://github.com/greenbone/gvm-libs.git cd gvm-libs/ esportazione PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. make make doc make install cd /opt/gvm/src/
Descargamos y compilamos el paquete de samba para OpenVAS:
git clone -b master --single-branch https://github.com/greenbone/openvas-smb.git cd openvas-smb/ esportazione PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH mkdir build cd build/ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. make install cd /opt/gvm/src/
Descargamos y compilamos OpenVAS Scanner:
git clone -b openvas-20.08 --single-branch https://github.com/greenbone/openvas.git cd openvas/ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH mkdir build cd build/ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. make make doc make install exit
Configuramos Redis:
sudo su export LC_ALL="C" ldconfig cp /etc/redis/redis.conf /etc/redis/redis.orig cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/ chown redis:echo di redis /etc/redis/redis-openvas.conf "db_address = /esegui/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf systemctl abilita ri**********@op*****.serviDopo Cristo Avvio systemctl ri**********@op*****.serviDopo Cristo
Establecemos los permisos para GVM. ejecutando 'visudo’ Y añadimos lo siguiente para darle permisos de sudoers:
Valori predefiniti env_reset Valori predefiniti mail_badpass Valori predefiniti secure_path="/usr/locale/sbin:/usr/locale/bidone:/usr/sbin:/usr/bin:/sbin:/bidone:/a scatto/cestino:/opt/gvm/sbin" ... # Consenti ai membri del gruppo sudo di eseguire qualsiasi comando %sudo ALL=(TUTTO:TUTTO) TUTTO ### Consenti all'utente gvm di eseguire ospd-openvas e avviare OpenVAS con i privilegi di root gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas gvm TUTTO = NOPASSWD: /opt/gvm/sbin/gsad ...
Ahora que ya tenemos los permsiso correctos, Vamos a actualizar los tests de vulnerabilidades NVT (Test di vulnerabilità della rete) desde el feed de la comunidad de Greenbone, Tieni presente che questo processo richiederà molto tempo:
Exit sudo su - gvm greenbone-nvt-sync
Scarichiamo e costruiamo Greenbone Vulnerability Manager (GVM):
cd /opt/gvm/src/ clone git -b gvmd-20.08 --single-branch https://github.com/greenbone/gvmd.git cd gvmd/ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH mkdir build cd build/ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. make make doc make install exit
Abbiamo configurato il database PostgreSQL, Creiamo l'utente e il database:
sudo -u postgres bash export LC_ALL="C" createuser -DRS gvm createdb -O gvm gvmd
Sistemiamo i permessi e creiamo le estensioni DB:
psql gvmd crea ruolo dba con superutente noinherit; Concedi DBA a GVM;
Crea estensione "uuid-ossp";
Crea estensione "PGCRYPTO";
uscita
uscita
Generiamo i certificati per GVM:
sudo su - gvm gvm-manage-certs -a
Creiamo l'account 'admin'’ amministrativo per GVM, Non utilizzare caratteri speciali nella password:
/opt/gvm/sbin/gvmd --create-user=admin --password=PASSWORD
Sacamos y anotamos el UUID de la cuenta que acabamos de crear:
gvmd --get-users --verbose
Utilizando el UUID del usuario admin modificamos la configuración de gvmd:
gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Actualizamos la sincronización de los feeds de Greenbone, ojo que esto tardará:
greenbone-feed-sync --type GVMD_DATA greenbone-feed-sync --type SCAP greenbone-feed-sync --type CERT
Descargamos y compilamos Greenbone Security Assistant (GSA):
cd src/ git clone -b gsa-20.08 --single-branch https://github.com/greenbone/gsa.git cd gsa/ esportazione PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH mkdir build cd build/ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm .. make make doc make install touch /opt/gvm/var/log/gvm/gsad.log
Configuramos el entorno virtual de python:
exit python3 --version sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.7 python3.7-dev -y
Instalamos el entorno virtual:
sudo su - gvm cd /opt/gvm/src esportazione PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH virtualenv --python python3.7 /opt/gvm/bin/ospd-scanner/ source /opt/gvm/bin/ospd-scanner/bin/activate
Descargamos e instalamos ospd:
git clone -b ospd-20.08 --single-branch https://github.com/greenbone/ospd.git mkdir /opt/gvm/var/run/ospd/ cd ospd/ pip3 install . cd /opt/gvm/src
Descargamos e instalamos ospd-openvas:
git clone -b ospd-openvas-20.08 --single-branch https://github.com/greenbone/ospd-openvas.git installazione del cd OSPD-OpenVAS / PIP3 .
Lo siguiente será hacer que inicie Greenbone Manager con la máquina, mediante un servicio:
exit sudo su nano /etc/systemd/system/gvmd.service
E introducimos la siguiente configuración:
[Unità] Descrizione=Apri 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 [Servizio] 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=processo KillSignal=SIGINT GuessMainPID=no PrivateTmp=true [Installare] WantedBy=multi-utente.target
Creamos ahora el servicio para iniciar Greenbone Security Assistant (GSA) con:
nano /etc/systemd/system/gsad.service
Y pegamos esta configuración al fichero:
[Unità] Description=Assistente di Sicurezza Greenbone (GSAD) Documentazione=uomo:GSAD(8) https://www.greenbone.net After=network.target Wants=gvmd.service [Servizio] 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 [Installare] WantedBy=multi-utente.target
Abbiamo creato in questa occasione il servizio che solleverà ospd-openvas con:
nano /etc/systemd/system/ospd-openvas.service
E lo stesso, Incolla la seguente configurazione:
[Unità] Description=Lavoro che esegue il demone ospd-openvas Documentazione=uomo:gvm After=rete.target ri**********@op*****.serviDopo Cristo Vuole=ri**********@op*****.serviDopo Cristo [Servizio] Ambiente=PERCORSO=/opt/gvm/bin/ospd-scanner/bin:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin:/usr/locale/sbin:/usr/locale/bidone:/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=processo KillSignal=SIGINT GuessMainPID=no PrivateTmp=true [Installare] WantedBy=multi-utente.target
Una vez generados los 3 Servicios para levantar los demonios, recargamos, Habilitamos los servicios para que arranquen con el sistema y los levantamos:
systemctl daemon-reload systemctl enable gvmd systemctl enable gsad systemctl enable ospd-openvas systemctl start gvmd systemctl start gsad systemctl start ospd-openvas
Verifichiamo che i servizi siano attivi e che stiamo andando bene:
Systemctl status gvmd systemctl status gsad systemctl status ospd-openvas
Saremo in grado di aprire l'indirizzo del nostro Greenbone Security Assistant con un browser: https://DIRECCIÓN_IP con l'utente generato in precedenza. Ci renderemo conto che in “Amministrazione” > “Stato del feed”, Volontà “Aggiornamento in corso…”, Questo processo richiederà un po' di tempo, Dobbiamo aspettare che finisca l'aggiornamento.
Non male, Prima di poter eseguire la scansione utilizzando le attività, dobbiamo modificare lo scanner OpenVAS predefinito, Accediamo dalla shell come utente gvm:
sudo su - gvm
Elenchiamo e copiamo l'UUID corrente dalle scansioni predefinite di OpenVAS:
cd /opt/gvm/src/ gvmd --get-scanners gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/opt/gvm/var/run/ospd.sock
Va bene e finalmente, Se vogliamo che venga aggiornato in modo programmato, creeremo il seguente file:
nano /opt/gvm/bin/openvas-update
Mettiamo il seguente contenuto:
/opt/gvm/bin/greenbone-nvt-sync /opt/gvm/sbin/greenbone-feed-sync --type GVMD_DATA /opt/gvm/sbin/greenbone-feed-sync --type SCAP /opt/gvm/sbin/greenbone-feed-sync --type CERT
Lo hacemos ejecutable:
Chmod A+X /opt/gvm/bin/openvas-update
E l'abbiamo messo su cron:
crontab -e
E lo lasciamo programmato, ad esempio tutti i giorni alle 0 del mattino:
0 0 * * * /opt/gvm/bin/openvas-update
Speriamo che tu sia interessato, Dopo questa installazione, ciò che rimane viene aspirato, Definire gli obiettivi o le destinazioni dei controlli, Creare attività pianificate per eseguire scansioni delle vulnerabilità… E quello che ho detto, nei prossimi post vedremo come integrarlo con Centreon.