GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie GVM Vulnerability Scanner unter Ubuntu 20.04

GVM (Greenbone Vulnerability Management) ist eine Open-Source-Lösung für das Schwachstellenscannen und Schwachstellenmanagement. GVM war zuvor als OpenVAS bekannt .

Greenbone Vulnerability Manager und OpenVAS werden von einer Reihe von Menschen auf der ganzen Welt verwendet, darunter Sicherheitsexperten und normale Benutzer, die dies alles in einer Suite von Tools verwendeten, die zusammenarbeiten, um die Tests gegen Client-Computer unter Verwendung ihrer eigenen Datenbank bekannter Schwachstellen durchzuführen und Exploits.

In diesem Artikel zeigen wir, wie Sie GVM unter Ubuntu 20.04 installieren und einrichten, um sicherzustellen, dass Ihre Server vor Angriffen geschützt sind.

Basissystem

Wir werden Greenbone Vulnerability Manager 20.08 mit der Basisinstallation von Systempaketen auf Ubuntu 20.04 einrichten.

Installationsvoraussetzungen

Installieren Sie zuerst die folgenden Abhängigkeitspakete.

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

Erstellen Sie den GVM-Benutzer

Fügen Sie die folgenden Befehle in das Terminal ein, um den gvm-Benutzer zu erstellen, der im Installations- und Kompilierungsprozess verwendet wird:

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/

Melden Sie sich jetzt als gvm-Benutzer an. Von nun an wird in den Titelköpfen gekennzeichnet, unter welchem ​​Benutzer Befehle ausgeführt werden sollen.

sudo su - gvm

Software herunterladen und installieren (GVM)

Erstellen Sie nun den Ordner src und git clonen Sie den GVM-Quellcode:

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

gvm-libs (GVM) installieren

In diesem Schritt kompilieren wir die gvm-libs aus dem 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

Installieren Sie openvas-smb (GVM)

Geben Sie nun das Verzeichnis openvas-smb ein und kompilieren Sie den Quellcode:

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

Installieren Sie den Scanner (GVM)

Wie in den vorherigen Schritten werden wir jetzt openvas scanner erstellen und installieren:

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

Redis für OpenVAS-Installation (root) behoben

Jetzt müssen wir uns von der aktuellen Sitzung abmelden, um zum privilegierten Benutzer zurückzukehren, indem wir im Terminal „exit“ eingeben.
Fügen Sie nun den folgenden Code in das Terminal ein:

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

Fügen Sie den Pfad /opt/gvm/sbin zur Variable secure_path hinzu:

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

Dem Benutzer, der ospd-openvas ausführt, erlauben, mit Root-Berechtigungen zu starten:

echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas" > /etc/sudoers.d/gvm
echo "gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad" >> /etc/sudoers.d/gvm

NVT (GVM) aktualisieren

Wir führen jetzt das greenbone-nvt-sync aus, um die Schwachstellendateidefinitionen zu aktualisieren.
Wechseln Sie zunächst zurück zur GVM-Benutzersitzung:

sudo su – gvm

Und führen Sie Folgendes aus:

greenbone-nvt-sync

Wenn Sie Zeitüberschreitungsfehler erhalten, ist höchstwahrscheinlich eine Firewall im Weg. Achten Sie darauf, TCP-Port 873 zu öffnen. Wenn Sie Verbindungsablehnungsfehler erhalten, warten Sie einige Zeit und versuchen Sie es erneut.

Dies dauert sehr lange, also müssen Sie geduldig sein.

Plugins in Redis mit OpenVAS (GVM) hochladen

Dies kann abhängig von Ihrer Hardware einige Zeit in Anspruch nehmen und gibt Ihnen keine Rückmeldung, wenn Sie den Befehl ausführen.

sudo openvas -u

Hinweis:Wenn Sie Fehler wegen fehlender Bibliotheken erhalten, geben Sie Folgendes ein (zeilenweise):

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

Install Manager (GVM)

Geben Sie nun das gvmd-Verzeichnis ein, um Greenbone Manager zu erstellen und zu installieren:

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

PostgreSQL konfigurieren (Sudoers-Benutzer)

Wechseln Sie in sudoers zu einem Benutzer (verwenden Sie dafür nicht root oder gvm). Die Benutzersitzung wird mit dem folgenden Befehl "sudo -u postgres bash" umgeschaltet.
Führen Sie eine Zeile nach der anderen aus.

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

Zertifikate reparieren (GVM)

Geben Sie jeweils eine Zeile ein:

sudo su - gvm
gvm-manage-certs -a

Administratorbenutzer (GVM) erstellen

Dadurch werden ein anfänglicher Benutzername und ein Kennwort erstellt. Denken Sie daran, es später zu ändern.

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

Feeds konfigurieren und aktualisieren (GVM)

Damit die Feeds vollständig aktualisiert werden, müssen wir „Feed Import Owner“ auf die UUID des Administrators setzen. Suchen Sie zuerst die UUID des neuen Admin-Benutzers

gvmd --get-users --verbose

Sie sollten etwa Folgendes erhalten:

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

Verwenden Sie im nächsten Befehl die Zeichenfolge neben dem Administrator:

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

Der Beispielbefehl wäre also:

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

Führen Sie die nächsten drei Befehle zeilenweise aus. Wenn Sie Verbindungsablehnungsfehler erhalten, versuchen Sie den Befehl erneut, bis er erfolgreich ist. Auch diese Befehle werden einige Zeit in Anspruch nehmen.

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

gsa (GVM) installieren

Rufen Sie erneut wie in den vorherigen Schritten den gsa-Ordner auf und kompilieren Sie den gsa-Quellcode:

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

OSPD-OpenVAS einrichten

Installieren Sie die virtuelle Umgebung (GVM)

Hinweis:Möglicherweise müssen Sie –python python3.8 ändern, damit es mit Ihrer installierten Python-Version übereinstimmt.

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

Installieren Sie ospd (GVM)

Wir werden ospd mit dem Pip-Installer installieren:

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

Installieren Sie ospd-openvas (GVM)

Auch für die ospd-openvas werden wir den Pip-Installer mit dem Paket verwenden, das wir von github geklont haben:

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

Startskripte erstellen (root)

Geben Sie zuerst exit ein, um sich von der Root-Sitzung abzumelden, und fügen Sie dann Folgendes in das Terminal ein:

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

Dienste aktivieren und starten (root)

Wir aktivieren und starten jetzt die GVM-Dienste, ebenfalls als Root-Benutzer:

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

Überprüfen Sie die Dienste (root)

Stellen Sie sicher, dass alle drei Dienste laufen (geben Sie jeweils eine Zeile ein).

systemctl status gvmd
systemctl status gsad
systemctl status ospd-openvas

Standardscanner (GVM) ändern

Wechseln Sie zurück zu Ihrer GVM-Sitzung.

sudo su - gvm

Rufen Sie zuerst die UUID des Scanners ab, der den Socket hat (ospd.sock)

gvmd --get-scanners

Ändern Sie dann den Scanner:

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

Beispiel:

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.

Das ist es. Sie können sich jetzt bei der GVM-Weboberfläche anmelden.

Schlussfolgerung

Wir haben die GVM-Installation auf Ubuntu 20.04 erfolgreich abgeschlossen. Sie können sich jetzt mit Ihrer Server-IP-Adresse anmelden. Der Standard-Login ist admin/admin wie oben festgelegt. Teilen Sie uns Ihre Meinung zum Tutorial in den Kommentaren unten mit.


Ubuntu
  1. So installieren Sie Git unter Ubuntu 18.04 / 20.04

  2. So installieren Sie R unter Ubuntu 20.04

  3. So installieren Sie Git unter Ubuntu 18.04

  4. So installieren Sie Go unter Ubuntu 18.04

  5. So installieren Sie Git unter Ubuntu 16.04

So installieren Sie den Angry IP Scanner unter Ubuntu 16.04 LTS

So installieren Sie Git unter Ubuntu 18.04 LTS

So installieren Sie Git unter Ubuntu 19.10

So installieren Sie Git unter Ubuntu 20.04 LTS

So installieren Sie Nessus Scanner unter Ubuntu 20.04 LTS

So installieren Sie Gitea unter Ubuntu 22.04