Skip to content

PostgreSQL 9.6, pgAdmin 4 und Barman 2.0 - Die Neuerungen und Installation unter Ubuntu 14.04 und 16.04

PostgreSQL 9.6, pgAdmin 4 und Barman 2.0 sind pünktlich zum neuen Quartal fertig geworden, quasi ein Rundumschlag, doch eins nach dem anderen.

PostgreSQL 9.6 - jetzt auch parallel

Beim neuen Datenbank Server 9.6 verstecken sich die Neuerungen wie so oft im Detail.
So wurden parallele Queries eingeführt. Diese sind in den Standardeinstellungen noch nicht aktiv und müssen erst aktiviert werden. Ich werde das Thema später kurz anreisen.
Das bekannte autovacuum wurde verbessert und die Unterstützung für  multi-CPU-socket Server optimiert. Die Volltextsuche hat Verbesserungen erhalten und arbeitet effizienter.
Eine vollständige List der Neuerungen kann den Release Notes entnommen werden.

postgres

Installation PostgreSQL 9.6 unter Ubuntu 14.04 oder 16.04

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.6

Kleine Anmerkung, das Paket postgresql-contrib-9.6 wird durch diesen Befehl mit installiert und muss nicht extra installiert werden.

Parallele Queries aktivieren

Wie bereits in der Einführung erwähnt, beherrscht PostgreSQL 9.6 parallele Queries. Hier ein kurzer Einblick in dieses Thema

Aktuelle Einstellungen anzeigen

sudo cat /etc/postgresql/9.6/main/postgresql.conf |grep max_parallel_workers_per_gather

    #max_parallel_workers_per_gather = 0    # taken from max_worker_processes

Anzahl der Workers auf 2 erhöhen

Wie oben zu sehen ist, ist die Einstellung nicht aktiv, mit dem folgenden Befehl soll das geändert werden.

sed -i 's/#max_parallel_workers_per_gather = 0/max_parallel_workers_per_gather = 2/g' /etc/postgresql/9.6/main/postgresql.conf

Weitere (wichtige) Werte in Zusammenhang mit parallelen Queries

Neben der Anzahl der Worker gibt es noch weitere Einstellungen, hier eine Auflistung der verfügbaren Optionen.

  • min_parallel_relation_size = 8MB: Sets the minimum size of relations to be considered for parallel scan
  • parallel_setup_cost = 1000.0: Sets the planner's estimate of the cost of launching parallel worker processes
  • parallel_tuple_cost = 0.1: Sets the planner's estimate of the cost of transferring one tuple from a parallel worker process to another process
  • force_parallel_mode = off: Allows the use of parallel queries for testing purposes even in cases where no performance benefit is expected

Kleiner Hinweis, die Konfiguration lässt sich natürlich auch direkt in der Postgres Konsole anpassen. Hierzu gab es auch schon einen Artikel (PostreSQL und ALTER SYSTEM)

sudo su postgres
psql
postgres=# SET max_parallel_workers_per_gather TO 8;

Test der parallelen Queries

Das Verhalten der Workers kann mit einer einfachen Testdatenbank überprüft werden

sudo su postgres
psql

postgres=# CREATE TABLE paralleltest (i int);
CREATE TABLE
postgres=# INSERT INTO paralleltest SELECT generate_series(1,1000000);
postgres=# ANALYZE paralleltest;
postgres=# EXPLAIN ANALYZE SELECT * FROM paralleltest WHERE i=1;

----------------------------------------------------------------------------------------------------------------------------
 Gather  (cost=1000.00..10633.43 rows=1 width=4) (actual time=22.542..413.352 rows=1 loops=1)
   Workers Planned: 2
   Workers Launched: 2
   ->  Parallel Seq Scan on paralleltest  (cost=0.00..9633.33 rows=1 width=4) (actual time=213.560..343.765 rows=0 loops=3)
         Filter: (i = 1)
         Rows Removed by Filter: 333333
 Planning time: 9.629 ms
 Execution time: 416.070 ms
(8 rows)

Weitere Details und Analysen können mit der Verwendung verschiedener Einstellungen erreicht werden. Infos dazu hier.

Fazit

Abschließend kann gesagt werden, dass mit parallelen Queries ein Geschwindigkeitsvorteil gegeben ist, bei anderen Neurungen fehlt mit der praktische Test um Aussagen treffen zu können. Ein Update auf die neueste Version steht somit außer Frage.



pgAdmin 4 - alles neu macht der Herbst

Ich hatte ja bereits über die pgAdmin 4 Beta berichtet und möchte darum nicht mehr ausführlich auf das PostgreSQL Verwaltungs-Tool eingehen, sondern auf den vorhandnen pgAdmin Artikel verweisen.
Weitere Neurungen sind in pgAdmin seit der Beta nicht eingeflossen, Einstellungen und Funktionen lassen sich der offiziellen Dokumentation entnehmen.

pgadmin4

Installation pgAdmin4

Da zum jetzigen Zeitpunkt noch kein Debian Paket zur Verfügung steht, erfolgt die Installation via PIP

sudo apt-get install python-pip
sudo apt-get install libpq-dev
sudo apt-get install python-dev
wget https://ftp.postgresql.org/pub/pgadmin3/pgadmin4/v1.0/pip/pgadmin4-1.0-py2-none-any.whl
pip install pgadmin4-1.0-py2-none-any.whl

Alternativ kann pgAdmin4 auch im Bundle mit PostgreSQL 9.6 heruntergeladen werden.



Barman 2.0 Disaster Recovery für PostgreSQL

Zeitgleich mit PostgreSQL wurde die Disaster Recovery Barman veröffentlicht. Das Administrationswerkzeug ermöglicht die Sicherung und Wiederherstellung mehrerer Datenbank Server.

Neu an der Version 2.0 ist die Unterstützung für einen reinen Streaming-Modus.
Möglich wurde dies durch die Integration bzw. Unterstützung der pg_basebackup und pg_receivexlog Funktion.
Diese Neuerungen ermöglichen nun eine Datenbank Sicherung von Docker-Containern.

Die Installation läuft einfach ab, für eine korrekte Konfiguration sind ein paar mehr Schritte notwendig.

barman

Installation

Installation unter Ubuntu 14.04

sudo apt-get install python-argcomplete python-argh python-dateutil python-psycopg2
wget http://downloads.sourceforge.net/project/pgbarman/2.0/barman_2.0-1.wheezy%2B1_all.deb
sudo dpkg -i barman_2.0-1.wheezy%2B1_all.deb

Installation unter Ubuntu 16.04

sudo apt-get install python-argcomplete python-argh python-dateutil python-psycopg2
wget http://downloads.sourceforge.net/project/pgbarman/2.0/barman_2.0-1.xenial%2B1_all.deb
sudo dpkg -i barman_2.0-1.xenial%2B1_all.deb

Konfiguration Barman 2.0

Die Hauptkonfiguration erfolgt über die Dateien barman.conf und postgresql.conf.
Das die Einrichtung etwas komplexer ist und auf den gewünschten Sicherungstyp zugeschnitten werden muss, verweise ich schon hier auf die ausführliche Dokumentation mit Schritt für Schritt Anleitung.

barman

Beispielkonfiguration

Nutzer einrichten

sudo su postgres
createuser -W --replication streaming_barman

createuser -W --replication barman

Das vergebene Passwort und der Nutzernamen müssen nun in einem Connection File beim Barman Benutzer hinterlegt werden

sudo echo "dbserverip:5432:postgres:streaming_barman:passwort" > /home/streaming_barman/.pgpass
sudo echo "dbserverip:5432:postgres:barman:passwort" > /home/barman/.pgpass

Berechtigungen müssen ebenfalls gesetzt werden

sudo chmod 600 /home/barman/.pgpass && sudo chmod 600 /home/streaming_barman/.pgpass


Konfiguration PostgreSQL für Barmann

sed -i 's/#archive_mode = off/archive_mode = on/g' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#wal_level = minimal/wal_level = replica/g' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#archive_mode = off/archive_mode = on/g' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#wal_level = minimal/wal_level = replica/g' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#max_wal_senders = 0/max_wal_senders = 2/g' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#max_replication_slots = 0/max_replication_slots = 2/g' /etc/postgresql/9.6/main/postgresql.conf

Einstellung in der barman.conf

[streaming]
description =  "DB Sicherung Streaming)"
conninfo = host=dbserverip user=barman dbname=postgres
streaming_conninfo = host=dbserverip user=streaming_barman
backup_method = postgres
streaming_archiver = on
slot_name = barman
retention_policy_mode = auto
retention_policy = RECOVERY WINDOW OF 7 days
wal_retention_policy = main

Test der Verbindung

sudo su barman
$ psql -U streaming_barman -h dbserverip -c "IDENTIFY_SYSTEM" replication=1

Password for user streaming_barman:
      systemid       | timeline |  xlogpos   | dbname
---------------------+----------+------------+--------
 6336160320851389899 |        1 | 0/370001B0 |
(1 row)

Hier ein Beispiel für die Konfiguration von SSH

sudo su barman
ssh-keygen -t rsa

sudo su postgres
ssh-keygen -t rsa

Test der Verbindung

ssh barman@dbserverip -C true
ssh postgres@dbserverip -C true

Wal Slot anlegen

sudo su barman
barman receive-wal --create-slot streaming

Das Archive Kommando muss noch in der postgresql.conf angepasst werden

sudo nano /etc/postgresql/9.6/main/postgresql.conf
archive_command = 'rsync -a %p barman@dbserverip:/var/lib/barman/pg/incoming/%f'

Test der Konfiguration

sudo su barman
barman switch-xlog --force pg

Ein Barman Funktionstest kann mit barman check durchgeführt werden

barman check streaming

Server streaming:
        WAL archive: FAILED (please make sure WAL shipping is setup)
        PostgreSQL: OK
        superuser: OK
        PostgreSQL streaming: OK
        wal_level: OK
        replication slot: OK
        directories: OK
        retention policy settings: OK
        backup maximum age: OK (no last_backup_maximum_age provided)
        compression settings: OK
        failed backups: OK (there are 0 failed backups)
        minimum redundancy requirements: OK (have 0 backups, expected at least 0)
        pg_basebackup: OK
        pg_basebackup compatible: OK
        pg_basebackup supports tablespaces mapping: OK
        pg_receivexlog: OK
        pg_receivexlog compatible: OK
        receive-wal running: OK
        archiver errors: OK
       

Manuell starten lässt sich ein Backup mit folgendem Befehl

sudo su barman
barman backup streaming

Starting backup using postgres method for server streaming in /var/lib/barman/streaming/base/20161002T214709
Backup start at xlog location: 0/39000060 (000000010000000000000039, 00000060)
Copying files.

Fazit

Trotz des etwas höherem Aufwands bei der Einrichtung des Sicherungstools barman, macht sich dieses spätestens beim nächsten Serverausfall bezahlt. Mit der Unterstützung für Docker Container arbeitet das Sicherungsprogramm am Puls der Zeit und hat somit sein dasein voll und ganz verdient.

Viel Erfolg

SANS Security Poster - Infografiken zu Pen Testing, SWAT und Windows Forensik

Die Sommerpause neigt sich langsam den Ende zu, darum hier ein kleiner Hinweis auf die PDF Poster vom SANS Institut (SysAdmin, Networking und Security).

Die Genossenschaft hat mit SIFT (SANS Investigative Forensic Toolkit) nicht nur eine eigene Security Distribution im Programm, sondern veröffentlich auch regelmäßig Übersichten in Form von PDF Postern. Hier werden verschiedene Themen Rund um IT Sicherheit behandelt.

Das Poster Securing Web Application Technologies (SWAT) listet beispielsweise die wichtigsten Schritte zum Absichern einer Web Anwendung auf.

swat

Windows Forensiker werden mit der Infografik Windows Forensic Analysis an die richtige Vorgehensweise zum Aufspüren von Malware und dem Sichern von Beweisen herangeführt.

Forensik

Ebenfalls interessant ist der Überblick verschiedener Web Frameworks, Techniken und Tools, welche sich ganz der Sicherheit von Anwendungen widmen und die Möglichkeit bieten das eigene Wissen zu verbessern.

pen-test-web-apps

In der schnelllebigen IT Zeit sind sicherlich nicht mehr alle Informationen up2date, dennoch bieten sich einige Poster für die Pinnwand im Büro an, da sie einen guten Überblick bieten.

Die komplette Auswahl findet ihr auf der SANS Seite.

SANS

 

Ubuntu - OpenVAS 7 installieren, konfigurieren und Netzwerke auf Sicherheitslücken testen

Open Vulnerability Assessment System (OpenVAS) ist das OpenSource Tool, wenn es um die Sicherheit im Netzwerk geht. Die Toolsammlung welche aus Nessus hervorgegangen ist, bietet alles was für Schwachstellen-Scanning und Schwachstellen-Management benötigt wird.

OpenVAS ist vor einiger Zeit in Version 7 erschienen, ich möchte heute zeigen, wie die aktuellen Pakete Scanner, Manager, CLI und GUI (Greenbone) auf einem Ubuntu System (14.04 LTS) installiert werden.

OpenVAS lässt sich alternativ auch über die Paketverwaltung (apt-get) installieren.

openvas

OpenVAS 7 auf einem Ubuntu System installieren

1. Benötigte Pakete installieren

sudo apt-get install nsis alien texlive-latex-extra libqt4-dev g++ libmicrohttpd-dev\
libxml2-dev libxslt1-dev libsqlite3-dev doxygen sqlfairy xmltoman sqlite3 \
gcc pkg-config libssh-dev libgnutls-dev libglib2.0-devlibpcap-dev namp \
libgpgme11-dev uuid-dev bison libksba-dev zlib1g-dev libldap2-dev xsltprocv \
libldap2-dev autoconf cmake

2. Aktuelle OpenVAS Pakete herunterladen

wget http://wald.intevation.org/frs/download.php/1722/openvas-libraries-7.0.6.tar.gz
wget http://wald.intevation.org/frs/download.php/1857/openvas-scanner-4.0.5.tar.gz
wget http://wald.intevation.org/frs/download.php/1849/openvas-manager-5.0.7.tar.gz
wget http://wald.intevation.org/frs/download.php/1799/greenbone-security-assistant-5.0.4.tar.gz
wget http://wald.intevation.org/frs/download.php/1803/openvas-cli-1.3.1.tar.gz

3. OpenVAS 7 Pakete entpacken

sudo tar zxvf openvas-*
sudo tar zxvf greenbone*

4. OpenVAS Libraries installieren

Es ist zwingend nötig die Libraries als erstes zu installieren, ansonsten erhaltet ihr Fehlermeldungen, die eine weitere Installation verhindern.

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

5. OpenVAS Manager installieren

Der Manager steuert und verwaltet die einzelnen Scans. Außerdem ist er für die Benutzerverwaltung und die Datenbank zuständig.

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

6. OpenVAS Scanner installieren

Der Scanner bildet die zentrale Komponente des Systems, er ist für die Network Vulnerabilty Tests (NVTs) zuständig.

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

7. OpenVAS CLI installieren

Für diejenigen, die OpenVAS nicht über die Oberfläche bedienen möchten, bietet das Kommandozeilen Tool omp die richtige Lösung für Batch Prozesse.

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

8. Greenbone Security Assistant (GSA) Oberfläche installieren

Der GSA ist einer kleiner Webserver der über HTTP oder HTTPS das Konfigurieren und Ausführen von Scanvorgängen erlaubt. Die Oberfläche ist für den OpenVAS Einsteiger sicherlich die bessere Lösung, um sich mit der Toolsammlung vertraut zu machen.

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

9. WMI Unterstützung installieren

Damit der OpenVAS Scanner Windows Management Instrumentation (WMI) beherrscht, also der Netzwerkzugriff auf Windows Komponenten wie Software oder Protokolle, muss diese optionale Komponente gesondert installiert werden. Bevor der WMI Client installiert werden kann, muss er auf die aktuelle Version gepatcht werden.

wget http://www.openvas.org/download/wmi/wmi-1.3.14.tar.bz2
wget http://www.openvas.org/download/wmi/openvas-wmi-1.3.14.patch
wget http://www.openvas.org/download/wmi/openvas-wmi-1.3.14.patch2
wget http://www.openvas.org/download/wmi/openvas-wmi-1.3.14.patch3
wget http://www.openvas.org/download/wmi/openvas-wmi-1.3.14.patch4


sudo tar jxf wmi-1.3.14.tar.bz2
sudo cp openvas-wmi-1.3.14.patch wmi-1.3.14
sudo cp openvas-wmi-1.3.14.patch2 wmi-1.3.14
sudo cp openvas-wmi-1.3.14.patch3 wmi-1.3.14
sudo cp openvas-wmi-1.3.14.patch4 wmi-1.3.1
cd wmi-1.3.14

patch -p1 < openvas-wmi-1.3.14.patch
patch -p1 < openvas-wmi-1.3.14.patch2
patch -p1 < openvas-wmi-1.3.14.patch3
patch -p1 < openvas-wmi-1.3.14.patch4

cd Samba/source
sudo ./autogen.sh
sudo ./configure
sudo make proto all "CPP=gcc -E -ffreestanding"
sudo make libraries "CPP=gcc -E -ffreestanding"

sudo bash install-libwmiclient.sh
sudo bash install-libwincmd.sh
cd

Sollten hier Probleme auftreten und im schlechtesten Fall die Installation fehlschlagen, hat dies keinen Effekt auf die grundlegende Funktion von OpenVAS.

Die Installation aller Pakete ist nun beendet und es kann in den nächsten Schritten mit der ersten Konfiguration fortgefahren werden.


OpenVAS 7 konfigurieren

Bevor das nun erfolgreich Installierte OpenVAS verwendet werden kann, sind noch ein paar wenige Konfigurationsschritte notwendig.

10. SSL Zertifikat für OpenVAS erstellen

sudo openvas-mkcert

-------------------------------------------------------------------------------
            Creation of the OpenVAS SSL Certificate
-------------------------------------------------------------------------------

This script will now ask you the relevant information to create the SSL certificate of OpenVAS.
Note that this information will NOT be sent to anybody (everything stays local), but anyone with the ability to connect to your OpenVAS daemon will be able to retrieve this information.
CA certificate life time in days [1460]:
Server certificate life time in days [365]:
Your country (two letter code) [DE]:
Your state or province name [none]:
Your location (e.g. town) [Berlin]:
Your organization [OpenVAS Users United]:
Congratulations. Your server certificate was properly created.
The following files were created:
. Certification authority:
   Certificate = /usr/local/var/lib/openvas/CA/cacert.pem
   Private key = /usr/local/var/lib/openvas/private/CA/cakey.pem
. OpenVAS Server :
    Certificate = /usr/local/var/lib/openvas/CA/servercert.pem
    Private key = /usr/local/var/lib/openvas/private/CA/serverkey.pem
Press [ENTER] to exit

11. Ein Client Zertifikat erstellen

openvas-mkcert-client -n -i

-n          Run non-interactively, create certificates and register with the OpenVAS scanner
-i           Install client certificates for use with OpenVAS manager

Generating RSA private key, 1024 bit long modulus
............++++++
...........++++++
e is 65537 (0x10001)
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) [DE]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (eg, your name or your server's hostname) []:Email Address []:Using configuration from /tmp/openvas-mkcert-client.4751/stdC.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'DE'
localityName          :PRINTABLE:'Berlin'
commonName            :PRINTABLE:'om'
Certificate is to be certified until Jan 18 17:57:20 2016 GMT (365 days)

12. Datenbank mit allen Network Vulnerabilty Tests aktualisieren

(Stand April 2014: 35.000 NVTs)

sudo openvas-nvt-sync

13. Die System Libraries aktualisieren

sudo ldconfig

14. Die Zertifikat Datenbank aktualisieren

sudo openvas-certdata-sync

15. Update der Security Content Automation Protokoll Daten (SCAP)

Bei diesem Update ist etwas Geduld gefragt, denn der Vorgang dauert eine ganze Weile.

sudo openvas-scapdata-sync

Die erste Konfiguration des Systems ist nun beendet, im letzten Teil wird die Anwendung gestartet.


OpenVAS starten

16. OpenVAS Scanner starten

sudo openvassd

Kontrolle, ob der Scanner gestartet ist.

netstat -lnp |grep 9391

tcp        0      0 0.0.0.0:9391            0.0.0.0:*               LISTEN

17. OpenVAS Manager Datenbank neu aufbauen

Hier ist wieder etwas Geduld gefragt.

sudo openvasmd --rebuild

18. Einen OpenVAS Benutzer anlegen

Damit ein Login möglich ist, muss noch ein Administrator Benutzer angelegt werden.

sudo openvasmd ––create-user=admin ––role=Admin
User created with password ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxx’

19. OpenVAS Manager starten

Ist der Vorgang beendet kann der Manager gestartet werden.

sudo openvasmd

Kontrolle ob der Manager gestartet ist.

netstat -lnp |grep openvasmd
    tcp        0      0 0.0.0.0:9390            0.0.0.0:*               LISTEN      3193/openvasmd 
    tcp        0      0 0.0.0.0:9391            0.0.0.0:*               LISTEN      2704/openvassd

20. GSA Oberfläche starten

Im letzten Schritt wird die Oberfläche für OpenVAS aktiviert.

sudo gsad

Auch hier die Probe.

sudo netstat -lnp | grep gsad
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      3309/gsad

Der Start der Anwendung ist nun abgeschlossen, die Oberfläche sollte unter https://localhost/omp erreichbar sein. Der Login erfolgt mit dem zuvor angelegten Nutzer.

gsa


Troubleshooting - Möglicher Fehler - Probleme - Lösungen


Eine Installation ist selten fehlerfrei, darum hier ein paar Tipps und Tricks für mögliche Probleme.

Eine gute Möglichkeit ist es die Installation zu überprüfen. Hierfür steht ein fertiges Script zur Verfügung.

OpenVAS Installation prüfen

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

openvas-check-setup 2.2.6
  Test completeness and readiness of OpenVAS-7
  (add '--v4', '--v5', '--v6' or '--v8'
   if you want to check for another OpenVAS version)

  Please report us any non-detected problems and
  help us to improve this check routine:
  http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss

  Send us the log-file (/tmp/openvas-check-setup.log) to help analyze the problem.

  Use the parameter --server to skip checks for client tools
  like GSD and OpenVAS-CLI.

Step 1: Checking OpenVAS Scanner ...
        OK: OpenVAS Scanner is present in version 4.0.5.
        OK: OpenVAS Scanner CA Certificate is present as /usr/local/var/lib/openvas/CA/cacert.pem.
        OK: NVT collection in /usr/local/var/lib/openvas/plugins contains 37577 NVTs.
        WARNING: Signature checking of NVTs is not enabled in OpenVAS Scanner.
        SUGGEST: Enable signature checking (see http://www.openvas.org/trusted-nvts.html).
        OK: The NVT cache in /usr/local/var/cache/openvas contains 37577 files for 37577 NVTs.
Step 2: Checking OpenVAS Manager ...
        OK: OpenVAS Manager is present in version 5.0.7.
        OK: OpenVAS Manager client certificate is present as /usr/local/var/lib/openvas/CA/clientcert.pem.
        OK: OpenVAS Manager database found in /usr/local/var/lib/openvas/mgr/tasks.db.
        OK: Access rights for the OpenVAS Manager database are correct.
        OK: sqlite3 found, extended checks of the OpenVAS Manager installation enabled.
        OK: OpenVAS Manager database is at revision 123.
        OK: OpenVAS Manager expects database at revision 123.
        OK: Database schema is up to date.
        OK: OpenVAS Manager database contains information about 37577 NVTs.
        OK: OpenVAS SCAP database found in /usr/local/var/lib/openvas/scap-data/scap.db.
        OK: OpenVAS CERT database found in /usr/local/var/lib/openvas/cert-data/cert.db.
        OK: xsltproc found.
Step 3: Checking user configuration ...
        WARNING: Your password policy is empty.
        SUGGEST: Edit the /usr/local/etc/openvas/pwpolicy.conf file to set a password policy.
Step 4: Checking Greenbone Security Assistant (GSA) ...
        OK: Greenbone Security Assistant is present in version 5.0.4.
Step 5: Checking OpenVAS CLI ...
        OK: OpenVAS CLI version 1.3.1.
Step 6: Checking Greenbone Security Desktop (GSD) ...
        SKIP: Skipping check for Greenbone Security Desktop.
Step 7: Checking if OpenVAS services are up and running ...
        OK: netstat found, extended checks of the OpenVAS services enabled.
        OK: OpenVAS Scanner is running and listening on all interfaces.
        OK: OpenVAS Scanner is listening on port 9391, which is the default port.
        OK: OpenVAS Manager is running and listening on all interfaces.
        OK: OpenVAS Manager is listening on port 9390, which is the default port.
        OK: Greenbone Security Assistant is running and listening on all interfaces.
        OK: Greenbone Security Assistant is listening on port 443, which is the default port.
Step 8: Checking nmap installation ...
./openvas-check-setup: 1: ./openvas-check-setup: nmap: not found
        WARNING: Your version of nmap is not fully supported:
        SUGGEST: You should install nmap 5.51.
Step 9: Checking presence of optional tools ...
        OK: pdflatex found.
        OK: PDF generation successful. The PDF report format is likely to work.
        OK: ssh-keygen found, LSC credential generation for GNU/Linux targets is likely to work.
        OK: rpm found, LSC credential package generation for RPM based targets is likely to work.
        OK: alien found, LSC credential package generation for DEB based targets is likely to work.
        OK: nsis found, LSC credential package generation for Microsoft Windows targets is likely to work.


It seems like your OpenVAS-7 installation is OK.

Weitere Probleme die bei der Installation auftreten können

Problem

Package libopenvas was not found in the pkg-config search path.
Perhaps you should add the directory containing `libopenvas.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libopenvas' found

Lösung

Die Libraries sind nicht richtig oder noch gar nicht installiert. Siehe Punkt 4.


Problem

main:WARNING: sql_x_internal: sqlite3_prepare failed: no such table: main.meta

Lösung

Der Rebuild Prozess war fehlerhaft oder ist gar nicht gelaufen "sudo openvasmd --rebuild".


Weitere Probleme lassen sich jederzeit über das Kontrollieren der Log Dateien einsehen und bestimmt auch lösen.

Log Pfad

/usr/local/var/log/openvas


Abschließend kann ich nur viel Erfolg bei der Installation und der drauf folgenden Schwachstellensuche wünschen.

Quellen

hackertarget.com
openvas.org
jeroenvda.eu
devconsole.info

LAMP Server mit SSL - Linux, Apache, MySQL, PHP unter Ubuntu 14.04 in 10min installieren

Im Prinzip hatte ich bereits ein fast komplette Anleitung für einen LAMP Server unter Ubuntu verfasst. Zu finden ist sie im Artikel "Wordpress Installation in 5 Minuten".

Dennoch möchte ich heute eine etwas ausführlichere Anleitung niederschreiben, die als Grundlage für weitere Installationen dienen kann.

1. Apache Server installieren

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install apache2

Der Server startet direkt nach der Installation und ist unter http://localhost zu erreichen.

lamp-apache2-server

Weitere Konfigurationen wie bzw. das Härten sind in anderen Anleitungen zu finden. Siehe beispielsweise den Artikel "Hardening Apache".

Hier geht es nun mit dem MySQL Server weiter.

2. MySQL Server installieren

sudo apt-get install mysql-server

Das verlangte root Passwort vergeben und zwingend merken.

sudo apt-get install libapache2-mod-auth-mysql php5-mysql

lamp-mysql-server

Um die Installation abzurunden und eine erste Härtung vorzunehmen, sollte folgendes Skript ausgeführt werden.

sudo /usr/bin/mysql_secure_installation

Remove anonymous users? [Y/n] y ... Success!

Disallow root login remotely? [Y/n] y ... Success!

Remove test database and access to it? [Y/n] y

- Dropping test database...

- Removing privileges on test database... ... Success!

Reload privilege tables now? [Y/n] y ... Success!

Falls keine Testdatenbank existiert, kann diese auch nicht gelöscht werden, es erscheint die Meldung "Failed Database doesn't exists".

Der MySQL Server ist nun fertig eingerichtet.

Mit dem Befehl "mysql -u root -p" könnt ihr euch auf die SQL Konsole einloggen, um Datenbanken anzulegen.

Sollte eine andere IP als 127.0.0.1 verwendet werden, so muss "sudo nano /etc/mysql/my.cnf" editiert werden:

bind-address = 127.0.0.1

3. PHP5 installieren

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Neben dem bereits weiter oben installierten php5-mysql Paket gibt es weitere Pakete, die installiert werden können, je nach Anforderung.

Eine Liste der bereits installierten Module kann mit Hilfe einer "info.php" abgerufen werden. Hierzu ist noch etwas Konfigurationsaufwand nötig:

sudo nano /var/www/html/info.php

lamp-php-info

Danach kann unter http://localhost/info.php eine Übersicht der Installation abgerufen werden.

Weitere Module lassen sich mit "apt-cache search php5" auflisten und mit "sudo apt-get install modulname" nachinstallieren.

lamp-php5

Abschluss

Die Installation des LAMP Servers ist nun abgeschlossen. Jedoch ist es sinnvoll den Server weiter zu härten.

Es empfiehlt sich ein Umstellung auf HTTPS, sowie das Abschalten unsicherer Protokolle wie SSL 3.0.

Die Umstellung auf HTTPS werde ich noch einmal kurz erläutern.

4. LAMP Server auf HTTPS umstellen

Zunächst muss das SSL Modul installiert werden.

sudo a2enmod ssl

sudo service apache2 restart

Danach sollte ein Zertifikat erzeugt werden. Um die etwas kryptische Zeile zu verstehen, gebe ich eine eine kurze Erklärung zu dem Befehl.

  • Es wird ein selbstsigniertes Zertifikat erzeugt, dieses ist 1 Jahr gültig ("-days 365") und hat einen 4096bit RSA Schlüssel ("-newkey rsa:4096").
  • Die Option "-x509" sorgt für ein selbstsigniertes Zertifikat und keine Anfrage für einen CA (csr).
  • Indem der Wert "-nodes" verwendet wird, fällt die Abfrage nach einer Passphrase für den Schlüssel weg.

sudo mkdir /etc/apache2/crypt

sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/crypt/srv.key -out /etc/apache2/crypt/srv.crt

Bitte darauf achten den richtigen CN zu vergeben.

Nachdem das Zertifikat erstellt wurde, muss dem Apache Server beigebracht werden, auf HTTPS zu lauschen.

Hierzu müssen ein paar Werte angepasst werden.

sudo nano /etc/apache2/sites-available/default-ssl.conf

SSLCertificateFile /etc/apache2/crypt/srv.crt

SSLCertificateKeyFile /etc/apache2/crypt/srv.key

Folgende Werte sollten zusätzlich eingefügt werde, um unsichere Protokolle zu deaktivieren:

SSLProtocol All -SSLv2 -SSLv3

SSLCompression off

Die neue Konfiguration muss abschließend aktiviert werden

sudo a2ensite default-ssl.conf

sudo service apache2 restart

Zur Erklärung: Durch den Befehl “a2ensite” wird ein symbolischer Link im sites-enabled Verzeichnis auf die .conf Datei des virtuellen Hosts im sites-available Verzeichnis gesetzt.

lamp-apache2-server-https

5. Ende

Nun ist der LAMP Server unter einer HTTPS Adresse zu erreichen. Für eine produktive Nutzung müssen natürlich noch weitere Schritte unternommen werden, auf die ich hier nicht weiter eingehe.

Die Grundinstallation ist jedoch geschafft und der Server kann zu Testzwecken verwendet werden.

Vim Adventures, VimGolf oder Vim Interaktiv - Spielend den Umgang mit dem Linux Editor Vim lernen

Regelmäßige Nutzer von Linux Systemen werden Vi bzw. die Weiterentwicklung Vim (Vi IMproved) kennen. Anders als normale Texteditoren wie pico oder nano, bietet Vim verschiedene Betriebsmodi und ist damit beliebig erweiterbar.

Viele Gelegenheitsnutzer schrecken vor der Benutzung des Editors zurück, da die Bedienung für Einsteiger auf den ersten Blick wenig intuitiv erscheint. Dies beginnt meist schon bei der Navigation durchs geöffnete Dokument. 

VIM Adventures

Ich selbst bin kein Vim Crack und freue mich damit um so mehr, auf Vim Adventures gestoßenzu sein  (ich weiß, gibt es wohl schon eine Weile...) . Die Seite hat den Umgang mit dem Editor schlicht und einfach in ein Zelda artiges Spiel verpackt.

VIM-Adventures

Angefangen mit der bereits erwähnten Navigation, werden neue Befehle erlernt und der Umgang mit Vim vermittelt. Leider ist das Spiel nicht ganz umsonst, nach einem kurzen Einstieg mit Level 1, wird für die restlichen 12 Level $25 verlangt. Das Konzept ist wirklich super, aber der Preis weniger erfreulich.

VimGolf 

Für eine komplett kostenlose Herausforderung kann auf VimGolf zurück gegriffen werden. Hier geht es darum so einfach wie möglich einen vorgegebenen Text zu manipulieren. Nach gelöster Aufgabe werden verschiedene Lösungswege aufgezeigt. Quasi learning by doing, jedoch wird hier der Umgang mit Vim bereits vorrausgesetzt.

OpenVim Interaktiv

Eine bessere Möglichkeit sich mit dem Vim-Editor vertraut zu machen, bietet OpenVim mit einem interaktivem Tutorial an. Die Schritt für Schritt Anleitung benötigt lediglich einen Browser, hier wird Vim komplett simuliert. Perfekt.

Vim-tutorial