OPNsense CaddyPlugin Reverse Proxy für ua. MS Exchange 2016

Started by antiager, September 05, 2024, 02:07:49 PM

Previous topic - Next topic
Hallo Forum!

Seit ich mit OPNsense arbeite bin ich auf der Suche nach einer ReverseProxy Plugin Lösung die mit Exchange 2016 funktioniert.

Habe gehört, dass das mit Caddy funktionieren soll?

Ist das so?

Wo könnte ich mich da einlesen?

Gibts vielleicht ein Howto?

Danke!
Danke für die Hilfe!
Thank you for your Help

Probier es doch aus. Ist doch in ein paar Minuten zusammengeklickt ...

Und das Howto ist Bestandteil der Doku:
https://docs.opnsense.org/manual/how-tos/caddy.html
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Theoretisch sollte es funktionieren. Es ist ein NTLM plugin eingebaut was man in den Handlern aktivieren kann.

Es funktioniert nur richtig wenn man intern über TLS (ohne tls insecure skip verify, also echte Vertrauensstellung mit tls trust pool und tls server name...) kommuniziert.

Das letzte mal als ich es getestet habe mit einem EX2019 hat auch Outlook extern funktioniert.

Bitte schreibe wenn du es getestet hast, mich interessiert ob es noch funktioniert.

Falls HTTP Reverse Proxy nicht mehr richtig mit Exchange geht, gibt es auch Layer 4 TLS SNI Routing im Caddy Plugin.
Hardware:
DEC740

Habe nun ein noch ein ganz anderes Problem!

Caddy startet nicht mehr - will sich an Port 8443 binden statt an 443 ?!

Ich hatte vorher auf dem System NginxProxy und das ACME Plugin installiert.

Niginx habe ich deinstalliert das ACMe Plugin deaktiviert.

Seit dem läuft Caddy nicht mehr und logt 8443 (Gui) sei bereits verwendet??
Danke für die Hilfe!
Thank you for your Help

Hab ich noch nie so gesehen.

Mit "sockstat -l" schauen welche Ports verwendet werden.
https://man.freebsd.org/cgi/man.cgi?sockstat

In Caddy schauen in general settings advanced was standart http/https ports sind.

In den Caddy Domains schauen ob irgendwo 8443 eingetragen ist.

Wenn nicht halt etwas rumprobieren, in der letzten Zeit hatte ich es wegen entwicklubg oft neu installiert und hatte nie dieses Problem.
Hardware:
DEC740

Aszug aus dem Log:

Error: loading initial config: loading new config: http app module: start: listening on :8443: listen tcp :8443: bind: address already in use
Error: caddy process exited with error: exit status 1

Sockstat:

USER     COMMAND    PID   FD  PROTO  LOCAL ADDRESS         FOREIGN ADDRESS     
root     charon      5721 15  udp4   *:500                 *:*
root     charon      5721 16  udp4   *:4500                *:*
_flowd   flowd      96948 3   udp4   127.0.0.1:2056        *:*
proxy    ftp-proxy  81572 3   tcp4   127.0.0.1:8024        *:*
proxy    ftp-proxy  77644 3   tcp4   127.0.0.1:8023        *:*
proxy    ftp-proxy  74190 3   tcp4   127.0.0.1:8022        *:*
proxy    ftp-proxy  69120 3   tcp4   127.0.0.1:8021        *:*
root     crowdsec-f 43510 6   tcp4   127.0.0.1:60601       *:*
root     crowdsec   37973 18  tcp4   127.0.0.1:8080        *:*
root     crowdsec   37973 329 tcp4   127.0.0.1:6060        *:*
root     ntpd       58549 21  udp4   *:123                 *:*
root     ntpd       58549 22  udp4   192.168.111.10:123    *:*
root     ntpd       58549 24  udp4   172.17.2.254:123      *:*
root     ntpd       58549 25  udp4   192.168.60.251:123    *:*
root     ntpd       58549 27  udp4   192.168.100.2:123     *:*
root     ntpd       58549 28  udp4   192.168.119.10:123    *:*
root     ntpd       58549 30  udp4   192.168.0.2:123       *:*
root     ntpd       58549 34  udp4   127.0.0.1:123         *:*
root     ntpd       58549 36  udp4   80.153.178.219:123    *:*
root     ntpd       58549 39  udp4   10.10.0.1:123         *:*
nobody   samplicate 85981 3   udp4   127.0.0.1:2055        *:*
nobody   samplicate 85981 4   udp4   *:41086               *:*
unbound  unbound    13411 7   udp4   *:53                  *:*
unbound  unbound    13411 8   tcp4   *:53                  *:*
unbound  unbound    13411 11  udp4   *:53                  *:*
unbound  unbound    13411 12  tcp4   *:53                  *:*
unbound  unbound    13411 15  udp4   *:53                  *:*
unbound  unbound    13411 16  tcp4   *:53                  *:*
unbound  unbound    13411 17  tcp4   127.0.0.1:953         *:*
root     openvpn    90616 8   udp46  *:1194                *:*
dhcpd    dhcpd      13918 10  udp4   *:67                  *:*
root     lighttpd    4473 7   tcp4   *:8443                *:*
root     sshd         522 8   tcp4   *:22                  *:*

Ports unter "Advanced" scheinen richtig 443 und 80
Danke für die Hilfe!
Thank you for your Help

Ich bin mir sicher dass bei irgend einer Domain als Port 8443 eingetragen ist.

Zeig mal dein Caddyfile.

Du kannst auch deinen OpNsense WebGUI port ändern, z.B auf 4443
Hardware:
DEC740

Oh Gott!

Ja so war es!! :-[

Danke dir!

Toller Job von dir!!
Danke für die Hilfe!
Thank you for your Help

Hallo!

Kurze Rückmeldung und eine Frage!

Exchange 2016 scheint mit Caddy als Reverse Proxy zu funktionieren!

Outlook WebAccess funktioniert und angebundene Outlook Clients können sich von extern verbinden.

Nur mit dem Autodiscover gibts anscheinend noch ein Problem. Beim einrichten von neuen Outlook Clients (extern) wird Exchange nicht gefunden. Hier bin ich noch am forschen!

Jetzt zu meiner Frage: ich habe meine opnsense nur mit Caddy als Proxy zum laufen gekriegt wenn ich "Dns Rebind Warnungen" abschalte.

Liegt das an meiner DNS Konfig?
Windows Domäne - Split DNS (wegen Exchange)?

Danke!
Danke für die Hilfe!
Thank you for your Help

Das ist komisch.

Eigendlich wird mit Caddy kein Split DNS benötigt. Das braucht man nur wegen NAT Probleme und durch den Reverse Proxy hat man die nicht mehr. Echange Split DNS Zone für autodiscover+mail kann man entfernen. Extern müssen beide Namen halt aufzulösen sein und auf die externe IP der OPnsense zeigen.

In Caddy braucht man 2 Domains. "autodiscover.example.com" und "mail.example.com" (oder wie auch immer die WebAccess Domain heiẞt.) Beide mit einem Handler der das gleiche macht.

Wenn die OPnsense irgendwie wegen DNS Rebind mäckert, ist da noch irgendwo ein altes Port Forward drin. Oder eine andere Konfiguration die 443 auf die OPNsense WebGUi leitet.

Danke für die Rückmeldung. Der Rest ist jetzt nur noch Kür.
Hardware:
DEC740

Danke für die weitere Erläuterung!

Ich werde so vorgehen.

Allerdings habe ich jetzt das Problem, dass Caddy für neu angelegte Domains keine  Certs mehr generiert.

ME. habe ich nichts gefändert ausser neue Domains angelegt.

Mir fällt auch auf, dass sich die Gui etwas merkwürdig verhält wenn ich in Caddy "APPLY" drücke dann dreht das Rad endlos bis ich die Seite wechsle. Das trat plötzlich auf ohne das och einen Zusammenhang finden konnte.
Danke für die Hilfe!
Thank you for your Help

Wenn ein Exchange Server da ist, dann entsteht ein Websocket Stream. Hier sollte dann die Option "Grace Period" greifen (advanced General Settings), die nach mehr als 10 Sekunden diesen Stream beendet und dem Server den Reload erlaubt. (Ist standardmäßig auf 10s konfiguriert). Ohne die Option wartet Caddy unendlich lange bis alle Streams beendet sind.

https://caddyserver.com/docs/caddyfile/options#grace-period

Warum keine Certs mehr generiert werden kann ich nicht genau sagen, dafür bräuchte man die Logs mit der Fehlermeldung für TLS-ALPN-01, HTTP-01 oder DNS-01 challenge.
Hardware:
DEC740

Danke wiedermal!

Exchange funktioniert jetzt anscheinend wie es soll!!

Super!

Leider habe ich mit Caddy zunehmend Probs. mit der GUI.
Stppen läßt er sich jetzt gar nicht mehr.
Bei einem Neustart dreht sich der Kreis bis ich die Seite verlasse.
Stoppen kann ich ihn nur durch Reboot.
Wenn ich eine Dom löschen will kommt eine Fehlermeldung ...is in use.

Nach deaktivierung und reboot kann ich die Dom löschen.

Komischerweise war das am Anfang (nur 2 Domänen - jetzt 6) nicht so.

Da hat alles funktioniert wie es soll.

Grace Period ist aktiv und steht auf 10 sek. :-\
Danke für die Hilfe!
Thank you for your Help

Ich hab in meinem persönlichen Caddy mehr als 30 Domains. Ich hab keine Probleme. Im nächsten Update kommt ein größeres GUI refaktor, vielleicht hilft das bei dir.

Ansonsten, viel kann ich ohne es nachstellen zu können nicht tun. Ich habe kaum Feeback dass die GUI nicht funktioniert.

Aber gut dass der Exchange läuft. :)

Das starten und stoppen hängt eigendlich bei Exchange komplett mit der Grace Period zusammen. Es ist komisch wenn das nicht mehr geht. Vielleicht mal niedriger einstellen. Wenn es keine Fehler gibt brauche ich mal /var/log/caddy/caddy.log was er für Probleme beim reload hat.

Hier war die Issue das erste mal, aber die ist lange gelöst:
https://github.com/opnsense/plugins/issues/3929
Hardware:
DEC740

Habe die GracePeriod jetzt mal auf 5 - hat anscheinend aber nichts geholfen  :'(

Wie kann ich dir das Log zukommen lassen?

Übrigens nach einem Reboot hat er alle Certs angefordert und zur Verfügung gestellt.
Danke für die Hilfe!
Thank you for your Help