GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer et utiliser GVM Vulnerability Scanner sur Ubuntu 20.04

GVM également appelé "Greenbone Vulnerability Management" est un logiciel open source d'analyse et de gestion des vulnérabilités qui fournit un ensemble de tests de vulnérabilité réseau pour trouver les failles de sécurité dans les systèmes et les applications. Il s'agit d'une suite d'outils tout-en-un utilisée par de nombreux experts en sécurité et utilisateurs normaux du monde entier.

Dans ce tutoriel, nous allons vous montrer comment installer et configurer GVM sur le serveur Ubuntu 20.04.

Prérequis

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Avant de commencer, vous devrez mettre à jour vos packages système vers la dernière version. Vous pouvez les mettre à jour à l'aide de la commande suivante :

apt-get update -y

Une fois votre serveur mis à jour, vous pouvez passer à l'étape suivante.

Installer les dépendances requises

Avant de commencer, vous devrez installer toutes les dépendances requises sur votre système. Vous pouvez les installer en exécutant la commande suivante :

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

Une fois toutes les dépendances installées, ajoutez le référentiel Yarn à votre système :

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

Ensuite, mettez à jour le référentiel et installez le package Yarn avec la commande suivante :

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

Ensuite, mettez à niveau Yarn vers la dernière version à l'aide de la commande suivante :

yarn install
yarn upgrade

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Installer et configurer PostgreSQL

GVM utilise PostgreSQL comme backend de base de données, vous devrez donc installer le serveur PostgreSQL sur votre système. Vous pouvez l'installer avec la commande suivante :

apt-get install postgresql postgresql-contrib postgresql-server-dev-all -y

Une fois l'installation terminée, connectez-vous à PostgreSQL et créez un utilisateur et une base de données pour GVM :

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

Ensuite, connectez-vous à la base de données puis créez un rôle et des extensions avec la commande suivante :

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

Ensuite, quittez PostgreSQL avec la commande suivante :

exit
exit

Télécharger GVM

Commencez par créer un répertoire et un utilisateur distincts pour GVM avec la commande suivante :

mkdir /opt/gvm
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''

Ensuite, ajoutez un utilisateur redis à GVM et définissez l'autorisation appropriée avec la commande suivante :

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

Ensuite, créez une variable de chemin pour GVM avec la commande suivante :

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

Ensuite, définissez le chemin de la bibliothèque GVM à l'aide de la commande suivante :

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

Ajoutez la ligne suivante :

/opt/gvm/lib

Ensuite, connectez-vous à l'utilisateur GVM et créez un répertoire pour tous les composants :

su - gvm
mkdir src

Ensuite, téléchargez tous les composants requis dans le répertoire src avec la commande suivante :

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

Installer gvm-libs

Ensuite, changez le répertoire en gvm-libs, exportez le chemin de configuration et créez un répertoire de construction avec la commande suivante :

cd gvm-libs
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Ensuite, changez de répertoire pour compiler et compiler les gvm-libs à l'aide de la commande suivante :

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

Installer openvas-smb

Ensuite, changez le répertoire en openvas-smb, exportez le chemin de configuration et créez un répertoire de construction avec la commande suivante :

cd /opt/gvm/src
cd openvas-smb
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Ensuite, changez de répertoire pour compiler et compiler openvas-smb avec la commande suivante :

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

Installer le scanner OpenVAS

Ensuite, changez le répertoire en openvas, exportez le chemin de configuration et créez un répertoire de construction avec la commande suivante :

cd /opt/gvm/src
cd openvas
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Ensuite, changez de répertoire pour compiler et installer le scanner OpenVAS avec la commande suivante :

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

Ensuite, quittez l'utilisateur gvm avec la commande suivante :

exit

Ensuite, créez le cache des bibliothèques partagées installées avec la commande suivante :

export LC_ALL="C"
ldconfig

Ensuite, copiez le fichier de configuration Redis du scanner OpenVAS avec la commande suivante :

cp /etc/redis/redis.conf /etc/redis/redis.orig
cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/

Ensuite, définissez la propriété appropriée avec la commande suivante :

chown redis:redis /etc/redis/redis-openvas.conf

Ensuite, mettez à jour le chemin vers le socket Redis unix avec la commande suivante :

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

Ensuite, activez et démarrez le service Redis avec la commande suivante :

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

Ensuite, vous devrez modifier le fichier sysctl.conf. Vous pouvez le faire avec la commande suivante :

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

Ensuite, rechargez le sysctl avec la commande suivante :

sysctl -p

Créer un fichier de service Systemd

Tout d'abord, créez un fichier de service systemd pour Transparent Huge Pages (THP) avec la commande suivante :

nano /etc/systemd/system/disable-thp.service

Ajoutez les lignes suivantes :

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

Enregistrez et fermez le fichier puis rechargez le service systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez le service disable-thp et activez-le pour qu'il démarre au redémarrage du système :

systemctl start disable-thp 
systemctl enable disable-thp

Ensuite, redémarrez le service Redis pour appliquer les modifications :

systemctl restart redis-server

Ensuite, vous devrez autoriser l'utilisateur gvm à exécuter toutes les commandes système à l'aide de sudo sans fournir de mot de passe. Vous pouvez le faire avec la commande suivante :

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

Mettre à jour les NVT

Ensuite, vous devrez mettre à jour le flux de tests de vulnérabilité réseau à partir du flux de sécurité/flux communautaire de Greenbone.

Tout d'abord, connectez-vous à l'utilisateur gvm avec la commande suivante :

su - gvm

Ensuite, mettez à jour le flux avec la commande suivante :

greenbone-nvt-sync

Une fois la mise à jour terminée, mettez à jour le serveur Redis avec les mêmes informations VT à partir des fichiers VT :

sudo openvas --update-vt-info

Installer Greenbone Vulnerability Manager

Tout d'abord, changez le répertoire en gvmd, exportez le chemin de configuration et créez un répertoire de construction avec la commande suivante :

cd /opt/gvm/src/gvmd 
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Ensuite, changez de répertoire pour compiler et installer le gvmd avec la commande suivante :

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

Ensuite, corrigez le certificat avec la commande suivante :

gvm-manage-certs -a

Vous devriez obtenir le résultat suivant :

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.

Configurer et mettre à jour les flux (GVM)

Commencez par créer un utilisateur administrateur pour accéder à l'interface Web de GVM :

gvmd --create-user=admin --password=admin

Ensuite, trouvez l'UUID d'un utilisateur admin avec la commande suivante :

gvmd --get-users --verbose

Vous devriez obtenir le résultat suivant :

admin 1288cbcf-23a0-407f-8013-b7a57acc5795

Modifiez ensuite les paramètres de gvmd avec l'UUID de l'utilisateur :

gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 1288cbcf-23a0-407f-8013-b7a57acc5795

Ensuite, synchronisez tous les flux greenbone avec la commande suivante :

greenbone-feed-sync --type GVMD_DATA
greenbone-feed-sync --type SCAP
greenbone-feed-sync --type CERT

Installer gsa

Tout d'abord, changez le répertoire en gsa, exportez le chemin de configuration et créez un répertoire de construction avec la commande suivante :

cd /opt/gvm/src/gsa 
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build

Ensuite, changez de répertoire pour compiler et installer le gsa avec la commande suivante :

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

Ensuite, créez un fichier journal pour gsa avec la commande suivante :

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

Configurer OSPD-OpenVAS

Tout d'abord, changez le répertoire en src et exportez le chemin de configuration avec la commande suivante :

cd /opt/gvm/src 
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

Ensuite, créez l'environnement virtuel Python avec la commande suivante :

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

Ensuite, activez l'environnement virtuel avec la commande suivante :

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

Ensuite, créez un répertoire pour ospd avec la commande suivante :

mkdir /opt/gvm/var/run/ospd/

Ensuite, changez le répertoire en ospd et installez ospd avec pip :

cd ospd 
pip3 install .

Ensuite, changez le répertoire en ospd-openvas et installez ospd-openvas à l'aide de la commande pip :

cd /opt/gvm/src/ospd-openvas
pip3 install .

Ensuite, quittez l'utilisateur gvm avec la commande suivante :

exit

Créer un fichier de service Systemd pour GVM, GSAD et OpenVAS

Tout d'abord, créez un fichier de service systemd pour gvmd avec la commande suivante :

nano /etc/systemd/system/gvmd.service

Ajoutez les lignes suivantes :

[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

Enregistrez et fermez le fichier puis créez un fichier de service systemd pour gsad avec la commande suivante :

nano /etc/systemd/system/gsad.service

Ajoutez les lignes suivantes :

[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

Enregistrez et fermez le fichier puis créez un fichier de service systemd pour openvas avec la commande suivante :

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

Ajoutez les lignes suivantes :

[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

Enregistrez et fermez le fichier puis rechargez le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarrez tous les services et autorisez-les à démarrer au redémarrage du système avec la commande suivante :

systemctl enable gvmd
systemctl enable gsad
systemctl enable ospd-openvas
systemctl start gvmd
systemctl start gsad
systemctl start ospd-openvas

Vous pouvez également vérifier l'état de tous les services avec la commande suivante :

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

Modifier l'analyseur par défaut

Tout d'abord, connectez-vous à l'utilisateur gvm avec la commande suivante :

sudo su - gvm

Ensuite, obtenez l'UUID du scanner avec la commande suivante :

gvmd --get-scanners

Vous devriez obtenir la commande suivante :

08b69003-5fc2-4037-a479-93b440211c73  OpenVAS  /var/run/ospd/ospd.sock  0  OpenVAS Default
6acd0832-df90-11e4-b9d5-28d24461215b  CVE    0  CVE

Maintenant, modifiez le scanner par défaut en utilisant l'UUID ci-dessus :

gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/var/run/ospd/ospd.sock

Accéder à l'interface Web GVM

À ce stade, GVM est installé et écoute sur les ports 80 et 443. Vous pouvez y accéder en utilisant l'URL https://your-server-ip . Vous serez redirigé vers la page de connexion GVM comme indiqué ci-dessous :

Indiquez votre nom d'utilisateur et votre mot de passe d'administrateur et cliquez sur Connexion bouton. Vous devriez voir le tableau de bord GVM sur la page suivante :

Conclusion

Toutes nos félicitations! vous avez installé et configuré avec succès GVM sur le serveur Ubuntu 20.04. Vous pouvez maintenant explorer la GVM pour commencer à analyser votre système à la recherche de vulnérabilités. N'hésitez pas à me demander si vous avez des questions.


Ubuntu
  1. Comment installer et utiliser Wine sur Ubuntu 20.04

  2. Comment installer et utiliser FFmpeg sur Ubuntu 18.04

  3. Comment installer et utiliser MongoDB sur Ubuntu 20.04

  4. Comment installer et utiliser Elasticsearch sur Ubuntu 20.04

  5. Comment installer et utiliser PowerShell sur Ubuntu 20.04

Comment installer et utiliser iTunes sur Ubuntu 20.04

Comment installer et utiliser R sur Ubuntu

Comment installer et utiliser vnStat sur Ubuntu 21.04

Comment installer et utiliser Nmap sur Ubuntu

Comment installer et utiliser Kontact dans Ubuntu

Comment installer et utiliser Git sur Ubuntu 18.04