Debian Apache High Secure SSL
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.