Oh ich habe in der letzten Zeit viele Fragen bekommen, ob es mir gut geht. Ja, danke es geht mir gut! Ich hatte nur einfach keine Zeit mehr für einen neuen Beitrag, tut mir Leid. Zwar habe ich ein paar begonnen, werde aber einfach nicht mit ihnen fertig 🙁 Nun aber erstmal ein neuer Post und direkt etwas zum basteln.

Viele von euch habe ja nach meinem Post zu den verschärften SSL/TLS Einstellungen meiner Webseite ähnliches auf ihren Webseiten getestet. Bei mir ist fast nur positives Feedback angekommen! Irgendwie scheinen wir nicht die User eines Windows XP IE6 als Zielgruppe zu haben! Gut gut… Qualys bescheinigt uns also nun ein A+ inkl. der viermaligen Wertung 100. Etwas bekloppt sind wir schon, hm?

ABER habt ihr mal auf eure Header geachtet? Header?!? Jopp… Da da könnte man Policys veröffentlichen die vor Cross-Site-Scripting schützen, Clickjacking, Zeugs das den IE davon abhalten sollte MIME-Types zu sniffen usw. usw…

Nun fühlt euch nicht schlecht, die wenigsten denken darüber nach! Dieses zeigt sich auch schnell über folgende Statistik: https://securityheaders.com/stats.php

Oh ja, oben rechts auf der Seite könntet ihr nun eure Domain eintippen und mal schauen was heraus kommt 😀 Gemacht? Gut, sollten wir was ändern?!?! Na dann mal los…

Für einen guten Start wäre folgendes zu tun:

Sofern noch nicht bereits lange an bitte das Apache Modul headers aktivieren:

$ a2enmod headers

Euer Apache wird für neue Module einen Restart benötigen:

$ service apache2 restart

Für spätere Konfigurationsänderungen reicht dann ein einfacher Reload aus:

$ service apache2 reload

Aktuelle Apache Versionen kommen auf einem Debian in der Regeln mit folgender Konfigurationsdatei: /etc/apache2/confenabled/security.conf

Möchte man für alle seine V-Host auf dem Server diese Dinge setzten fügt man es hier einfach unten an. Möchte man es nur für einen bestimmten v-host setzten, dann halt direkt in dessen Konfigurationsdatei. Logisch, hm?

Folgender Schwung räumt schon mal etwas auf:

ServerTokens Prod
ServerSignature Off
TraceEnable Off

Header set X-Content-Type-Options: "nosniff"
Header set X-Frame-Options: "sameorigin"
Header set X-Permitted-Cross-Domain-Policies: "master-only"
Header set X-XSS-Protection: "1; mode=block"
Header set X-Frame-Options: "sameorigin"
Header set X-XSS-Protection: "1; mode=block"
Header unset X-Powered-By

Beim Header set XFrameOptions: „sameorigin“  bitte bedenken, dass er Einbindungen in andere Seiten per iframe grillen würde. Ist dieses bei eurer Webseite so, solltet ihr den Header besser so nicht setzten!

ServerSignatur Off sorgt dafür, dass an keiner Stelle mehr eure Serverversion auftaucht. Ganz gut wenn ihr es möglichen Angreifen/Bots erschweren wollt Sicherheitslöcher für eure Version zu finden.

ServerTokens Prod sagt dem Apachen, dass er im Server Header nur das Wort Apache senden soll. Noch weniger wäre noch schöner, ist aber ohne weitere Arbeit nicht drin. Dazu später mehr!

TraceEnable Off wirft, wie zu erwarten die HTTP TRACE Method raus (braucht man es für manche seiten, könnte man es auch über die .htaccess wieder aktivieren:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]

Einfach mal testen….

Bis auf Header unset XPoweredBy hängen die anderen fast alle am Internet Explorer und kümmern sich darum hier für etwas mehr „Ruhe“ zu sorgen. Ach ja, Powered By fliegt durch ein unset natürlich raus. Man liest auch öfter mal von einem Header unset Server. Im Standard ist es aber nicht möglich den Apachen davon zu überzeugen sich selbst zu verleugnen. Es gibt auch bereits einen Bug-Report und ein WONTFIX.

https://bz.apache.org/bugzilla/show_bug.cgi?id=40026

Also selbst kompilieren oder damit leben. Die eine oder andere Distribution hat den mitgebrachten Apachen aber soweit gepatcht, dass ein unset für den Header Server funktioniert. Also einfach mal testen…

So… Noch mal scannen bitte. Und besser? Fein, wieder was gelernt und das Internet etwas verbessert!

Bei Fragen, fragen 😀