OpenVAS 8.0 Ubuntu 14.04 LTS vom Quellcode installieren – Teil 1

In diesem Beitrag wird gezeigt, wie man OpenVAS für Ubuntu 14.04 vom Quellcode installieren kann. Dieser Post war besonders hilfreich und hat mir bei der Erstellung des Artikels gute Dienste geleistet.

In diesem Blog befinden sich noch weitere Beiträge, die sich mit der Installation von OpenVAS beschäftigen. Hier beziehe ich aber die Quellen zunächst als tar.gz-Dateien, die dann Schritt für Schritt kompiliert werden.

Die aktuelle Quellpakete kann man von dieser Webseite bzw. hier beziehen. Um das Herunterladen benötigter Dateien einfach zu gestallten, habe ich folgende Skript erstellt, das man zunächst den aktuellen Bedingungen anpassen sollte. Damit ist insbesondere der dritte Abschnitt (#Source Pakete runterladen) gemeint. Hier sollte geprüft werden, ob die dort angegebenen Pakete noch aktuell bzw. neue Pakete bereits verfügbar sind.

In den ersten Teilen des Skriptes werden zunächst abhängige Pakete heruntergeladen und die Konfiguration des benötigten Redis-Server ein wenig angepasst. Der Befehl in der letzen Zeile entpackt alle Quelldateien in das Verzeichnis /usr/local/src  und bereitet somit das kompilieren vor.

# Abhängigkeiten runterlasen

sudo apt-get install -y build-essential devscripts dpatch libassuan-dev 
 libglib2.0-dev libgpgme11-dev libpcre3-dev libpth-dev libwrap0-dev libgmp-dev libgmp3-dev 
 libgpgme11-dev libopenvas2 libpcre3-dev libpth-dev quilt cmake pkg-config 
 libssh-dev libglib2.0-dev libpcap-dev libgpgme11-dev uuid-dev bison libksba-dev 
 doxygen sqlfairy xmltoman sqlite3 libsqlite3-dev wamerican  libhiredis-dev libsnmp-dev 
 libmicrohttpd-dev libxml2-dev libxslt1-dev xsltproc libssh2-1-dev libldap2-dev autoconf nmap libgnutls-dev 
libpopt-dev heimdal-dev heimdal-multidev libpopt-dev mingw-w64 


# Redis Server einstellen
apt-get install -y redis-server 
cp /etc/redis/redis.conf /etc/redis/redis.orig
echo 'unixsocket /tmp/redis.sock' >> /etc/redis/redis.conf
service redis-server restart

#Source Pakete runterlasen und auspacken
cd /usr/local/src
wget --no-check-certificate  https://wald.intevation.org/frs/download.php/2291/openvas-libraries-8.0.7.tar.gz
wget --no-check-certificate  https://wald.intevation.org/frs/download.php/2266/openvas-scanner-5.0.5.tar.gz
wget --no-check-certificate  https://wald.intevation.org/frs/download.php/2295/openvas-manager-6.0.8.tar.gz
wget http://wald.intevation.org/frs/download.php/2299/greenbone-security-assistant-6.0.10.tar.gz
wget http://wald.intevation.org/frs/download.php/2209/openvas-cli-1.4.3.tar.gz
wget http://wald.intevation.org/frs/download.php/1975/openvas-smb-1.0.1.tar.gz
wget http://wald.intevation.org/frs/download.php/2177/ospd-1.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2005/ospd-ancor-1.0.0.tar.gz
wget http://wald.intevation.org/frs/download.php/2097/ospd-debsecan-1.0.0.tar.gz
wget http://wald.intevation.org/frs/download.php/2003/ospd-ovaldi-1.0.0.tar.gz
wget http://wald.intevation.org/frs/download.php/2004/ospd-w3af-1.0.0.tar.gz

for i in *.tar.gz; do tar xzpf "$i"; done
									

Im nächsten Abschnitt kompilieren wir nacheinander die Pakete openvas-smb, openvas-libraries und openvas-scanner. Die Abarbeitung jedes Vorgang kann je nach Größe der Pakete entsprechende Zeit in Anspruch nehmen. Man sollte hier auf Fehlermeldungen achten und den nächsten Abschnitt erst beginnen, wenn alles ordnungsgemäß abgearbeitet worden ist.

# openvas-smb
cd openvas-smb* ;
 mkdir build ;
 cd build/ ;
 cmake .. ;
 make ;
 make doc-full ;
 make install ;
 cd /usr/local/src

#openvas-libraries
cd openvas-libraries-* ;
mkdir build ;
cd build ;
cmake .. ;
make ;
make doc-full ;
make install ;
cd /usr/local/src

# openvas-scanner
cd openvas-scanner-* ;
 mkdir build ;
 cd build/ ;
 cmake .. ;
 make ;
 make doc-full ;
 make install ;
 cd /usr/local/src
									

Nun gönnen wir dem Compiler eine kurze Pause 😉 und bringen den OpenVAS-Daemon zum laufen. Dazu laden wir in einem ersten Schritt die Bibliotheken neu und erstellen danach die notwendigen Zertifikate. Das OpenVAS Projekt pflegt einen öffentlichen Feed von Network Vulnerability Tests (NVTs).  Dieser Feed ist als Standard in OpenVAS vorkonfiguriert und muss in einem nächsten Schritt heruntergeladen werden. Ist dies ordnungsgemäß erfolgt, so kann der Deamon im letzen Schritt gestartet werden.

# Bibliotheken neu laden
ldconfig

# Zertifikate erstellen
openvas-mkcert

# NVT's herunterladen
openvas-nvt-sync

#OpenVAS Daemon starten
openvassd
									

Der erste Start kann tatsächlich etwas dauern, da erst alle heruntergeladenen NVT’s eingelesen werden müssen. Der OpenVAS-Daemon ist zur Arbeit erst bereit, wenn in der ersten Zeile die Meldung: “openvassd: Waiting for incoming connections” angezeigt wird. Mit folgendem Befehl lässt sich der Status darstellen.

watch "ps -ef | grep openvassd"
									

openvas

Im nächsten Schritt wird das Paket für den openvas-manager kompiliert. Auch hier sollte auf mögliche Fehler geachtet werden.

#openvas-manager
cd openvas-manager-* ;
 mkdir build ;
 cd build/ ;
 cmake .. ;
 make ;
 make doc-full ;
 make install ;
 cd /usr/local/src
									

Nun werden nochmals  verschiedene Feeds geladen, die helfen auftretenden Schwachstellen zu kategorisieren bzw. zu bewerten. Eine Auflistung der möglichen Feeds findet man hier. In diesem konkreten Fall laden wir die Feeds für SCAP (Security Content Automation Protocol) und CERT (Computer Emergency Respone Team) herunter.

Mit den nachfolgenden Anweisungen werden ein Client-Zertifikat erstellt, die Datenbank neu  initialisiert und eine Admin-Rolle eingerichtet. Wichtig: Dieser Admin-Account (Passwort) benötigen Sie, um sich später am Web-Frontend  von OpenVAS anzumelden.

# scap Feed herunterladen
openvas-scapdata-sync

# cert Feeds herunterladen
openvas-certdata-sync

#Client-Zertifikat erstellen
openvas-mkcert-client -n -i

# Datenbank initiealisieren
openvasmd --rebuild --progress

# Admin-Rolle einrichten und Passwort setzen
openvasmd --create-user=admin --role=Admin
									

Weiter geht es mit den Paketen für den OpenVAS-Command-Line-Interface  und den Greenbone-Security-Assistenten. Auch hier sollten keine Fehler beim kompilieren auftreten.

# openvas-command-line-interface
cd openvas-cli-* ;
 mkdir build ;
 cd build/ ;
 cmake .. ;
 make ;
 make doc-full ;
 make install ;
 cd /usr/local/src
									

# greenbone-security-assistant
cd greenbone-security-assistant-* ;
 mkdir build ;
 cd build/ ;
 cmake .. ;
 make ;
 make doc-full ;
 make install ;
 cd /usr/local/src
									

Abschließend werden alle installierten Komponenten neu gestartet. Auch hier ist es wichtig, jede Anweisung einzeln abzuarbeiten und auf Fehlermeldungen zu achten.

openvasmd --rebuild --progress
 
openvasmd
 
gsad --http-only
									

Mit dem letzten Befehl wurde der Greenbone Security Assistant per http gestartet. Wer hier lieber das sichere https nutzen möchte, der sollte die Option weglassen oder eine von den nachfolgenden Möglichkeiten nutzen:

Usage:
gsad [OPTION...] - Greenbone Security Assistant Daemon
Help Options:
-h, --help                                     Show help options
Application Options:
--drop-privileges                              Drop privileges.
-f, --foreground                               Run in foreground.
--http-only                                    Serve HTTP only, without SSL.
--listen=<address>                             Listen on <address>.
--mlisten=<address>                            Manager address.
-p, --port=<number>                            Use port number <number>.
-m, --mport=<number>                           Use manager port number <number>.
-r, --rport=<number>                           Redirect HTTP from this port number <number>.
-R, --redirect                                 Redirect HTTP to HTTPS. This is the default behaviour.
--no-redirect                                  Don't redirect HTTP to HTTPS.
-v, --verbose                                  Print progress messages.
-V, --version                                  Print version and exit.
-k, --ssl-private-key=<file>                   Use <file> as the private key for HTTPS
-c, --ssl-certificate=<file>                   Use <file> as the certificate for HTTPS
--dh-params=<file>                             Diffie-Hellman parameters file
--do-chroot                                    Do chroot.
--secure-cookie                                Use a secure cookie (implied when using HTTPS).
--timeout=<number>                             Minutes of user idle time before session expires.
--debug-tls=<level>                            Enable TLS debugging at <level>
--gnutls-priorities=<string>                   GnuTLS priorities string.
--face=<dir>                                   Use interface files from subdirectory <dir>
--guest-username=<name>                        Username for guest user.  Enables guest logins.
--guest-password=<password>                    Password for guest user.  Defaults to guest username.
--http-frame-opts=<frame-opts>                 X-Frame-Options HTTP header.  Defaults to "SAMEORIGIN".
--http-csp=<csp>                               Content-Security-Policy HTTP header.  Defaults to "default-src 'self' 'unsafe-inline'; img-src 'self' blob:; frame-ancestors 'self'".
--http-guest-chart-frame-opts=<frame-opts>     X-Frame-Options HTTP header for guest charts.  Defaults to "".
--http-guest-chart-csp=<csp>                   Content-Security-Policy HTTP header.  Defaults to "default-src 'self' 'unsafe-inline'; img-src 'self' blob:; frame-ancestors *".

Nun muss man nur noch seinen favorisierten Browser nutzen und kann das Webinterface starten:

URL: http:/IP-Adresse

Nutzername: admin
Passwort: <das vorher bereits generierte Passwort>

login

Im zweiten Teil dieses Artikels prüfen wir, ob OpenVAS richtig installiert ist und nehmen weitere Anpassungen vor.

Schreibe einen Kommentar