GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer GVM Vulnerability Scanner sur Ubuntu 20.04

GVM (Greenbone Vulnerability Management) est une solution open source pour l'analyse et la gestion des vulnérabilités. GVM s'appelait auparavant OpenVAS .

Greenbone Vulnerability Manager et OpenVAS sont largement utilisés par un certain nombre de personnes dans le monde, y compris des experts en sécurité et des utilisateurs communs qui ont utilisé tout cela dans une suite d'outils qui fonctionne ensemble pour exécuter les tests sur des ordinateurs clients en utilisant sa propre base de données de faiblesses connues et exploits.

Dans cet article, nous montrerons comment installer et configurer GVM sur Ubuntu 20.04 pour vous assurer que vos serveurs sont protégés contre les attaques.

Système de base

Nous allons configurer Greenbone Vulnerability Manager 20.08 avec l'installation de base des packages système sur Ubuntu 20.04.

Installer les prérequis

Installez d'abord les packages de dépendances suivants.

sudo su -
apt update &&\
apt -y dist-upgrade &&\
apt -y autoremove &&\
apt install -y software-properties-common &&\
apt install -y 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 postgresql postgresql-contrib postgresql-server-dev-all 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 &&\
apt install -y texlive-latex-extra --no-install-recommends &&\
apt install -y texlive-fonts-recommended &&\
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 &&\
apt update &&\
apt -y install yarn &&\
yarn install &&\
yarn upgrade

Créer l'utilisateur GVM

Collez les commandes suivantes dans le terminal pour créer l'utilisateur gvm qui sera utilisé dans le processus d'installation et de compilation :

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 &&\
bash -c 'cat < /etc/ld.so.conf.d/gvm.conf
# gmv libs location
/opt/gvm/lib
EOF'
mkdir /opt/gvm &&\
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos '' &&\
usermod -aG redis gvm &&\
chown gvm:gvm /opt/gvm/

Connectez-vous maintenant en tant qu'utilisateur gvm. À partir de maintenant, les en-têtes de titre seront marqués avec quel utilisateur est nécessaire pour exécuter des commandes en tant que.

sudo su - gvm

Télécharger et installer le logiciel (GVM)

Créez maintenant le dossier src et git clonez le code source GVM :

mkdir src &&\
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 (GVM)

Dans cette étape, nous allons compiler les gvm-libs depuis le github :

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

Installer openvas-smb (GVM)

Entrez maintenant dans le répertoire openvas-smb et compilez le code source :

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 &&\
make install &&\
cd /opt/gvm/src

Installer le scanneur (GVM)

Comme dans les étapes précédentes, nous allons maintenant compiler et installer le scanner openvas :

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 &&\
cd /opt/gvm/src

Correction de redis pour l'installation d'OpenVAS (racine)

Maintenant, nous devons nous déconnecter de la session en cours pour revenir à l'utilisateur privilégié en tapant 'exit' dans le terminal.
Collez maintenant le code suivant dans le terminal :

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 [email protected] &&\
systemctl start [email protected]
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
cat << /etc/systemd/system/disable-thp.service
[Unit]
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
EOF
systemctl daemon-reload &&\
systemctl start disable-thp &&\
systemctl enable disable-thp &&\
systemctl restart redis-server

Ajoutez le chemin /opt/gvm/sbin à la variable secure_path :

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

Autoriser l'utilisateur exécutant ospd-openvas à se lancer avec les autorisations root :

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 NVT (GVM)

Nous allons maintenant exécuter le greenbone-nvt-sync pour mettre à jour les définitions des fichiers de vulnérabilité.
Revenez d'abord à la session utilisateur GVM :

sudo su – gvm

Et exécutez ce qui suit :

greenbone-nvt-sync

Si vous obtenez des erreurs de délai d'attente, il est fort probable qu'il y ait un pare-feu sur le chemin. Assurez-vous d'ouvrir le port TCP 873. Si vous obtenez des erreurs de connexion refusée, attendez un peu et réessayez.

Cela prend beaucoup de temps, vous devrez donc être patient.

Télécharger des plugins dans redis avec OpenVAS (GVM)

Cela peut prendre un peu de temps en fonction de votre matériel et ne vous donne aucun retour lorsque vous exécutez la commande.

sudo openvas -u

Remarque :Si vous obtenez des erreurs de bibliothèque manquantes, saisissez ce qui suit (une ligne à la fois) :

exit
echo "/opt/gvm/lib > /etc/ld.so.conf.d/gvm.conf 
ldconfig
sudo su - gvm

Gestionnaire d'installation (GVM)

Entrez maintenant dans le répertoire gvmd pour compiler et installer Greenbone Manager :

cd /opt/gvm/src/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 &&\
cd /opt/gvm/src

Configurer PostgreSQL (utilisateur Sudoers)

Passez à un utilisateur dans sudoers (n'utilisez pas root ou gvm pour cela). La session utilisateur sera commutée avec la commande "sudo -u postgres bash" ci-dessous.
Exécutez une ligne à la fois.

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

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

Fixer les certificats (GVM)

Tapez une ligne à la fois :

sudo su - gvm
gvm-manage-certs -a

Créer un utilisateur administrateur (GVM)

Cela créera un nom d'utilisateur et un mot de passe initiaux. N'oubliez pas de le changer plus tard.

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

Configurer et mettre à jour les flux (GVM)

Pour que les flux soient complètement mis à jour, nous devrons définir "Feed Import Owner" sur l'UUID de l'administrateur. Tout d'abord, recherchez l'UUID du nouvel utilisateur administrateur

gvmd --get-users --verbose

Vous devriez obtenir quelque chose comme ceci :

admin fb019c52-75ec-4cb6-b176-5a55a9b360bf

Utilisez la chaîne à côté de l'administrateur dans la commande suivante :

gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value (output string from the above command fb019c52-75ec-4cb6-b176-5a55a9b360bf)

Ainsi, l'exemple de commande serait :

$ gvmd --get-users --verbose
admin fb019c52-75ec-4cb6-b176-5a55a9b360bf
$ gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value fb019c52-75ec-4cb6-b176-5a55a9b360bf

Exécutez les trois commandes suivantes une ligne à la fois. Si vous obtenez des erreurs de connexion refusée, essayez à nouveau la commande jusqu'à ce qu'elle réussisse. Ces commandes prendront également un certain temps.

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

Installer gsa (GVM)

Encore une fois, comme dans les étapes précédentes, entrez dans le dossier gsa et compilez le code source gsa :

cd /opt/gvm/src/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 &&\
cd /opt/gvm/src

Configurer OSPD-OpenVAS

Installer l'environnement virtuel (GVM)

Remarque :Vous devrez peut-être modifier –python python3.8 pour qu'il corresponde à votre version de python installée.

cd /opt/gvm/src &&\
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH &&\
virtualenv --python python3.8  /opt/gvm/bin/ospd-scanner/ &&\
source /opt/gvm/bin/ospd-scanner/bin/activate

Installer ospd (GVM)

Nous allons installer ospd en utilisant le programme d'installation de pip :

mkdir /opt/gvm/var/run/ospd/ &&\
cd ospd &&\
pip3 install . &&\
cd /opt/gvm/src

Installer ospd-openvas (GVM)

Encore une fois pour ospd-openvas, nous utiliserons le programme d'installation de pip avec le package que nous avons cloné à partir de github :

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

Créer des scripts de démarrage (racine)

Tapez d'abord exit pour vous déconnecter de la session root, puis collez ce qui suit dans le terminal :

cat << EOF > /etc/systemd/system/gvmd.service
[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
EOF
cat << EOF > /etc/systemd/system/gsad.service
[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
EOF
cat << EOF > /etc/systemd/system/ospd-openvas.service 
[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
EOF

Activer et démarrer les services (racine)

Nous allons maintenant activer et démarrer les services GVM, également en tant qu'utilisateur root :

systemctl daemon-reload &&\
systemctl enable gvmd &&\
systemctl enable gsad &&\
systemctl enable ospd-openvas &&\
systemctl start gvmd &&\
systemctl start gsad &&\
systemctl start ospd-openvas

Vérifiez les services (racine)

Assurez-vous que les trois services sont en cours d'exécution (tapez une ligne à la fois).

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

Modifier l'analyseur par défaut (GVM)

Revenez à votre session GVM.

sudo su - gvm

Tout d'abord, obtenez l'UUID du scanner qui a le socket (ospd.sock)

gvmd --get-scanners

Modifiez ensuite le scanner :

gvmd --modify-scanner=(INSERT SCANNER UUID HERE) --scanner-host=/opt/gvm/var/run/ospd.sock

Exemple :

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

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

C'est ça. Vous pouvez maintenant vous connecter à l'interface Web GVM.

Conclusion

Nous avons terminé avec succès l'installation de GVM sur Ubuntu 20.04. Vous pouvez maintenant vous connecter en utilisant l'adresse IP de votre serveur. La connexion par défaut est admin/admin comme défini ci-dessus. Faites-nous savoir ce que vous pensez du tutoriel dans les commentaires ci-dessous.


Ubuntu
  1. Comment installer Git sur Ubuntu 18.04 / 20.04

  2. Comment installer R sur Ubuntu 20.04

  3. Comment installer Git sur Ubuntu 18.04

  4. Comment installer Go sur Ubuntu 18.04

  5. Comment installer git sur Ubuntu 16.04

Comment installer Angry IP Scanner sur Ubuntu 16.04 LTS

Comment installer Git sur Ubuntu 18.04 LTS

Comment installer Git sur Ubuntu 19.10

Comment installer Git sur Ubuntu 20.04 LTS

Comment installer Nessus Scanner sur Ubuntu 20.04 LTS

Comment installer Gitea sur Ubuntu 22.04