wiki:sicherheit:apache2

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
wiki:sicherheit:apache2 [2014/02/27 09:13] wikiadminwiki:sicherheit:apache2 [2015/10/23 10:32] (aktuell) – [Forward Secrecy] wikiadmin
Zeile 6: Zeile 6:
 Zunächst sollte man dem Apache2 ein paar grundsätzliche Flausen abgewöhnen. Warum verrät er z.B. bei jeder Anfrage seine Versionsnummer und Patchstand? Zunächst sollte man dem Apache2 ein paar grundsätzliche Flausen abgewöhnen. Warum verrät er z.B. bei jeder Anfrage seine Versionsnummer und Patchstand?
  
 +===== Geschwätzigkeit abstellen =====
 +Bei falsch aufgerufenen Seiten (Error 404) verkündet der Apache, welche Version er und ein paar andere Programme hat.
 +
 +Den Umfang der Auskünfte (Programmnamen, Versionsnummern) stellt man ab, indem man in der /etc/apache/conf.d/security folgendes setzt
 +<file>ServerTokens Prod</file>
 +
 +Um die Anzeige komplett zu unterdrücken, setzt man den folgenden Wert
 +<file>ServerSignature Off</file>
 +
 +===== Webroot absichern =====
 +
 +man muss sicherstellen, dass alle Inhalte, die außerhalb des Web-roots liegen, nicht verbreitet werden. Dazu muss man in jedem virtuellen Host folgendes eintragen:
 +<file>
 +<Directory />
 +  Order Deny,Allow
 +  Deny from all
 +  Options None
 +  AllowOverride None
 +</Directory>
 +</file>
 +
 +===== Optionen deaktivieren =====
 +
 +Grundsätzlich sollte man in jedem virtuellen Host alle Optionen deaktivieren, wenn man sie nicht braucht.
 +<file>
 +Options none
 +</file>
 +
 +Sollte man doch Optionen einschalten müssen, sollten diese auf ein Minimum reduziert werden.
 ====== Forward Secrecy ====== ====== Forward Secrecy ======
  
 Wieder so eine Phrase, bei der kein Mensch weiß, um was es sich handelt aber jeder mitreden will. Wieder so eine Phrase, bei der kein Mensch weiß, um was es sich handelt aber jeder mitreden will.
  
-Damit man nicht dumm stirbt, hier die Erklärung.+Damit man nicht dumm stirbt, gibt es [[http://www.heise.de/security/artikel/Zukunftssicher-Verschluesseln-mit-Perfect-Forward-Secrecy-1923800.html|hier]] die Erklärung.
  
-Beim Aufruf einer Web-Seite wie https://meine-mail.de erfolgt typischerweise ein Schlüsselaustausch über das asymmetrische Verschlüsselungsverfahren RSA. Dabei läuft grob vereinfacht folgende Kommunikation zwischen dem Server der Bank und dem Browser ab: 
  
-  - Browser kontaktiert https://meine-mail.de +Doch wie bekommt man nun alle möglichen SchlüsselNachfolgend eine Tabellein der alle Kombinationen der Verschlüsselung aufgeführt sind.
-  - Server präsentiert einen öffentlichen Schlüssel, dem eine vertrauenswürdige Zertifizierungsstelle attestiert hatdass er tatsächlich der Firma meine-mail gehört +
-  - Browser überprüft die Unterschrift der Zertifizierungsstelle und ist danach überzeugt, dass er tatsächlich mit meine-mail.de spricht. Er verschlüsselt seine Nachrichten jetzt mit dem soeben erhaltenen öffentlichen Schlüssel. +
-  - Server kann die Nachrichten mit dem zugehörigen geheimen Schlüssel entschlüsseln. +
-  - Browser schlägt supergeheim123 als geheimen Sitzungsschlüssel vor +
-  - Server bestätigt supergeheim123 als geheimen Sitzungsschlüssel+
  
-Den ausführlichen Artikel und die Quelle gibt es [[http://www.heise.de/security/artikel/Zukunftssicher-Verschluesseln-mit-Perfect-Forward-Secrecy-1923800.html|hier]]+^Cipher-Tag^Protocol^Key Ex.^Auth.^Enc.^MAC^Type^ 
 +|ECDHE-RSA-AES256-GCM-SHA384|TLSv1.2|ECDH|RSA|AESGCM(256)|AEAD| 
 +|ECDHE-ECDSA-AES256-GCM-SHA384|TLSv1.2|ECDH|ECDSA|AESGCM(256)|AEAD| 
 +|ECDHE-RSA-AES256-SHA384|TLSv1.2|ECDH|RSA|AES(256)|SHA384| 
 +|ECDHE-ECDSA-AES256-SHA384|TLSv1.2|ECDH|ECDSA|AES(256)|SHA384| 
 +|ECDHE-RSA-AES256-SHA|SSLv3|ECDH|RSA|AES(256)|SHA1| 
 +|ECDHE-ECDSA-AES256-SHA|SSLv3|ECDH|ECDSA|AES(256)|SHA1| 
 +|SRP-DSS-AES-256-CBC-SHA|SSLv3|SRP|DSS|AES(256)|SHA1| 
 +|SRP-RSA-AES-256-CBC-SHA|SSLv3|SRP|RSA|AES(256)|SHA1| 
 +|DHE-DSS-AES256-GCM-SHA384|TLSv1.2|DH|DSS|AESGCM(256)|AEAD| 
 +|DHE-RSA-AES256-GCM-SHA384|TLSv1.2|DH|RSA|AESGCM(256)|AEAD| 
 +|DHE-RSA-AES256-SHA256|TLSv1.2|DH|RSA|AES(256)|SHA256| 
 +|DHE-DSS-AES256-SHA256|TLSv1.2|DH|DSS|AES(256)|SHA256| 
 +|DHE-RSA-AES256-SHA|SSLv3|DH|RSA|AES(256)|SHA1| 
 +|DHE-DSS-AES256-SHA|SSLv3|DH|DSS|AES(256)|SHA1| 
 +|DHE-RSA-CAMELLIA256-SHA|SSLv3|DH|RSA|Camellia(256)|SHA1| 
 +|DHE-DSS-CAMELLIA256-SHA|SSLv3|DH|DSS|Camellia(256)|SHA1| 
 +|AECDH-AES256-SHA|SSLv3|ECDH|None|AES(256)|SHA1| 
 +|SRP-AES-256-CBC-SHA|SSLv3|SRP|None|AES(256)|SHA1| 
 +|ADH-AES256-GCM-SHA384|TLSv1.2|DH|None|AESGCM(256)|AEAD| 
 +|ADH-AES256-SHA256|TLSv1.2|DH|None|AES(256)|SHA256| 
 +|ADH-AES256-SHA|SSLv3|DH|None|AES(256)|SHA1| 
 +|ADH-CAMELLIA256-SHA|SSLv3|DH|None|Camellia(256)|SHA1| 
 +|ECDH-RSA-AES256-GCM-SHA384|TLSv1.2|ECDH/RSA|ECDH|AESGCM(256)|AEAD| 
 +|ECDH-ECDSA-AES256-GCM-SHA384|TLSv1.2|ECDH/ECDSA|ECDH|AESGCM(256)|AEAD| 
 +|ECDH-RSA-AES256-SHA384|TLSv1.2|ECDH/RSA|ECDH|AES(256)|SHA384| 
 +|ECDH-ECDSA-AES256-SHA384|TLSv1.2|ECDH/ECDSA|ECDH|AES(256)|SHA384| 
 +|ECDH-RSA-AES256-SHA|SSLv3|ECDH/RSA|ECDH|AES(256)|SHA1| 
 +|ECDH-ECDSA-AES256-SHA|SSLv3|ECDH/ECDSA|ECDH|AES(256)|SHA1| 
 +|AES256-GCM-SHA384|TLSv1.2|RSA|RSA|AESGCM(256)|AEAD| 
 +|AES256-SHA256|TLSv1.2|RSA|RSA|AES(256)|SHA256| 
 +|AES256-SHA|SSLv3|RSA|RSA|AES(256)|SHA1| 
 +|CAMELLIA256-SHA|SSLv3|RSA|RSA|Camellia(256)|SHA1| 
 +|PSK-AES256-CBC-SHA|SSLv3|PSK|PSK|AES(256)|SHA1| 
 +|ECDHE-RSA-DES-CBC3-SHA|SSLv3|ECDH|RSA|3DES(168)|SHA1| 
 +|ECDHE-ECDSA-DES-CBC3-SHA|SSLv3|ECDH|ECDSA|3DES(168)|SHA1| 
 +|SRP-DSS-3DES-EDE-CBC-SHA|SSLv3|SRP|DSS|3DES(168)|SHA1| 
 +|SRP-RSA-3DES-EDE-CBC-SHA|SSLv3|SRP|RSA|3DES(168)|SHA1| 
 +|EDH-RSA-DES-CBC3-SHA|SSLv3|DH|RSA|3DES(168)|SHA1| 
 +|EDH-DSS-DES-CBC3-SHA|SSLv3|DH|DSS|3DES(168)|SHA1| 
 +|AECDH-DES-CBC3-SHA|SSLv3|ECDH|None|3DES(168)|SHA1| 
 +|SRP-3DES-EDE-CBC-SHA|SSLv3|SRP|None|3DES(168)|SHA1| 
 +|ADH-DES-CBC3-SHA|SSLv3|DH|None|3DES(168)|SHA1| 
 +|ECDH-RSA-DES-CBC3-SHA|SSLv3|ECDH/RSA|ECDH|3DES(168)|SHA1| 
 +|ECDH-ECDSA-DES-CBC3-SHA|SSLv3|ECDH/ECDSA|ECDH|3DES(168)|SHA1| 
 +|DES-CBC3-SHA|SSLv3|RSA|RSA|3DES(168)|SHA1| 
 +|PSK-3DES-EDE-CBC-SHA|SSLv3|PSK|PSK|3DES(168)|SHA1| 
 +|ECDHE-RSA-AES128-GCM-SHA256|TLSv1.2|ECDH|RSA|AESGCM(128)|AEAD| 
 +|ECDHE-ECDSA-AES128-GCM-SHA256|TLSv1.2|ECDH|ECDSA|AESGCM(128)|AEAD| 
 +|ECDHE-RSA-AES128-SHA256|TLSv1.2|ECDH|RSA|AES(128)|SHA256| 
 +|ECDHE-ECDSA-AES128-SHA256|TLSv1.2|ECDH|ECDSA|AES(128)|SHA256| 
 +|ECDHE-RSA-AES128-SHA|SSLv3|ECDH|RSA|AES(128)|SHA1| 
 +|ECDHE-ECDSA-AES128-SHA|SSLv3|ECDH|ECDSA|AES(128)|SHA1| 
 +|SRP-DSS-AES-128-CBC-SHA|SSLv3|SRP|DSS|AES(128)|SHA1| 
 +|SRP-RSA-AES-128-CBC-SHA|SSLv3|SRP|RSA|AES(128)|SHA1| 
 +|DHE-DSS-AES128-GCM-SHA256|TLSv1.2|DH|DSS|AESGCM(128)|AEAD| 
 +|DHE-RSA-AES128-GCM-SHA256|TLSv1.2|DH|RSA|AESGCM(128)|AEAD| 
 +|DHE-RSA-AES128-SHA256|TLSv1.2|DH|RSA|AES(128)|SHA256| 
 +|DHE-DSS-AES128-SHA256|TLSv1.2|DH|DSS|AES(128)|SHA256| 
 +|DHE-RSA-AES128-SHA|SSLv3|DH|RSA|AES(128)|SHA1| 
 +|DHE-DSS-AES128-SHA|SSLv3|DH|DSS|AES(128)|SHA1| 
 +|DHE-RSA-SEED-SHA|SSLv3|DH|RSA|SEED(128)|SHA1| 
 +|DHE-DSS-SEED-SHA|SSLv3|DH|DSS|SEED(128)|SHA1| 
 +|DHE-RSA-CAMELLIA128-SHA|SSLv3|DH|RSA|Camellia(128)|SHA1| 
 +|DHE-DSS-CAMELLIA128-SHA|SSLv3|DH|DSS|Camellia(128)|SHA1| 
 +|AECDH-AES128-SHA|SSLv3|ECDH|None|AES(128)|SHA1| 
 +|SRP-AES-128-CBC-SHA|SSLv3|SRP|None|AES(128)|SHA1| 
 +|ADH-AES128-GCM-SHA256|TLSv1.2|DH|None|AESGCM(128)|AEAD| 
 +|ADH-AES128-SHA256|TLSv1.2|DH|None|AES(128)|SHA256| 
 +|ADH-AES128-SHA|SSLv3|DH|None|AES(128)|SHA1| 
 +|ADH-SEED-SHA|SSLv3|DH|None|SEED(128)|SHA1| 
 +|ADH-CAMELLIA128-SHA|SSLv3|DH|None|Camellia(128)|SHA1| 
 +|ECDH-RSA-AES128-GCM-SHA256|TLSv1.2|ECDH/RSA|ECDH|AESGCM(128)|AEAD| 
 +|ECDH-ECDSA-AES128-GCM-SHA256|TLSv1.2|ECDH/ECDSA|ECDH|AESGCM(128)|AEAD| 
 +|ECDH-RSA-AES128-SHA256|TLSv1.2|ECDH/RSA|ECDH|AES(128)|SHA256| 
 +|ECDH-ECDSA-AES128-SHA256|TLSv1.2|ECDH/ECDSA|ECDH|AES(128)|SHA256| 
 +|ECDH-RSA-AES128-SHA|SSLv3|ECDH/RSA|ECDH|AES(128)|SHA1| 
 +|ECDH-ECDSA-AES128-SHA|SSLv3|ECDH/ECDSA|ECDH|AES(128)|SHA1| 
 +|AES128-GCM-SHA256|TLSv1.2|RSA|RSA|AESGCM(128)|AEAD| 
 +|AES128-SHA256|TLSv1.2|RSA|RSA|AES(128)|SHA256| 
 +|AES128-SHA|SSLv3|RSA|RSA|AES(128)|SHA1| 
 +|SEED-SHA|SSLv3|RSA|RSA|SEED(128)|SHA1| 
 +|CAMELLIA128-SHA|SSLv3|RSA|RSA|Camellia(128)|SHA1| 
 +|PSK-AES128-CBC-SHA|SSLv3|PSK|PSK|AES(128)|SHA1| 
 +|ECDHE-RSA-RC4-SHA|SSLv3|ECDH|RSA|RC4(128)|SHA1| 
 +|ECDHE-ECDSA-RC4-SHA|SSLv3|ECDH|ECDSA|RC4(128)|SHA1| 
 +|AECDH-RC4-SHA|SSLv3|ECDH|None|RC4(128)|SHA1| 
 +|ADH-RC4-MD5|SSLv3|DH|None|RC4(128)|MD5|| 
 +|ECDH-RSA-RC4-SHA|SSLv3|ECDH/RSA|ECDH|RC4(128)|SHA1| 
 +|ECDH-ECDSA-RC4-SHA|SSLv3|ECDH/ECDSA|ECDH|RC4(128)|SHA1| 
 +|RC4-SHA|SSLv3|RSA|RSA|RC4(128)|SHA1| 
 +|RC4-MD5|SSLv3|RSA|RSA|RC4(128)|MD5|| 
 +|PSK-RC4-SHA|SSLv3|PSK|PSK|RC4(128)|SHA1| 
 +|EDH-RSA-DES-CBC-SHA|SSLv3|DH|RSA|DES(56)|SHA1| 
 +|EDH-DSS-DES-CBC-SHA|SSLv3|DH|DSS|DES(56)|SHA1| 
 +|ADH-DES-CBC-SHA|SSLv3|DH|None|DES(56)|SHA1| 
 +|DES-CBC-SHA|SSLv3|RSA|RSA|DES(56)|SHA1| 
 +|EXP-EDH-RSA-DES-CBC-SHA|SSLv3|DH(512)|RSA|DES(40)|SHA1|export| 
 +|EXP-EDH-DSS-DES-CBC-SHA|SSLv3|DH(512)|DSS|DES(40)|SHA1|export| 
 +|EXP-ADH-DES-CBC-SHA|SSLv3|DH(512)|None|DES(40)|SHA1|export| 
 +|EXP-DES-CBC-SHA|SSLv3|RSA(512)|RSA|DES(40)|SHA1|export| 
 +|EXP-RC2-CBC-MD5|SSLv3|RSA(512)|RSA|RC2(40)|MD5|export| 
 +|EXP-ADH-RC4-MD5|SSLv3|DH(512)|None|RC4(40)|MD5|export| 
 +|EXP-RC4-MD5|SSLv3|RSA(512)|RSA|RC4(40)|MD5|export|
  
  
 +
 +
 +__Umsetzung__
 +
 +Um die Verschlüsselung global zu setzen, muss man in der Datei /etc/apache2/mods-enabled/ssl.conf die folgendenen Zeilen eintragen / Ändern
 +
 +<note important>__Vorsicht:__
 +
 +In den <VirtualHost>-Anweisungen wird der Wert noch einmal gesetzt und damit überschrieben. Kommentiert ihn bei jedem vHost aus!!</note>
  
 <file> <file>
Zeile 30: Zeile 165:
 SSLCipherSuite EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:EECDH+AES256:EDH+AES256:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5 SSLCipherSuite EECDH+AES:EDH+AES:-SHA1:EECDH+RC4:EDH+RC4:RC4-SHA:EECDH+AES256:EDH+AES256:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5
 </file> </file>
 +
 +__Nachtrag:__
 +  - Leider Ist in der obigen Regel nicht der "anonyme Diffi-Hellmann Schlüsselaustausch" inbegriffen. dieser sollte wenn mögliche auch abgeschalten werden. Ein '':!ADH'' an die Zeile SSLCipherSuite angehängt und auch dieses Problem ist gelöst
 +  - RC4-Verschlüsselung gilt nicht mehr als sicher und kann mit ''!:RC4'' deaktiviert werden
 +  - Aufgrund von Inkompatibilität habe ich mich dazu entschieden, EDH-3DES und EECDH-3DES zu aktivieren. Die Optimierte CipherSuite ist nun \\ <file>SSLCipherSuite EECDH+AES:EDH+AES:-SHA1:EECDH+AES256:EDH+AES256:EECDH+3DES:EDH+3DES:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5:!ADH</file>
 +  - Aufgrund von aktuellen Ereignissen (DH-Logjam Attacke) kann die obige CipherSuite auch nicht mehr als Maß aller Dinge betrachtet werden. Eine Beschreibung der zusätzlichen Absicherung sowie einer SSLCipherSuite ist [[https://weakdh.org/sysadmin.html|hier]] beschrieben.
 +====== HTTP Strict Transport Security ======
 +
 +
  
 ====== Quellen ====== ====== Quellen ======
Zeile 43: Zeile 187:
 Forward-Secrecy Forward-Secrecy
   * [[http://blog.pregos.info/2013/09/05/howto-apache-ssl-and-perfect-forward-secrecy/]]   * [[http://blog.pregos.info/2013/09/05/howto-apache-ssl-and-perfect-forward-secrecy/]]
 +  * [[https://blog.benny-baumann.de/?p=1446]]
  
  
  • wiki/sicherheit/apache2.1393488789.txt.gz
  • Zuletzt geändert: 2014/02/27 09:13
  • von wikiadmin