GVM kwetsbaarheidsscanner installeren en gebruiken op Ubuntu 20.04
GVM ook wel “Greenbone Vulnerability Management” genoemd is een open-source software voor het scannen en beheren van kwetsbaarheden, die een reeks netwerk kwetsbaarheidstests biedt om veiligheidsgaten in systemen en toepassingen te vinden. Dit is een alles-in-één pakket gereedschappen dat door veel beveiligingsexperts en gewone gebruikers over de hele wereld gebruikt wordt.
In deze handleiding laten we je zien hoe je GVM op Ubuntu 20.04 server installeert en configureert.
Vereisten
- Een server waarop Ubuntu 20.04 draait.
- Een root wachtwoord is de server geconfigureerd.
Aan de slag
Voor je begint, moet je je systeempakketten bijwerken naar de nieuwste versie. Je kunt ze bijwerken met het volgende commando:
apt-get update -y
Zodra je server bijgewerkt is, kun je verder gaan met de volgende stap.
Installeer de vereiste afhankelijkheden
Voor je begint, moet je alle vereiste afhankelijkheden in je systeem installeren. Je kunt ze installeren door het volgende commando uit te voeren:
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
Als alle afhankelijkheden geïnstalleerd zijn, voeg je de Yarn repository aan je systeem toe:
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
Werk vervolgens de repository bij en installeer het Yarn pakket met het volgende commando:
apt-get update -y
apt-get install yarn -y
Upgrade vervolgens Yarn naar de nieuwste versie met het volgende commando:
yarn install
yarn upgrade
Als je klaar bent, kun je verder gaan met de volgende stap.
Installeer en configureer PostgreSQL
GVM gebruikt PostgreSQL als database backend, dus je zult de PostgreSQL server op je systeem moeten installeren. Je kunt hem installeren met het volgende commando:
apt-get install postgresql postgresql-contrib postgresql-server-dev-all -y
Zodra de installatie klaar is, log je in op PostgreSQL en maak je een gebruiker en een database voor GVM:
sudo -u postgres bash
export LC_ALL="C"
createuser -DRS gvm
createdb -O gvm gvmd
Verbind vervolgens met de database en maak een rol en uitbreidingen aan met het volgende commando:
psql gvmd
create role dba with superuser noinherit;
grant dba to gvm;
create extension "uuid-ossp";
create extension "pgcrypto";
Sluit vervolgens PostgreSQL af met het volgende commando:
exit
exit
Download GVM
Maak eerst een aparte directory en gebruiker voor GVM met het volgende commando:
mkdir /opt/gvm
adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''
Voeg vervolgens een redis gebruiker aan GVM toe en stel de juiste toestemming in met het volgende commando:
usermod -aG redis gvm
chown gvm:gvm /opt/gvm/
Maak vervolgens een padvariabele voor GVM met het volgende commando:
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
Definieer vervolgens het GVM bibliotheekpad met het volgende commando:
nano /etc/ld.so.conf.d/gvm.conf
Voeg de volgende regel toe:
/opt/gvm/lib
Log vervolgens in als GVM gebruiker en maak een directory voor alle componenten:
su - gvm
mkdir src
Download vervolgens alle benodigde componenten binnen de src directory met het volgende commando:
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
Installeer gvm-libs
Verander vervolgens de directory in gvm-libs, exporteer het config pad en maak een build directory aan met het volgende commando:
cd gvm-libs
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Verander vervolgens de directory in build en compileer de gvm-libs met het volgende commando:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Installeer openvas-smb
Verander vervolgens de directory in openvas-smb, exporteer het config pad en maak een build directory aan met het volgende commando:
cd /opt/gvm/src
cd openvas-smb
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Verander vervolgens de directory in build en compileer de openvas-smb met het volgende commando:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make install
Installeer OpenVAS Scanner
Verander vervolgens de directory in openvas, exporteer het config pad en maak een build directory aan met het volgende commando:
cd /opt/gvm/src
cd openvas
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Verander vervolgens de directory in build en installeer de OpenVAS scanner met het volgende commando:
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Sluit vervolgens af van de gvm gebruiker met het volgende commando:
exit
Maak vervolgens de cache naar de geïnstalleerde gedeelde bibliotheken met het volgende commando:
export LC_ALL="C"
ldconfig
Kopieer vervolgens het OpenVAS scanner Redis configuratiebestand met het volgende commando:
cp /etc/redis/redis.conf /etc/redis/redis.orig
cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/
Stel vervolgens het juiste eigendom in met het volgende commando:
chown redis:redis /etc/redis/redis-openvas.conf
Werk vervolgens het pad naar Redis unix socket bij met het volgende commando:
echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf
Schakel vervolgens de Redis service in en start hem met het volgende commando:
systemctl enable [email protected]
systemctl start [email protected]
Vervolgens moet je het sysctl.conf bestand aanpassen. Je kunt dat doen met het volgende commando:
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
Herlaad vervolgens de sysctl met het volgende commando:
sysctl -p
Maak een Systemd dienstbestand
Maak eerst een systemd service bestand voor Transparant Huge Pages (THP) met het volgende commando:
nano /etc/systemd/system/disable-thp.service
Voeg de volgende regels toe:
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
Bewaar en sluit het bestand en herlaad dan de systemd dienst met het volgende commando:
systemctl daemon-reload
Start vervolgens de disable-thp dienst en zet hem aan om te starten bij het herstarten van het systeem:
systemctl start disable-thp
systemctl enable disable-thp
Herstart vervolgens de Redis dienst om de veranderingen toe te passen:
systemctl restart redis-server
Vervolgens moet je de gebruiker gvm toestemming geven om alle systeemcommando’s met sudo uit te voeren zonder een wachtwoord te geven. Je kunt dat doen met het volgende commando:
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
Update NVT’s
Vervolgens moet je de feed van Network Vulnerability Tests uit Greenbone Security Feed/Community Feed bijwerken.
Meld je eerst aan als gvm gebruiker met het volgende commando:
su - gvm
Werk vervolgens de feed bij met het volgende commando:
greenbone-nvt-sync
Als de update voltooid is, update dan Redis server met dezelfde VT info uit VT bestanden:
sudo openvas --update-vt-info
Installeer Greenbone Vulnerability Manager
Verander eerst de directory in gvmd, exporteer het config pad en maak een build directory met het volgende commando:
cd /opt/gvm/src/gvmd
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Verander vervolgens de directory in build en installeer gvmd met het volgende commando:
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Repareer vervolgens het certificaat met het volgende commando:
gvm-manage-certs -a
Je zou de volgende uitvoer moeten krijgen:
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.
Feeds configureren en bijwerken (GVM)
Maak eerst een admin gebruiker aan om toegang te krijgen tot de GVM webinterface:
gvmd --create-user=admin --password=admin
Zoek vervolgens de UUID van een admin gebruiker met het volgende commando:
gvmd --get-users --verbose
Je zou de volgende uitvoer moeten krijgen:
admin 1288cbcf-23a0-407f-8013-b7a57acc5795
Wijzig vervolgens de gvmd instellingen met de UUID van de gebruiker:
gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value 1288cbcf-23a0-407f-8013-b7a57acc5795
Synchroniseer vervolgens alle greenbone feeds met het volgende commando:
greenbone-feed-sync --type GVMD_DATA
greenbone-feed-sync --type SCAP
greenbone-feed-sync --type CERT
Installeer gsa
Verander eerst de directory in gsa, exporteer het config pad en maak een build directory met het volgende commando:
cd /opt/gvm/src/gsa
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
mkdir build
Verander vervolgens de directory in build en installeer de gsa met het volgende commando:
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..
make
make doc
make install
Maak vervolgens een logbestand voor gsa met het volgende commando:
touch /opt/gvm/var/log/gvm/gsad.log
Configureer OSPD-OpenVAS
Verander eerst de directory in src en exporteer het config pad met het volgende commando:
cd /opt/gvm/src
export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
Maak vervolgens de virtuele omgeving Python met het volgende commando:
virtualenv --python python3.8 /opt/gvm/bin/ospd-scanner/
Activeer vervolgens de virtuele omgeving met het volgende commando:
source /opt/gvm/bin/ospd-scanner/bin/activate
Maak vervolgens een directory voor ospd met het volgende commando:
mkdir /opt/gvm/var/run/ospd/
Verander vervolgens de directory in ospd en installeer ospd met pip:
cd ospd
pip3 install .
Verander vervolgens de directory in ospd-openvas en installeer ospd-openvas met het pip commando:
cd /opt/gvm/src/ospd-openvas
pip3 install .
Sluit vervolgens af van de gvm gebruiker met het volgende commando:
exit
Maak een Systemd dienstbestand voor GVM, GSAD en OpenVAS
Maak eerst een systemd dienstbestand voor gvmd met het volgende commando:
nano /etc/systemd/system/gvmd.service
Voeg de volgende regels toe:
[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
Sla het bestand op en sluit het af maak dan een systemd service bestand voor gsad met het volgende commando:
nano /etc/systemd/system/gsad.service
Voeg de volgende regels toe:
[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
Bewaar en sluit het bestand en maak dan een systemd dienstbestand voor openvas aan met het volgende commando:
nano /etc/systemd/system/ospd-openvas.service
Voeg de volgende regels toe:
[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
Bewaar en sluit het bestand dan herlaad de systemd daemon met het volgende commando:
systemctl daemon-reload
Start vervolgens alle diensten en zet ze aan om te starten bij het herstarten van het systeem met het volgende commando:
systemctl enable gvmd
systemctl enable gsad
systemctl enable ospd-openvas
systemctl start gvmd
systemctl start gsad
systemctl start ospd-openvas
Je kunt ook de status van alle diensten controleren met het volgende commando:
systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas
Wijzig standaardscanner
Meld je eerst aan als gvm gebruiker met het volgende commando:
sudo su - gvm
Haal vervolgens de UUID van de scanner op met het volgende commando:
gvmd --get-scanners
Je zou het volgende commando moeten krijgen:
08b69003-5fc2-4037-a479-93b440211c73 OpenVAS /var/run/ospd/ospd.sock 0 OpenVAS Default 6acd0832-df90-11e4-b9d5-28d24461215b CVE 0 CVE
Wijzig nu de standaard scanner met het bovenstaande UUID:
gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/var/run/ospd/ospd.sock
Ga naar de GVM Web Interface
Op dit punt is GVM geïnstalleerd en luistert het op poorten 80 en 443. Je kunt het benaderen met de URL https://your-server-ip. Je wordt doorgestuurd naar de GVM login pagina zoals hieronder:
Geef je admin gebruikersnaam en wachtwoord op en klik op de knop Login. Je zou het GVM dashboard op de volgende pagina moeten zien:
Conclusie
Gefeliciteerd! je hebt met succes GVM geïnstalleerd en ingesteld op Ubuntu 20.04 server. Je kunt nu de GVM beginnen met het scannen van je systeem op kwetsbaarheden. Voel je vrij me te vragen als je vragen hebt.