Skip to content

Webserver HTTP Header auf Sicherheit überprüfen

Der Header zählt zu den interessanteren Informationen eines Webservers, bleibt dem Otto-Normal-Surfer aber meist verborgen.

Über ihn lassen sich nicht nur Informationen über den laufenden Server erfahren, mit Hilfe des Headers können auch zusätzliche Sicherheitsmechanismen aktiviert werden, sogenannte "Security-related HTTP Headers". Sie werden im Feld "Content-Security-Policy" übermittelt.

Diese Funktionen dienen unter anderem dem Schutz vor Cross Site Scripting (XSS), aber auch der erhöhten Sicherheit, wie beispielsweise HTTP Strict Transport Security (HSTS).

Das Open Web Application Security Project listet die wichtigsten davon auf .

securityheaders.io

Die Webseite securityheaders.io überprüft genau diese Sicherheitseinstellungen auf Aktivität. Sie vergibt dabei Bewertungen, je nach Einsatz, von A+ (sehr gut) bis F (sehr schlecht).

Der Aufbau erinnert an den bekannten TLS-Online-Server-Test von SSLLabs, denn sogar das Feld "Hide Results" (Ergebnisse des Scans verstecken) wurde übernommen. Hier darf der Haken gerne gesetzt werden.

Eine weiteres Ergebnis außerhalb des Scorings ist R. Dies bedeutet, dass die untersuchte Webseite weitergeleitet wird.

securityheaders.io-redirect

Fazit

Als Ergänzung zum Online-Test von SSLLabs oder vergleichbaren Tools wie SSLyze bietet securityheaders.io eine zusätzliche Möglichkeit Webserver auf ihre Sicherheitseinstellungen zu überprüfen.

Anleitung - Ubuntu 14.04 LTS Server - Tomcat 7 mit Apache Server in 15 Minuten installieren und konfigurieren

Damit mal wieder etwas Leben in die Bude kommt hier eine kurze Anleitung, wie man innerhalb von 10-15 Minuten einen Tomcat Server in Verbindung mit Apache auf einem Ubuntu Server System (14.04) installiert und konfiguriert.

Zunächst müssen die benötigten Pakete installiert werden. Neben Apache 2 und Tomcat 7 wird zusätzlich Java benötigt.

Für den richtigen Betrieb ist ebenfalls mod-jk von Nöten, diese Modul leitet Anfragen an den Apache mit Hilfe des Protokolls AJP an Tomcat weiter.

Installation

sudo apt-get update

sudo apt-get install apache2

sudo apt-get install tomcat7

sudo apt-get install openjdk-7-jre-headless

sudo apt-get install libapache2-mod-jk

Nachdem alle Pakete installiert sind, müssen einige Dateien konfiguriert werden:

Tomcat Konfiguration

Das Arbeitsverzeichnis und den Worker Prozess für Tomcat festlegen:

nano /etc/apache2/workers.properties

workers.tomcat_home=/var/lib/tomcat7
workers.java_home=/usr/lib/jvm/java-7-openjdk-amd64
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1

Dem Mod-JK Modul mitteilen wo diese Datei zu finden ist und Wo Fehler und Co gelogt werden sollen:

nano /etc/apache2/mods-enabled/jk.conf

JkWorkersFile /etc/apache2/workers.properties

JkLogFile /var/log/apache2/mod_jk.log

Dem Tomcat Server mitteilen, dass der AJP Prozess verwendet werden soll, dazu muss folgender String aktiviert werden:

nano /etc/tomcat7/server.xml

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Apache Server konfigurieren

Zunächst erfolgt die Konfiguration für die zukünftige Seite an sich. Natürlich mit SSL. Hierzu werden bereits Schlüsselpfade hinterlegt, welche im nächsten Schritt noch erstellt werden müssen. Wichtig ist das Einbinden von JKMount, damit Tomcat und Apache zusammen arbeiten. FYI: Es wird der Bereich innerhalb von "VirtualHost _default_:443" angepasst.

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

ServerAdmin
webmaster@localhost
ServerName tomcatsrv:443
DocumentRoot /var/lib/tomcat7/webapps/ROOT/
SSLEngine on
SSLCertificateFile /etc/apache2/crypt/tomcatsrv.crt
SSLCertificateKeyFile /etc/apache2/crypt/tomcatsrv.key
JKMount /ROOT* worker1

Verschlüsselung aktivieren

Damit der Server gleich eine sichere Verbindung verwendet, wird http erst gar nicht konfiguriert, sondern gleich https aktiviert. 

sudo a2enmod ssl

sudo mkdir /etc/apache2/crypt

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

Den richtigen CN in unserem Fall "tomcatsrv" vergeben.

Am Ende sollten alle Dienste neu gestartet werden

Neustart der Dienste

sudo service apache2 restart

sudo service tomcat7 restart

Sollte es zu Fehlern bei der Konfiguration gekommen sein, werdet ihr das beim Neustarten der Dienste bemerken. Alternativ kann ein Blick ins Log nie schaden.

Sollte unverhofft alles glatt gehen, müsstet ihr unter https://tomcatserv:443 die Tomcat Startseite finden ("ROOT"). Viel Erfolg. 

Better Crypto - Applied Crypto Hardening Handbuch - Codeschnipsel für sicheres Netzwerken

Auf dem 30. Chaos Communication Congress wurde dieses Jahr das Applied Crypto Hardening Handbuch vorgestellt. Zunächst noch als PDF zum Download, eine Online Version in HTML soll folgen. Die Macher (BetterCrypto) möchten damit eine Anleitung für Netzwerker und Systemadministratoren bereitstellen, welche die wichtigsten Crypto Einstellungen für bekannte Systeme behandelt.

BetterCrypto

Ziel ist es, Codeschnipsel bereitzustellen, welche der Anwender direkt per Copy und Paste in die jeweilige Konfiguration übernehmen kann. So muss nicht lange in den Einstellungen nach den richtigen Anweisung für eine sichere Verschlüsselung gesucht werden. Der Einsatz ist somit denkbar einfach, siehe folgende Codezeilen für einen Mailserver:

Crypto unter Postfix

smtpd_tls_cert_file = /etc/ postfix / server .pem

smtpd_tls_key_file = /etc/ postfix / server . key

# use 0 for Postfix >= 2.9 , and 1 for earlier versions

smtpd_tls_loglevel = 0

# enable opportunistic TLS support in the SMTP server and client

smtpd_tls_security_level = may

smtp_tls_security_level = may

# if you have authentication enabled , only offer it after STARTTLS

smtpd_tls_auth_only = yes

tls_ssl_options = NO_COMPRESSION

An diesem Beispiel ist gut zu erkennen, dass dieser Code zwar für Grundverschlüsselung sorgt, jedoch auf das eigene System durchaus noch angepasst werden kann. So kann bei vielen Mailservern die Verschlüsselung zwischen den jeweiligen Providern durchaus erzwungen werden, also "smtp_tls_security_level = encrypt". Der Code kann also ohne Hintergrundwissen übernommen werden, Lesen schadet aber bekanntlich ja auch nicht.

Crypto Codeschnipsel 

Neben Postfix stellt die Codesammlung Einstellungen für folgende Systeme bereit:

  • Webserver
    • Apache, lighttpd, nginx, ms iis
  • SSH
    • Open SSH, Cisco ASA, Cisco IOS
  • Mailserver
    • Postfix, Dovecot, Cyrus, SMTP, Exim
  • VPN
    • IPSec, OpenVPN, PPTP, Cisco ASA
  • PGP
  • Instant Messaging
    • XMPP, Jabber, IRC, SILC
  • Datenbanken
    • Oracle, MySQL, PostgreSQL, DB2
  • Proxylösungen

Code ist nicht alles, so werden auf den 80 Seiten durchaus auch Theorie und Praxis beschrieben. Für Anwender und Admins sicherlich eine Pflichtlektüre.

Download  Better Crypto - Applied Crypto Hardening Handbuch