Instalando Greenbone Vulnerability Management (OpenVAS)

In diesem Beitrag sehen wir die Installation von GVM (Greenbone Vulnerability Management) früher bekannt als OpenVAS (Öffnen Sie das System zur Bewertung von Sicherheitslücken). Eine Lösung, die uns hilft, die Schwachstellen unserer Systeme zu erkennen, und in einem zukünftigen Dokument werden wir es in Centreon integrieren.

ich sagte:, Die Idee ist, eine Lösung bereitzustellen, die Schwachstellen in unseren Systemen analysiert und sucht, aktualisieren und mit Listen oder CVE vergleichen (Häufige Sicherheitslücken und Gefährdungen). Einmal die lange Installation, Wir können bereits durch ein einfaches Web-Management (oder auch CLI) Wenn Sie Scan-Aufgaben erstellen, können wir auf die Berichte zugreifen, um die möglichen Sicherheitsprobleme zu analysieren, mit denen wir konfrontiert sind. gut, In einem anderen Dokument werden wir sehen, was Sie sich vorstellen, die Möglichkeit, von Centreon aus zu zentralisieren, damit wir die Schwachstellen unserer Maschinen kontrollieren können, Also, wenn eine Maschine keine Vorschriften erfüllt, wir werden es wissen.

Wir haben mit einem Ubuntu Server-Computer begonnen 20.10, Wir beginnen mit den notwendigen Abhängigkeiten für 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

Instalamos yarn:

sudo npm install -g yarn --prefix /usr/

Creamos el perfil para el usuario de GVM:

echo 'export PATH="$PATH:/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:

# gmv-libs location
/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/
export 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/
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
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/
export 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:redis /etc/redis/redis-openvas.conf
echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf
systemctl enable redis-istrver@diepenvas.service
systemctl start redis-server@aufenveins.sistvice

Wir legen die Berechtigungen für GVM fest. Laufen 'Visudo’ und wir fügen Folgendes hinzu, um Sudoern Berechtigungen zu erteilen:

Standardmäßig env_reset
Standardmäßig mail_badpass
Standardwert secure_path ="/usr / local / sbin:/usr / local / bin:/usr / sbin:/usr/bin:/sbin:/Behälter:/snap / bin:/opt/gvm/sbin"
...
# Erlauben Sie Mitgliedern der Gruppe sudo, einen beliebigen Befehl auszuführen
% sudo ALL =(ALLE:ALLE) ALLE

### Erlauben Sie gvm user, ospd-openvas auszuführen und OpenVAS mit Root-Rechten zu starten
gvm ALL = NOPASSWD: /opt / gvm / sbin / openvas
gvm ALL = NOPASSWD: /opt / gvm / sbin / gsad
...

Jetzt haben wir die richtige Erlaubnis, Wir werden die NVT-Schwachstellentests aktualisieren (Netzwerk-Schwachstellentests) aus dem Greenbone-Community-Feed, ojo que este proceso tardará bastante:

exit
sudo su - gvm
greenbone-nvt-sync

Descargamos y compilamos Greenbone Vulnerability Manager (GVM):

cd /opt/gvm/src/
git clone -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

Configuramos la base de datos de PostgreSQL, creamos el usuario y la BD:

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

Corregimos los permisos y creamos las extensiones de la bd:

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

Generamos los certificados para GVM:

sudo su - gvm
gvm-manage-certs -a

Creamos la cuenta ‘adminadministrativa para GVM, no utilizar caracteres especiales en la contraseña:

/opt/gvm/sbin/gvmd --create-user=admin --password=CONTRASEÑA

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/
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
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
export 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
cd ospd-openvas/
pip3 install .

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]
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

[Bedienung]
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

[Installieren]
WantedBy=multi-user.target

Creamos ahora el servicio para iniciar Greenbone Security Assistant (GSA) mit:

nano /etc/systemd/system/gsad.service

Y pegamos esta configuración al fichero:

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

[Bedienung]
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

[Installieren]
WantedBy=multi-user.target

Creamos en esta ocasión el servicio que levantará ospd-openvas con:

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

Und das gleiche, pegamos la siguiente configuración:

[Unit]
Description=Job that runs the ospd-openvas daemon
Documentation=man:gvm
After=network.target redis-server@openvas.service
Weinnts=redis-server@openveins.service

[Bedienung]
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

[Installieren]
WantedBy=multi-user.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

Verificamos que los servicios están levantados y vamos bien:

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

Podremos ya abrir con un navegador la dirección de nuestro Greenbone Security Assistant: https://DIRECCIÓN_IP con el usuario generado anteriormente. Nos daremos cuenta que en “Verwaltung” > “Feed Status”, pondráUpdate in progress…”, este proceso tardará bastante, tenemos que esperar a que finalice de actualizar.

gut, antes de poder hacer escaneos mediante las tareas, necesitamos modificar el scanner por defecto de OpenVAS, nos logueamos desde shell como el usuario gvm:

sudo su - gvm

Listamos y copiamos el UUID actual de los escaneo predeterminado de OpenVAS:

cd /opt/gvm/src/
gvmd --get-scanners
gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73  --scanner-host=/opt/gvm/var/run/ospd.sock

Vale y por último, si queremos que se actualice de manera programada crearemos el siguiente fichero:

nano /opt/gvm/bin/openvas-update

Le ponemos el siguiente contenido:

/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

Wir tun ausführbare:

chmod a+x /opt/gvm/bin/openvas-update

Y lo ponemos en cron:

crontab-

Y lo dejamos programado por ejemplo diariamente a las 0h:

0 0 * * * /opt/gvm/bin/openvas-update

Esperemos que os interese, tras esta instalación lo que queda está chupado, definir los targets o destinos de los chequeos, crear tareas programadas para realizar escaneos en búsqueda de vulnerabilidades… und sagte, en siguientes posts veremos cómo integrarlo con Centreon.