Debian Apache High Secure SSL

Aus Wiki
Zur Navigation springen Zur Suche springen

Introduction

Die Default Einstellungen von Apache entsprechen nicht mehr dem State of the Art im Hinblick auf Sicherheit. Die Default Einstellungen ermöglichen zwar die Verbindung mit allen erdenklichen Clients noch aus der Pre-Windows-XP Ära. Einige Protokolle gelten inzwischen als absolut unsicher - z.B. SSL2, SSL3 und TLS1.0 und bedingt auch TLS1.1 - und sollten definitiv nicht mehr verwendet werden, damit SSL-Kommunikation als sicher gelten kann. Neben diversen Protokollen gibt es auch noch eine Unsumme von Verschlüsselungsverfahren, die von absolut sicher bis offen angesehen werden müssen. Moderne Verschlüsselungen garantieren mittels der sog. Perfect Forward Secrecy (PFS) bzw. Forward Secrecy (FS), dass mitgeschnittene SSL-Kommunikation nicht im nachhinein entschlüsselt werden kann, selbst wenn der prviate Schlüssel abhanden kommen sollte. Bei Verschlüsselung ohne PFS/FS kann mit dem privaten Schlüssel die Kommunikation ohne Rechenaufwand innnerhalb Sekundenbruchteile dekodiert werden (selber Rechenaufwand, wie Browser zur Darstellung braucht).


Konfiguration

Deaktivierung unsicherer Protokolle und Aktivierung von Verschlüsselungsverfahren, die PFS/FS unterstützen.

vi /etc/apache2/mods-enabled/ssl.conf

Folgende Settings vornehmen:

SSLProtocol +TLSv1.2 +TLSv1.3 -TLSv1 -TLSv1.1 -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:!DSS
SSLHonorCipherOrder     on
SSLCompression          off
SSLOptions +StrictRequire
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains;"

SSL Server Check

Im Internet gibt es zahlreiche Seiten, auf denen die Sicherheit des eigenen Webservers geprüft werden kann. Empfehlenswert ist z.B.: https://www.ssllabs.com/ssltest/index.html

Den Haken Do not show the results on the boards und die Webadresse des eigenen Servers eintragen. Der Test nimmt einige Zeit in Anspruch und gibt schließlich sehr detaillierte Infnormationen aus. Mit obigen Einstellungen sollte ein A Rating erscheinen (für A+ wären noch erheblich restrictivere Eingriffe nötig und zum Teil DNS-Einträge, die nur bei einer eigenen Domain incl. Zugriff auf die DNS-Einstellungen möglich wären. Z.B. CAA, Zertifikat Pinning, DANE usw. Es sollten aber keine Tests mit Status Weak enden.