
Installation de Greenbone Vulnerability Management (OpenVAS)
Dans cet article, nous allons voir l’installation de GVM (Gestion des vulnérabilités Greenbone) anciennement connu sous le nom d’OpenVAS (Système ouvert d’évaluation des vulnérabilités). Une solution qui nous aidera à connaître les vulnérabilités de nos systèmes, et dans un futur document nous l’intégrerons à Centreon.
Ce que j’ai dit, L’idée est de déployer une solution qui analyse et recherche les vulnérabilités de nos systèmes, qui est mis à jour et comparé à des listes ou à des CVE (Vulnérabilités et expositions courantes). Une fois la longue installation, On peut déjà utiliser une simple gestion web (ou également CLI) Créez des tâches d’analyse et nous pourrons accéder aux rapports pour analyser les éventuels problèmes de sécurité auxquels nous sommes confrontés. Oh, bien, Dans un autre document, nous verrons ce que vous imaginez, la possibilité de centraliser depuis Centreon afin de pouvoir contrôler les vulnérabilités de nos machines, donc si une machine ne respecte aucune réglementation, Nous saurons.
Nous commençons avec une machine Ubuntu Server 20.10, nous commençons par les dépendances nécessaires pour 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 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
Fil Instalamos:
sudo npm install -g yarn --prefix /usr/
Creamos el perfil para el usuario de GVM:
echo 'export PATH="$CHEMIN:/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
Nous créons le fichier /etc/ld.so.conf.d/gvm.conf avec le contenu suivant:
# gmv-libs emplacement /opt/gvm/lib
Nous créons l’utilisateur GVM, Nous corrigeons les autorisations et nous nous connectons comme lui:
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 - Bon jeu.
Nous créons le répertoire src et définissons la variable avec le bon chemin:
mkdir /opt/gvm/src cd /opt/gvm/src/ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
Nous téléchargeons et compilons les bibliothèques 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:echo redis /etc/redis/redis-openvas.conf "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf systemctl activer D**********@op*****.serviaprès Jésus-Christ Démarrage systemctl D**********@op*****.serviaprès Jésus-Christ
Establecemos los permisos para GVM. Ejecutando 'visudo’ Y añadimos lo siguiente para darle permisos de sudoers:
Valeurs par défaut env_reset Valeurs par défaut mail_badpass Valeurs par défaut secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bac:/sbin:/poubelle:/Bouton-pression/Corbeille:/opt/gvm/sbin" ... # Autoriser les membres du groupe sudo à exécuter n’importe quelle commande %sudo ALL=(TOUT:TOUT) TOUT ### Autoriser l’utilisateur gvm à exécuter ospd-openvas et à lancer OpenVAS avec les privilèges root gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad ...
Maintenant que nous avons les bonnes autorisations, nous allons mettre à jour les tests de vulnérabilité NVT (Tests de vulnérabilité du réseau) à partir du fil de la communauté Greenbone, Sachez que ce processus prendra beaucoup de temps:
Exit sudo su - gvm greenbone-nvt-sync
Nous téléchargeons et construisons 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
Nous configurons la base de données PostgreSQL, Nous créons l’utilisateur et la base de données:
sudo -u postgres bash export LC_ALL="C" createuser -DRS gvm createdb -O gvm gvmd
Nous corrigeons les autorisations et créons les extensions de base de données:
psql gvmd créer un rôle dba avec superuser noinherit; Octroi d’un DBA à GVM;
Créer une extension "uuid-ossp";
Créer une extension "pgcrypto";
sortie
sortie
Nous générons les certificats pour GVM:
sudo su - gvm gvm-manage-certs -a
Nous créons le compte 'admin'’ administratif pour GVM, N’utilisez pas de caractères spéciaux dans le mot de passe:
/opt/gvm/sbin/gvmd --create-user=admin --password=MOT DE PASSE
Nous sortons et notons l’UUID du compte que nous venons de créer:
gvmd --get-users --verbose
En utilisant l’UUID de l’utilisateur admin, nous modifions la configuration de gvmd:
gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Mise à jour de la synchronisation des flux Greenbone, Attention, cela prendra du temps:
greenbone-feed-sync --type GVMD_DATA greenbone-feed-sync --type SCAP greenbone-feed-sync --type CERT
Nous téléchargeons et compilons 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:
quitter 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 .
La prochaine chose à faire sera de faire en sorte que Greenbone Manager démarre avec la machine, par le biais d’un service:
Exit sudo su nano /etc/systemd/system/gvmd.service
E introducimos la siguiente configuración:
[Unité] description=Ouvrir l’évaluation des vulnérabilités System Manager Daemon Documentation=man:GMMD(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 [Installer] WantedBy=multi-utilisateur.cible
Creamos ahora el servicio para iniciar Greenbone Security Assistant (GSA) avec:
nano /etc/systemd/system/gsad.service
Y pegamos esta configuración al fichero:
[Unité] Description=Assistant de sécurité Greenbone (gsad) Documentation=homme:gsad(8) https://www.greenbone.net après=network.target veut=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 [Installer] WantedBy=multi-utilisateur.cible
Nous avons créé à cette occasion le service qui permettra de lever ospd-openvas avec:
nano /etc/systemd/system/ospd-openvas.service
Et la même chose, Collez la configuration suivante:
[Unité] Description=Tâche qui exécute le démon ospd-openvas Documentation=man:gvm After=réseau.cible D**********@op*****.serviaprès Jésus-Christ Vouloir=D**********@op*****.serviaprès Jésus-Christ [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/bac:/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 [Installer] WantedBy=multi-utilisateur.cible
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
Nous vérifions que les services sont en place et que nous nous en sortons bien:
Systemctl status gvmd systemctl status gsad systemctl status ospd-openvas
Nous pourrons ouvrir l’adresse de notre assistant de sécurité Greenbone avec un navigateur: https://DIRECCIÓN_IP avec l’utilisateur précédemment généré. On se rendra compte que dans “Administration” > “État du flux”, Volonté “Mise à jour en cours…”, Ce processus prendra un certain temps, Nous devons attendre la fin de la mise à jour.
Pas mal, avant de pouvoir analyser à l’aide des tâches, nous devons modifier le scanner OpenVAS par défaut, Nous nous connectons à partir du shell en tant qu’utilisateur gvm:
sudo su - Bon jeu.
Nous listons et copions l’UUID actuel des analyses par défaut d’OpenVAS:
cd /opt/gvm/src/ gvmd --get-scanners gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/opt/gvm/var/run/ospd.sock
D’accord et enfin, Si nous voulons qu’il soit mis à jour de manière programmée, nous allons créer le fichier suivant:
nano /opt/gvm/bin/openvas-update
Nous mettons le contenu suivant:
/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
Et nous l’avons mis sur cron:
crontab -e
Et nous le laissons programmé par exemple tous les jours à 0 h:
0 0 * * * /opt/gvm/bin/openvas-update
Nous espérons que vous êtes intéressé, Après cette installation, ce qui reste est aspiré, Définir les cibles ou les destinations des contrôles, Créer des tâches planifiées pour effectuer des analyses de vulnérabilité… Et ce que j’ai dit, dans de prochains articles, nous verrons comment l’intégrer à Centreon.