Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
sysbetr:reverse_proxy_opnsense [2020/04/17 18:34] – [Fehler, die mir unterkamen und ihre Ursachen] cbsysbetr:reverse_proxy_opnsense [2020/04/27 23:11] – [Verschlüsselung optimieren] cb
Zeile 1: Zeile 1:
 ====Reverse-Proxy auf Basis von OPNsense==== ====Reverse-Proxy auf Basis von OPNsense====
 ===Grund=== ===Grund===
-Ich möchte ((Der Wechsel ist u.a. ein Gebot der Vernunft, da z.B. die Weiterentwicklung der von mir verwendeten und geschätzten Shorewall fraglich ist. Bei der Konfiguration bin ich wegen des eher seltenen Aufbaus auf mich alleine gestellt - keine Firma würde das supporten. Da ist OPNsense erfolgversprechender.)) von Debian mit Shorewall als Firewallbasis weg, hin zu **OPNsense**. Dazu gehört auch der Reverse-Proxy am Eingang des Netzes. Dieser übernimmt auch weitere Aufgaben wie Dynamisches DNS, SSL-Offloading, Letsencrypt usw.+Ich möchte ((Der Wechsel ist u.a. ein Gebot der Vernunft, da z.B. die Weiterentwicklung der von mir verwendeten und geschätzten Shorewall fraglich ist. Bei der Konfiguration bin ich wegen des eher seltenen Aufbaus auf mich alleine gestellt - keine Firma würde das supporten. Da ist OPNsense erfolgversprechender.)) von der Firewallbasis Debian mit Shorewall wechseln zu **OPNsense**. Dazu gehört auch die Funktion des Reverse-Proxys am Eingang des Netzes. Dieser übernimmt auch weitere Aufgaben wie Dynamisches DNS, SSL-Offloading, Letsencrypt usw.
  
  
Zeile 94: Zeile 94:
 ===Verschlüsselung optimieren=== ===Verschlüsselung optimieren===
 Voraussetzung: Es funktioniert! Voraussetzung: Es funktioniert!
 +
 Nun kann man die Verschlüsselung bei [[SSLLabs.com]] testen. Vermutlich erhält man eine B-Note. Bei T hat man etwas falsch gemacht... Nun kann man die Verschlüsselung bei [[SSLLabs.com]] testen. Vermutlich erhält man eine B-Note. Bei T hat man etwas falsch gemacht...
 Um auf die Note A+ zu kommen sind nun wenige Optimierungen in den HAProxy-Settings nötig: Um auf die Note A+ zu kommen sind nun wenige Optimierungen in den HAProxy-Settings nötig:
 +
 +{{ :sysbetr:screenshotopnsense_cipher.png?nolink|}}
  
 Bei Settings->Global Parameters: Bei Settings->Global Parameters:
     * Maximum SSL DH Size aus 2048 erhöhen     * Maximum SSL DH Size aus 2048 erhöhen
     * Bind options: no-tlsv11 ergänzen     * Bind options: no-tlsv11 ergänzen
-    * Cipher List: Löschen und die Zeichenfolge von Mozilla "Intermediate" (siehe unten) übernehmen. Derzeit lautet es:  +    * Cipher List: Löschen und die Zeichenfolge von Mozilla "Intermediate" (siehe unten) übernehmen. 
-     ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384+
 Beim Virtual Service->Public Service-> NameMeinesPublicService: Beim Virtual Service->Public Service-> NameMeinesPublicService:
     * Bind options: no-tlsv11 ergänzen     * Bind options: no-tlsv11 ergänzen
     * Cipher List: Löschen und die Zeichenfolge von Mozilla "Intermediate" (siehe unten) übernehmen.     * Cipher List: Löschen und die Zeichenfolge von Mozilla "Intermediate" (siehe unten) übernehmen.
- 
     * Enable HTTP/2     * Enable HTTP/2
  
-{{ :sysbetr:screenshotopnsense_cipher.png?nolink|}}+Schließlich kann man noch in dem DNS-Server der Domain einen CAA-Eintrag machen: 
 +    example.org. CAA 128 issue "letsencrypt.org" 
  
 ===Fehler, die mir unterkamen und ihre Ursachen=== ===Fehler, die mir unterkamen und ihre Ursachen===
     * Letsencrypt kann das Zertifikat nicht aktualisieren     * Letsencrypt kann das Zertifikat nicht aktualisieren
-      * -> überprüfe, dass die URL (die mit/.well-known beginnt) von außen per HTTP (Port 80) erreichbar ist+      * -> überprüfe, dass die URL (die mit /.well-known beginnt) von außen per HTTP (Port 80) erreichbar ist
       * -> findet für diese URL eine Weiterleitung zu https statt, so ist entweder       * -> findet für diese URL eine Weiterleitung zu https statt, so ist entweder
         * eine solche im HAProxy eingerichtet worden (dann ergänze die Rule so, dass beim acme-challenge-Verfahren nicht weitergeleitet wird) oder         * eine solche im HAProxy eingerichtet worden (dann ergänze die Rule so, dass beim acme-challenge-Verfahren nicht weitergeleitet wird) oder
Zeile 123: Zeile 127:
       * Private Network Adresses für WAN-Interface gesperrt? (OPNsense-WAN-Interface-Konfiguration)       * Private Network Adresses für WAN-Interface gesperrt? (OPNsense-WAN-Interface-Konfiguration)
       * Namensauflösung gescheitert, da die Fritzbox interne IP-Adressen nicht auflöst? (testen mit //host remote.example.com// . Ausnahmeliste in der Fritzbox-Netzwerk-Konfiguration ergänzen)       * Namensauflösung gescheitert, da die Fritzbox interne IP-Adressen nicht auflöst? (testen mit //host remote.example.com// . Ausnahmeliste in der Fritzbox-Netzwerk-Konfiguration ergänzen)
 +    * Kein HTTPS-Zugriff mit Firefox möglich, mit anderen Browsern klappt es:
 +      * -> In Letsencrypt OCSP Must Staple angeklickt? Sonst eine gute Idee, wird aber von HAProxy nicht unterstützt und Firefox beschwert sich zu Recht. Also Haken weg, Zertifikat neu ausstellen lassen, fertig.
 ===Quellen & Links=== ===Quellen & Links===
 Deutsche Anleitungen: Deutsche Anleitungen:
Zeile 129: Zeile 135:
  
 Englische Anleitung: Englische Anleitung:
-    * OPBsense-Forum: [[https://forum.opnsense.org/index.php?topic=12126.0|HowTo - Let's encrypt with HaProxy with 19.1.4]] +    * OPNsense-Forum: [[https://forum.opnsense.org/index.php?topic=12126.0|HowTo - Let's encrypt with HaProxy with 19.1.4]] 
-    * +    * OPNsense-Dokumentation: [[https://docs.opnsense.org/manual/how-tos/haproxy.html#haproxy|HAProxy Installation]] 
 +    * Patric Green: [[https://blog.bagro.se/lets-encrypt-with-haproxy-on-opnsense/|Let's Encrypt with HAProxy on OPNsense]]
  
 Mozilla SSL-Konfiguration: Mozilla SSL-Konfiguration:
     * [[https://ssl-config.mozilla.org/#server=haproxy&version=2.21&config=intermediate&openssl=1.1.1f&ocsp=false|SSL Configuration Generator]]     * [[https://ssl-config.mozilla.org/#server=haproxy&version=2.21&config=intermediate&openssl=1.1.1f&ocsp=false|SSL Configuration Generator]]
 +    * Liefert eine Liste empfehlenswerter Verschlüsselungstechniken (Cipher).
 +    * "intermediate" dürfte für die meisten Anwender praktikabel sein.
 +    * Man sollte die Einstellungen z.B. jährlich aktualisieren...
 +    * Derzeit (April 2020) lautet sie: 
 +
 +         ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
 +         
 +{{tag>OPNsense Reverse-Proxy Firewall Letsencrypt HAProxy HTTP HTTPS Portnummer Dyn-DNS Fritzbox Zertifikat SSL-Offloading HowTo}}