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:09] – [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 89: Zeile 89:
  
 Unnötig zu sagen, dass HAProxy natürlich deutlich komplexer ist, als hier dargestellt. auch Backend-Server können Regeln haben. Benutzeranmeldung kann gemacht werden... Unnötig zu sagen, dass HAProxy natürlich deutlich komplexer ist, als hier dargestellt. auch Backend-Server können Regeln haben. Benutzeranmeldung kann gemacht werden...
 +
 +Wenn es nicht funktioniert: Unten sind einige Fehler beschrieben.
 +
 +===Verschlüsselung optimieren===
 +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...
 +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:
 +    * Maximum SSL DH Size aus 2048 erhöhen
 +    * Bind options: no-tlsv11 ergänzen
 +    * Cipher List: Löschen und die Zeichenfolge von Mozilla "Intermediate" (siehe unten) übernehmen.
 +
 +Beim Virtual Service->Public Service-> NameMeinesPublicService:
 +    * Bind options: no-tlsv11 ergänzen
 +    * Cipher List: Löschen und die Zeichenfolge von Mozilla "Intermediate" (siehe unten) übernehmen.
 +    * Enable HTTP/2
 +
 +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
-        * oben der Haken bei "disable redirect" nicht gesetzt worden!+        * oben der Haken bei "Disable web GUI redirect rule" nicht gesetzt worden!
     * HAProxy lässt sich nicht starten     * HAProxy lässt sich nicht starten
       * -> Teste die Konfiguration mit dem Button       * -> Teste die Konfiguration mit dem Button
       * -> Sind bei abgeschaltetem HAProxy die Ports 80 und 443 wirklich frei? D.h. nicht erreichbar?       * -> Sind bei abgeschaltetem HAProxy die Ports 80 und 443 wirklich frei? D.h. nicht erreichbar?
-      * Übrigens: Wenn immer noch die Administration auf 443 läuft, so bekommt man auch eine unerklärliche DNS-Rebind-Attack-Meldung. Daher "**Unbedingt** verlegen".+      * Übrigens: Wenn fälschlicherweise immer noch die Administration auf 443 läuft, so bekommt man auch eine merkwürdige DNS-Rebind-Attack-Meldung. Daher "**Unbedingt** verlegen"
 +    * Die Server sind aus dem LAN zwischen Fritzbox und OPNsense nicht zu erreichen. 
 +      * 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) 
 +    * 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 106: 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}}