Skip to content

OpenVAS 9 - Installation des Schwachstellen-Management via Source, PPA oder Script unter Ubuntu 16.04

Wer nicht gerade BackBox Linux einsetzt oder andere Distributionen mit integriertem OpenVAS, der muss eine Installation eventuell von Hand vornehmen.
Darum habe ich die alte Installationsanleitung aktualisiert (siehe unten) und auf die neue Version 9 angepasst. Zusätzlich sind weitere Installationsmöglichkeiten hinzugekommen.

Die augenscheinlichste Neuerung von OpenVAS 9 ist die neue Oberfläche, an der fast 2 Jahre entwickelt wurde. (Changelog)
Als Basissystem dient Ubuntu 16.04 LTS

openvas9

Installation OpenVAS 9 via Source

Abhängigkeiten installieren

sudo apt-get install -y build-essential devscripts dpatch curl libassuan-dev libglib2.0-dev libgpgme11-dev libpcre3-dev libpth-dev libwrap0-dev libgmp-dev libgmp3-dev libgpgme11-dev libpcre3-dev libpth-dev quilt cmake pkg-config libssh-dev libglib2.0-dev libpcap-dev libgpgme11-dev uuid-dev bison libksba-dev doxygen libsql-translator-perl xmltoman sqlite3 libsqlite3-dev wamerican redis-server libhiredis-dev libsnmp-dev libmicrohttpd-dev libxml2-dev libxslt1-dev xsltproc libssh2-1-dev libldap2-dev autoconf nmap libgnutls28-dev gnutls-bin libpopt-dev heimdal-dev heimdal-multidev libpopt-dev texlive-full rpm alien nsis rsync python2.7 python-setuptools checkinstall

OpenVAS 9 Pakete herunterladen und entpacken

wget http://wald.intevation.org/frs/download.php/2420/openvas-libraries-9.0.1.tar.gz
wget http://wald.intevation.org/frs/download.php/2423/openvas-scanner-5.1.1.tar.gz
wget http://wald.intevation.org/frs/download.php/2426/openvas-manager-7.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2429/greenbone-security-assistant-7.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2397/openvas-cli-1.4.5.tar.gz
wget http://wald.intevation.org/frs/download.php/2377/openvas-smb-1.0.2.tar.gz
wget http://wald.intevation.org/frs/download.php/2401/ospd-1.2.0.tar.gz
wget http://wald.intevation.org/frs/download.php/2405/ospd-debsecan-1.2b1.tar.gz


sudo tar zxvf openvas-*
sudo tar zxvf greenbone*
sudo tar zxvf ospd*

Redis Server konfigurieren

cp /etc/redis/redis.conf /etc/redis/redis.orig
sudo sh -c 'echo "unixsocket /tmp/redis.sock" >> /etc/redis/redis.conf'


OpenVAS Libraries installieren

cd openvas-libraries-9.0.1
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install


OpenVAS Manager installieren

cd openvas-manager-7.0.2
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install


OpenVAS Scanner installieren

cd openvas-scanner-5.1.1
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install

OpenVAS CLI und SMB installieren

cd openvas-cli-1.4.5
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install

cd openvas-smb-1.0.2
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install

Greenbone Security Assistant (GSA) Oberfläche installieren

cd greenbone-security-assistant-7.0.2
sudo mkdir source
cd source
sudo cmake ..
sudo make
sudo make install

Solltet ihr den default Port 4000 der GSA Oberfläche anpassen wollen, ist dies unter (/etc/default/openvas-gsa) möglich.

Ob ihr die Zusatzpakete via Open Scanner Protocol installiert, bleibt euch überlassen. Nun folgen die Schritte der Erstkonfiguration.

Greenbone-Security-Assistant

 

Zertifikate einrichten

Anstatt openvas-mkcert kommt bei OpenVAS 9 ein neuer Befehl zum Einsatz. Mit dem Schalter -a werden alle benötigten Zertifikate installiert.

sudo openvas-manage-certs -a


OpenVAS Benutzer anlegen

openvasmd --create-user=admin --role=Admin
openvasmd --user=admin --new-password=NewPW


Update der NVT und Cert Datenbank

Die alten Befehle haben sich hier ebenfalls geändert.

greenbone-nvt-sync
greenbone-scapdata-sync
greenbone-certdata-sync

Troubleshooting

OpenVAS neu aufbauen

openvasmd --rebuild --progress

OpenVAS Installation prüfen

wget https://svn.wald.intevation.org/svn/openvas/trunk/tools/openvas-check-setup --no-check-certificate
sudo chmod +x openvas-check-setup
sudo ./openvas-check-setup --v9

System starten

sudo /usr/local/sbin/gsad start
sudo /usr/local/sbin/openvassd
sudo /usr/local/sbin/openvasmd



OpenVAS 9 via Script installieren

Auf Github befindet sich ein Script, welches viele der oben erwähnten Aufgaben für OpenVAS 8 und 9 automatisiert.

sudo wget https://raw.githubusercontent.com/leonov-av/openvas-commander/master/openvas_commander.sh
sudo chmod +x openvas_commander.sh

Folgende Befehle bescheren euch eine vollständige Installation ohne viel Handarbeit

./openvas_commander.sh  --install-dependencies

./openvas_commander.sh  --show-releases
OpenVAS-8
OpenVAS-9

./openvas_commander.sh --download-sources "OpenVAS-9" 
./openvas_commander.sh --create-folders
./openvas_commander.sh --install-all
./openvas_commander.sh --configure-all
./openvas_commander.sh --update-content
./openvas_commander.sh --rebuild-content
./openvas_commander.sh --start-all


OpenVAS 9 via PPA installieren

Falls doch lieber ein Repository zur Installation verwendet werden soll, bietet sich das PPA von mrazavi an.

sudo add-apt-repository ppa:mrazavi/openvas
sudo apt-get update
sudo apt-get install openvas9

openvas9-scan

Mit einer erfolgreichen Installation des Open Vulnerability Assessment Systems sollte einem ersten Schwachstellen-Management eigentlich Nichts mehr im Weg stehen.



Folgende Links könnten dich auch interessieren

Update Security Distributionen – Kali Linux mit OpenVAS 9 und Parrot Security 3.6

Ubuntu - OpenVAS 8.0 installieren, konfigurieren und ein Netzwerk scannen

ssh_scan – Sicherheits- und Konfigurationsscanner für SSH Einstellungen

Lynis 2.2.0 - Neue Version zur Linux Systemhärtung verfügbar

Das Auditing Tool Lynis hat ein Major Update erhalten und ist bei Version 2.2.0 angelangt.

Ich hatte diesen Sicherheitscheck für Linux Systeme bereits im Blog vorgestellt.

Lynis prüft auf unsichere Einstellungen, Konfigurationsfehler und gibt Tipps zur Absicherung des Systems.

Alle Schritte können im Prinzip auch händisch vorgenommen werden. Für einen schnellen und automatisierten Audit, bietet sich das Tool aber durchaus an.

lynis

Die Version 2.2.0 unterstützt nun Debian 8 Installationen und erkennt VMware Umgebungen. Die Überprüfung von FreeBSD wurde verbessert, sowie weitere Prüfbereiche (z.B. NTP oder USB) ergänzt. Hier geht es zum Changelog.

Lynis - Installation und Anwendung

Die Installation ist wie so oft recht einfach.

wget https://cisofy.com/files/lynis-2.2.0.tar.gz

sha256sum lynis-2.0.0.tar.gz

Hash Summe auf der Homepage gegenprüfen und dann entpacken

tar -xvf lynis-2.2.0.tar.gz

cd lynis

./lynis

Beim Ausführen ohne Parameter werden alle Zusatz- Kommandos angezeigt über die das Programm verfügt. Die üblichen zur Überprüfung des Systems wären beispielsweise:

./lynis --check-all

./lynis --check-all --quick (kein Enter notwendig)

./lynis audit dockerfile datei (Docker Container prüfen)

./lynis update release      (Update Lynis Version)

./lynis --cronjob

 

Fazit

Die Alternativen im Bereich des automatisierten Sicherheitsaudit auf Linux Systemen stellen meines Wissen Bastille oder Tiger dar. Beide sind leider etwas veraltetet und stellen somit wenig Konkurrenz dar. Vergleichbares ist eventuell noch beim Linux Security Auditing Tool (LSAT) zu finden. Dieses Tool habe ich allerdings noch nicht getestet. Schlußendlich bleibt, neben der Handarbeit, für einen freien Systemschnellcheck wenig anderes außer Lynis übrig.

Eigene Distribution - freie Tools um Live CDs oder Backups von Linux Installationen zu erstellen

Vor einiger Zeit hatte ich im Blog auf Remastersys hingewiesen. Mit dem Tool war es möglich Live CDs seiner Ubuntu Installation zu erstellen.
Leider wird das Projekt vom Entwickler nicht weiter verfolgt. Auf älteren Systemen ist es zwar weiterhin anwendbar, dennoch ist bei neueren Ubuntu Systemen eine Alternative notwendig.

Hier ein paar Möglichkeiten, eine Sicherung eures Linux Systems zu erstellen. Auch bootbare ISO Dateien, also Live CDs sind möglich.

Freie Tools für Live CDs oder Backups von Linux Installationen

Systemback

Bei Systemback handelt es sich um ein klassisches Backup Tool, welches unter anderem Wiederherstellungspunkte erstellen kann. Ebenso eignet es sich gut für das Erstellen einer persönlichen Live CD. Hier wird einfach ein Abbild des vorhandenen Systems auf die Festplatte geschrieben. 

systemback

Das Programm integriert auf Wunsch das Home Verzeichnis und erstellt ein ISO Datei, welche auf CD gebrannt oder auf einen USB Stick kopiert werden kann.
Bei der Verwendung von Ubuntu Desktop ist mit dem Startup Disk Creator das richtige Tool schon mit an Bord.

Installation Systemback auf Ubuntu Systemen

 sudo add-apt-repository ppa:nemh/systemback
 sudo apt-get update
 sudo apt-get install systemback

ubuntu-live-cd

Distroshare Ubuntu Imager

Ein andere Variante bietet DistroShare. Es handelt sich dabei um ein Skript, welches auf der offiziellen Ubuntu Seite zu finden ist. Schon Remastersys setzte auf ähnliche Weise darauf.

Im Prinzip muss nur das Script heruntergeladen und ausgeführt werden.

Hier geht es zur Projektseite.

Installation Distro Ubuntu Imager

Bevor das Script ausgeführt wird, können über eine Config Datei "distroshare-ubuntu-imager.config" weitere Anpassungen vorgenommen werden.

sudo ./distroshare-ubuntu-imager.sh

Danach sollte das Image auf einen USB Stick geschoben werden, dass geht am einfachsten mit dem dd Befehl
In diesem Beispiel ist sdb euer Stick.

dd if=isoimage.iso of=/dev/sdb bs=1M

Die Entwickler weisen darauf hin, dass der Ubuntu Startup Disk Creator nicht funktioniert. Sie empfehlen Unetbootin oder ähnliches.

Distroshare - Eigenkreationen für die Masse

Wer seine selbst erzeugten Distributionen teilen möchte, der kann dies unter distroshare.com tun.

distroshare

Altes Eisen

Es gibt noch weitere Image Tools für Linux Systeme. Diese sind teilweise kommerziell oder wurden seitens der Entwickler auf Eis gelegt. Somit besteht nicht immer eine Garantie, dass diese Programme auf aktuellen Systemen funktionieren. Vorenthalten möchte ich sie euch dennoch nicht.

SystemImager

Ein inzwischen kommerzielles Programm ist der System Imager. Das Tool erstellt wie seine Kollegen ein komplettes Abbild des Systems. 
Es handelt sich dabei um einen kommerziellen Fork von Remastersys.

ReLinux

ReLinux ist bei Version 0.4 stehen geblieben,  Laut Entwickler sollte es in Python umgeschrieben werden. Die Debian Pakete für die letzte Version sind immerhin noch zu haben. Eine Python Version konnte ich nicht ausfindig machen.

relinux

Ubuntu Builder

Der Ubuntu Builder bietet eine weitere Möglichkeit individuelle Ubuntu Live CDs zu erstellen. 
Leider ist das PPA auch hier nicht mehr auf dem aktuellsten Stand und bietet offiziell nur eine Unterstützung für Ubuntu 12.04/12.10. Probiert selbst aus, ob der Builder noch auf Ubuntu 14.04/15.04 lauffähig ist. Laut meinen Recherchen wurde dieses Projekt ebenfalls eingestellt.

sudo add-apt-repository ppa:f-muriana/ubuntu-builder
sudo apt-get update
sudo apt-get install ubuntu-builder

Fazit

Wie unschwer zu erkennen ist, sind nur zwei Image Tools für eine eigene Live CD relevant. Systemback und Distro Ubuntu Imager.

Ersteres hat Dank seiner Oberfläche für Desktop Nutzer sicherlich den größeren Vorteil. Systemback wurde auf einem Ubuntu 15.04 Desktop System in Verbindung mit dem Image Creator und einem USB Stick getestet und hat ohne Probleme funktioniert. es bekommt smoit eine klare Empfehlung.

Das erwähnte Image Script bietet sich für Serverinstallationen an. Testen konnte ich dies allerdings noch nicht,. Ich denke jedoch, dass die Erstellung einer Systemkopie ebenso einfach von der Hand geht, wie mit einer GUI Variante.

SSLyze - SSL Server Einstellungen per Kommandozeile überprüfen

Die richtigen SSL/TLS Einstellungen für Server zu finden ist nicht immer leicht. Eine etablierte Prüfvariante wird von SSL Labs gestellt. Auf deren Webseite können Server auf Herz und Nieren geprüft werden und bekommen im Optimalfall ein A+ Rating, wenn Techniken wie beispielsweise HTTP Strict Transport Security aktiv sind.

Seit kurzen stellt Qualys mit ssllabs-scan ein Tool auf Github zur Verfügung, welches einen Server Test via Kommandozeile erlaubt. Das Tool basiert auf der vorhandenen Technik und greift somit auch immer auf die Qualys Server zurück.

Als Alternative bietet sich das ebenfalls etablierte Phyton Script SSLyze an. Anders als ssllabs-scan unterstützt der SSL Scanner bereits SMTP, XMPP, LDAP, POP, IMAP, RDP und FTP und steht auch für Windows Nutzer zur Verfügung (Download).

SSLyze unter Ubuntu Server 14.04 verwenden

Installation

wget https://github.com/nabla-c0d3/sslyze/releases/download/release-0.10/sslyze-0_10-linux64.zip
unzip sslyze-*
cd sslyze/

Alle Funktionen anzeigen

./sslyze.py --help

Usage: sslyze.py [options] target1.com target2.com:443 etc...

Normaler Scan

Prüfung auf die Protokolle SSLv2.0, SSLv3.0, TLS1.0/1.1/1.2 Heartbleed, CipherSuites und andere Einstellungen.

Die reguläre Methode fast quasi eine Befehlskette zusammen "--sslv2 --sslv3 --tlsv1 --reneg --resum --certinfo=basic --hide_rejected_ciphers --http_get"

./sslyze.py --regular url.de:443

REGISTERING AVAILABLE PLUGINS
 -----------------------------
  PluginSessionRenegotiation
  PluginCompression
  PluginSessionResumption
  PluginHSTS
  PluginOpenSSLCipherSuites
  PluginChromeSha1Deprecation
  PluginCertInfo
  PluginHeartbleed

 CHECKING HOST(S) AVAILABILITY
 -----------------------------

   url.de:443                        => 127.0.0.1:443

 SCAN RESULTS FOR url.DE:443 - 127.0.0.1:443
 ---------------------------------------------------

  Deflate Compression:
      OK - Compression disabled

  Session Renegotiation:
      Client-initiated Renegotiations:   OK - Rejected
      Secure Renegotiation:              OK - Supported

  OpenSSL Heartbleed:
      OK - Not vulnerable to Heartbleed

  Session Resumption:
      With Session IDs:                  OK - Supported (5 successful, 0 failed, 0 errors, 5 total attempts).
      With TLS Session Tickets:          OK - Supported

  Certificate - Content:
      SHA1 Fingerprint:                  xxxxxxxxxxxxxxxx
      Common Name:                       url.com
      Issuer:                            url Internet xxxxxxxxx G2
      Serial Number:                     xxxxxxxxxxxxx
      Not Before:                        
      Not After:                         
      Signature Algorithm:               sha1WithRSAEncryption
      Key Size:                          2048 bit
      Exponent:                          xxxxxx (0x10001)
      X509v3 Subject Alternative Name:
 * Certificate - Trust:
      Hostname Validation:               FAILED - Certificate does NOT match url.de
      "Mozilla NSS - 08/2014" CA Store:  OK - Certificate is trusted
      "Microsoft - 08/2014" CA Store:    OK - Certificate is trusted
      "Apple - OS X 10.9.4" CA Store:    OK - Certificate is trusted
      "Java 6 - Update 65" CA Store:     OK - Certificate is trusted
      Certificate Chain Received:        ['url.com', ']

  Certificate - OCSP Stapling:
      NOT SUPPORTED - Server did not send back an OCSP response.

  SSLV2 Cipher Suites:
      Server rejected all cipher suites.

...........

Mit dem Zusatz "--hide_rejected_ciphers" lassen sich abgelehnte CipherSuites ausblenden, was die Übersicht erhöht.

Scan auf SHA-1

Eine ebenso praktische Scanvariante ist der Test auf SHA-1. Die Hasfunktion SHA-1 wird beispielsweise von Google Chrome inzwischen als unsicher gemeldet.

--chrome_sha1 url.de:443

 REGISTERING AVAILABLE PLUGINS
 -----------------------------

  PluginSessionRenegotiation
  PluginCompression
  PluginSessionResumption
  PluginHSTS
  PluginOpenSSLCipherSuites
  PluginChromeSha1Deprecation
  PluginCertInfo
  PluginHeartbleed

 CHECKING HOST(S) AVAILABILITY
 -----------------------------

  url.de:443                        => xxxxxxxxx:443

 SCAN RESULTS FOR url.DE:443 - xxxxxxxx:443
 ------------------------------------------------

  Google Chrome SHA-1 Deprecation Status:
      OK - Certificate chain does not contain any SHA-1 certificate.

Prüfung auf  HTTP Strict Transport Security HSTS Unterstützung

Auch das bereits oben erwähnte HSTS lässt sich überprüfen.

./sslyze.py --hsts url.de:443

Test auf StartTLS für SMTP oder XMPP Server

Gleiches gilt für XMPP oder SMTP Server.

./sslyze.py --starttls=smtp url

./sslyze.py --starttls=xmpp url

Zu den genannten Befehlen gibt es noch zig weitere Möglichkeiten SSL Server auf Konfiguration zu testen. Hier sei für alle Funktionen auf die Hilfe verwiesen, welche alle Befehle auflistet und erklärt. (Die Scanausgaben wurden zugunsten der Übersicht gekürzt).

Fazit

Anders als SSL Lab zeigt SSLyze kein Ranking und macht keine Überprüfung auf Browserunterstützung, dafür werden mehr Protokolle unterstützt. Je nach Einsatzgebiet werden wohl beide Tools benötigt. Auf einem Server ohne Browser und Co bietet sich SSLyze natürlich an.

Das Tool ist auf gängigen Linux Distributionen wie Kali Linux, die für Pentesting und andere Sicherheitschecks verwendet werden, mit an Bord.

Eine Übersicht, auf welche Wege SSL/TLS Cipher Suites gestetet werden können, bietet Oswap.

Linux Script - Selbstsigniertes SSL Zertifikat mit SHA256 erstellen und ausgeben

Anfang des Jahres hatte ich euch ein Skript bereitgestellt, welches selbst signierte Zertifikate generiert (siehe Artikel).

Nicht erst seit gestern ist es jedoch sinnvoll auf SHA2 umzustellen. Denn das alte SHA1 gilt seit einiger Zeit als unsicher. 

Übersicht SHA Funktionen

uebersicht_sha

Für euch heißt dies in Zukunft bei der Zertifikatsgenerierung auf SHA2 zu achten.

Selbstsigniertes SSL Zertifikat mit SHA256 erstellen

Im Prinzip muss der alte Befehl nur um einen weiteren Schlüssel "SHA256" oder "SHA512" ergänzt werden.

Unten seht ihr den Befehl, der eine privaten Serverschlüssel mit Zertifikatsanfrage erstellt und im gleichen Zug selbst signiert.

sudo openssl req -x509 -nodes -sha256 -days 1825 -newkey rsa:4096 -keyout server_256.key -out server_256.crt

Generating a 4096 bit RSA private key

...........................++

......................................................................++

writing new private key to 'server_256.key'

-----

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:DE

State or Province Name (full name) [Some-State]:NRW

Locality Name (eg, city) []:ITrig

Organization Name (eg, company) [Internet Widgits Pty Ltd]:ITrig

Organizational Unit Name (eg, section) []:Itrig

Common Name (eg, YOUR name) []:itrig.de

Email Address []:

Zertifikat auf SHA2 überprüfen

Natürlich lassen sich vorhandene oder soeben erzeugte Schlüssel auch auf ihren Inhalt überprüfen. In diesem Fall interessiert uns der SHA Wert.

sudo openssl x509 -noout -text -in server_256.crt

Certificate:

    Data:

        Version: 3 (0x2)

        Serial Number:

            fc:f8:7d:d9:cd:f7:e7:b5

        Signature Algorithm: sha256WithRSAEncryption

        Issuer: C=DE, ST=NRW, L=ITrig, O=ITrig, OU=Itrig, CN=itrig.de

        Validity

            Not Before: Dec 18 13:20:41 2014 GMT

border: none; padding: 0px;">

            Not After : Dec 17 13:20:41 2019 GMT

Damit ihr euch die Eingaben alle sparen könnt, hab ich das Script auf SHA256 angepasst, zusätzlich werden alle Daten am Ende zur Kontrolle ausgegeben.

SHA 256 Skript