Cómo instalar GVM Vulnerability Scanner en Ubuntu 20.04 | Ubuntu 20.10

Cómo instalar GVM Vulnerability Scanner en Ubuntu 20.04 | Ubuntu 20.10

 

GVM (Greenbone Vulnerability Management) es una solución de código abierto para el análisis y la gestión de vulnerabilidades. GVM se conocía anteriormente como OpenVAS .

Greenbone Vulnerability Manager y OpenVAS son ampliamente utilizados por varias personas en el mundo, incluidos expertos en seguridad y usuarios comunes que usaron todo esto en un conjunto de herramientas que funciona en conjunto para ejecutar las pruebas en las computadoras cliente utilizando su propia base de datos de debilidades conocidas y explota

En este artículo, le mostraremos cómo instalar y configurar GVM en Ubuntu 20.04 para asegurarse de que sus servidores estén protegidos contra ataques.

Sistema básico

Configuraremos Greenbone Vulnerability Manager 20.08 con la instalación básica de los paquetes del sistema en Ubuntu 20.04.

Requisitos previos de instalación

Primero instale los siguientes paquetes de dependencias.

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

Crear el usuario de GVM

Pegue los siguientes comandos en la terminal para crear el usuario gvm que se utilizará en el proceso de instalación y compilación:

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/

Ahora inicie sesión como usuario de gvm. A partir de ahora, los encabezados de título se marcarán con el usuario que se necesita para ejecutar los comandos.

sudo su - gvm

Descarga e instalación de software (GVM)

Ahora cree la carpeta src y git clone el código fuente de 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

Instalar gvm-libs (GVM)

En este paso compilaremos las gvm-libs desde el 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

Instalar openvas-smb (GVM)

Ahora ingrese al directorio openvas-smb y compile el código fuente:

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

Instalar el escáner (GVM)

Al igual que en los pasos anteriores, ahora compilaremos e instalaremos el escáner 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

Arreglar redis para la instalación de OpenVAS (raíz)

Ahora debemos cerrar sesión en la sesión actual para volver al usuario privilegiado escribiendo ‘salir’ en la terminal.
Ahora pega el siguiente código en la 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 redis-server@openvas.service &&\
systemctl start redis-server@openvas.service
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

Agregue la ruta /opt/gvm/sbin a la variable ruta_segura:

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

Permita que el usuario que ejecuta ospd-openvas se inicie con permisos de 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

Actualizar N/A (GVM)

Ahora ejecutaremos greenbone-nvt-sync para actualizar las definiciones del archivo de vulnerabilidad.
Primero vuelva a la sesión de usuario de GVM:

sudo su – gvm

Y ejecuta lo siguiente:

greenbone-nvt-sync

Si obtiene errores de tiempo de espera, lo más probable es que haya un firewall en el camino. Asegúrese de abrir el puerto TCP 873. Si obtiene errores de conexión rechazada, espere un momento y vuelva a intentarlo.

Esto lleva mucho tiempo, así que tendrás que ser paciente.

Cargar complementos en redis con OpenVAS (GVM)

Esto puede tomar un poco de tiempo dependiendo de su hardware y no le brinda información cuando ejecuta el comando.

sudo openvas -u

Nota: Si obtiene errores de biblioteca que faltan, escriba lo siguiente (una línea a la vez):

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

Administrador de instalación (GVM)

Ahora ingrese al directorio gvmd para compilar e instalar 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

Configurar PostgreSQL (usuario de Sudoers)

Cambie a un usuario en sudoers (no use root o gvm para esto). La sesión del usuario se cambiará con el comando «sudo -u postgres bash» a continuación.
Ejecute una línea a la vez.

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

Certificados fijos (GVM)

Escriba una línea a la vez:

sudo su - gvm
gvm-manage-certs -a

Crear usuario administrador (GVM)

Esto creará un nombre de usuario y una contraseña iniciales. Recuerda cambiarlo más tarde.

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

Configurar y actualizar feeds (GVM)

Para que los feeds se actualicen por completo, necesitaremos configurar «Propietario de importación de feeds» en el UUID del administrador. Primero, encuentre el UUID del nuevo usuario administrador

gvmd --get-users --verbose

Deberías obtener algo como esto:

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

Use la cadena junto al administrador en el siguiente comando:

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

Así que el comando de ejemplo sería:

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

Ejecute los siguientes tres comandos una línea a la vez. Si obtiene errores de conexión rechazada, intente el comando nuevamente hasta que tenga éxito. Estos comandos también llevarán algún tiempo.

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

Instalar gsa (GVM)

Nuevamente, como en los pasos anteriores, ingrese a la carpeta gsa y compile el código fuente de 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

Configurar OSPD-OpenVAS

Instale el entorno virtual (GVM)

Nota: Es posible que deba cambiar –python python3.8 para que coincida con su versión de python instalada.

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

Instalar ospd (GVM)

Instalaremos ospd usando pip installer:

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

Instalar ospd-openvas (GVM)

Nuevamente, para ospd-openvas, usaremos el instalador pip con el paquete que clonamos de github:

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

Crear scripts de inicio (raíz)

Primero escriba exit to loguout to root session, luego pegue lo siguiente en la 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 redis-server@openvas.service
Wants=redis-server@openvas.service

[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

Habilitar e iniciar los servicios (raíz)

Ahora habilitaremos e iniciaremos los servicios de GVM, también como usuario root:

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

Comprobar los servicios (root)

Asegúrese de que los tres servicios se estén ejecutando (escriba una línea a la vez).

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

Modificar escáner predeterminado (GVM)

Vuelva a su sesión de GVM.

sudo su - gvm

Primero, obtenga el UUID del escáner que tiene el zócalo (ospd.sock)

gvmd --get-scanners

Luego modifique el escáner:

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

Ejemplo:

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.

Eso es. Ahora puede iniciar sesión en la interfaz web de GVM.

Cómo instalar GVM Vulnerability Scanner en Ubuntu 20.04

Cómo instalar GVM Vulnerability Scanner en Ubuntu 20.04

Cómo instalar GVM Vulnerability Scanner en Ubuntu 20.04

Cómo instalar GVM Vulnerability Scanner en Ubuntu 20.04

 

Conclusión

Hemos completado con éxito la instalación de GVM en Ubuntu 20.04. Ahora puede iniciar sesión con la dirección IP de su servidor. El inicio de sesión predeterminado es admin/admin como se estableció anteriormente. Háganos saber lo que piensa sobre el tutorial en los comentarios a continuación.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.