GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat GVM Vulnerability Scanner na Ubuntu 20.04

GVM (Greenbone Vulnerability Management) je open-source řešení pro skenování a správu zranitelností. GVM bylo dříve známé jako OpenVAS .

Greenbone Vulnerability Manager a OpenVAS jsou široce používány řadou lidí na světě, včetně bezpečnostních expertů a běžných uživatelů, kteří toto vše používali v jedné sadě nástrojů, které spolupracují na spouštění testů na klientských počítačích pomocí vlastní databáze známých slabin a zneužívá.

V tomto článku ukážeme, jak nainstalovat a nastavit GVM na Ubuntu 20.04, abyste se ujistili, že jsou vaše servery chráněny před útoky.

Základní systém

Nastavíme Greenbone Vulnerability Manager 20.08 se základní instalací systémových balíčků na Ubuntu 20.04.

Předpoklady instalace

Nejprve nainstalujte následující balíčky závislostí.

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

Vytvořte uživatele GVM

Vložte následující příkazy do terminálu a vytvořte uživatele gvm, který bude použit v procesu instalace a kompilace:

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/

Nyní se přihlaste jako uživatel gvm. Od nynějška budou hlavičky titulků označeny tím, který uživatel je potřebný k provádění příkazů jako.

sudo su - gvm

Stáhnout a nainstalovat software (GVM)

Nyní vytvořte složku src a git klonujte zdrojový kód 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

Nainstalujte gvm-libs (GVM)

V tomto kroku zkompilujeme gvm-libs z 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

Nainstalujte openvas-smb (GVM)

Nyní zadejte adresář openvas-smb a zkompilujte zdrojový kód:

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

Nainstalujte skener (GVM)

Stejně jako v předchozích krocích nyní vytvoříme a nainstalujeme skener 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

Oprava redis pro instalaci OpenVAS (root)

Nyní se musíme odhlásit z aktuální relace, abychom se dostali zpět k uživateli s oprávněním zadáním 'exit' do terminálu.
Nyní vložte následující kód do terminálu:

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

Přidejte cestu /opt/gvm/sbin do proměnné 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

Umožněte uživateli běžícímu ospd-openvas spustit s oprávněními 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

Aktualizovat NVT (GVM)

Nyní spustíme greenbone-nvt-sync k aktualizaci definic souborů zranitelnosti.
Nejprve se přepněte zpět do uživatelské relace GVM:

sudo su – gvm

A spusťte následující:

greenbone-nvt-sync

Pokud se zobrazí chyby vypršení časového limitu, je velmi pravděpodobné, že v cestě stojí firewall. Ujistěte se, že máte otevřený TCP port 873. Pokud se zobrazí chyby odmítnutí připojení, chvíli počkejte a zkuste to znovu.

Trvá to velmi dlouho, takže budete muset být trpěliví.

Nahrajte pluginy v redis pomocí OpenVAS (GVM)

V závislosti na vašem hardwaru to může chvíli trvat a při spuštění příkazu vám to neposkytne žádnou zpětnou vazbu.

sudo openvas -u

Poznámka:Pokud se zobrazí chyby knihovny, zadejte následující (po jednom řádku):

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

Správce instalací (GVM)

Nyní zadejte adresář gvmd pro sestavení a instalaci 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

Konfigurace PostgreSQL (uživatel Sudoers)

Přepněte na uživatele v sudoers (nepoužívejte k tomu root nebo gvm). Uživatelská relace bude přepnuta příkazem "sudo -u postgres bash" níže.
Provádějte vždy jeden řádek.

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

Opravit certifikáty (GVM)

Zadejte jeden řádek najednou:

sudo su - gvm
gvm-manage-certs -a

Vytvořit administrátora (GVM)

Tím se vytvoří počáteční uživatelské jméno a heslo. Nezapomeňte to později změnit.

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

Konfigurace a aktualizace zdrojů (GVM)

Aby se kanály úplně aktualizovaly, budeme muset nastavit „Feed Import Owner“ na UUID správce. Nejprve najděte UUID nového administrátora

gvmd --get-users --verbose

Měli byste dostat něco takového:

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

V dalším příkazu použijte řetězec vedle admin:

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

Příklad příkazu by tedy byl:

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

Spusťte další tři příkazy po jednom řádku. Pokud se zobrazí chyby odmítnutí připojení, zkuste příkaz znovu, dokud nebude úspěšný. Tyto příkazy budou také nějakou dobu trvat.

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

Instalovat gsa (GVM)

Znovu jako v předchozích krocích zadejte složku gsa a zkompilujte zdrojový kód 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

Nastavte OSPD-OpenVAS

Nainstalujte virtualenv (GVM)

Poznámka:Možná budete muset změnit –python python3.8, aby odpovídal vaší nainstalované verzi pythonu.

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

Instalovat ospd (GVM)

Nainstalujeme ospd pomocí pip installer:

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

Nainstalujte ospd-openvas (GVM)

Opět pro ospd-openvas budeme používat pip installer s balíčkem, který jsme naklonovali z github:

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

Vytváření spouštěcích skriptů (root)

Nejprve zadejte exit pro odhlášení z root session a poté vložte následující do terminálu:

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

Povolte a spusťte služby (root)

Nyní povolíme a spustíme služby GVM, také jako uživatel root:

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

Zkontrolujte služby (root)

Ujistěte se, že jsou spuštěny všechny tři služby (zadejte vždy jeden řádek).

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

Upravit výchozí skener (GVM)

Přepněte zpět na relaci GVM.

sudo su - gvm

Nejprve získejte UUID skeneru, který má patici (ospd.sock)

gvmd --get-scanners

Poté upravte skener:

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

Příklad:

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.

To je vše. Nyní se můžete přihlásit do webového rozhraní GVM.

Závěr

Úspěšně jsme dokončili instalaci GVM na Ubuntu 20.04. Nyní se můžete přihlásit pomocí IP adresy serveru. Výchozí přihlášení je admin/admin, jak je nastaveno výše. Dejte nám vědět, co si o tutoriálu myslíte v komentářích níže.


Ubuntu
  1. Jak nainstalovat Git na Ubuntu 18.04 / 20.04

  2. Jak nainstalovat R na Ubuntu 20.04

  3. Jak nainstalovat git na ubuntu 16.04

  1. Jak nainstalovat Git na Ubuntu 18.04

  2. Jak nainstalovat Go na Ubuntu 18.04

  3. Jak nainstalovat Git na Ubuntu 20.04

  1. Jak nainstalovat a používat GVM Vulnerability Scanner na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat Git na Ubuntu 20.04

  3. Jak nainstalovat nejnovější verzi Git na Ubuntu