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!
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
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.
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??
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.
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
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
Oh Gott!
Ja so war es!! :-[
Danke dir!
Toller Job von dir!!
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!
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.
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.
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.
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. :-\
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
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.
Einfach in eine PM kopieren, ich brauche nicht alles, nur was da drin steht so letzte 200 Zeilen oder so.
Das caddy.log zeichnet die restarts auf.
latest.log wäre auch interessant. Da gerne mehr.
Und auch gleich noch das Caddyfile. Wenn API keys drin sind bitte entfernen. Bitte den Rest nicht anonymisieren wenn es geht. Will nach Syntaxfehlern schauen.
Bitte noch dazu welche os-caddy und welche opnsense version läuft.
Dass die Zertifikate erst nach einem Firewall neustart kommen, scheint wohl zu bedeuten, das Caddy Prozess nicht reloaden kann um eine neue Konfog zu laden. Im zweifel Caddy mal entfernen und neu installieren.
Ich habe einen patch vorbereitet der Caddy killt wenn es nicht reagiert bei einem reload:
https://github.com/opnsense/plugins/pull/4261
Der kann wahrscheinlich bald getestet werden. In meinen Tests funktioniert er.
Bitte den Patch ausprobieren:
https://github.com/opnsense/plugins/commit/bd009e4
In der SSH Shell folgendes eingeben:
opnsense-patch -c plugins bd009e4
Habe den Patch ausgeführt!
Zusammen mit der 24.7.5 sieht das erstmal gut aus!!
Caddy lässt sich beenden und neustarten!
Ich beobachte noch ein bisschen aber bin erstmal erfreut!!
Gute Arbeit (mal wieder) monviech!
Super freut mich. Danke fürs testen :)
Nochmal ein Nachschlag!
Ich habe Caddy jetzt an einem anderen Standort mit einer 24.7 OPNsense ebenfalls mit einem Exchange 2016 am laufen.
Auch dort bleibt Caddy beim Neustart hängen bis man deinen Patch installiert hat.
Ansonsten funktionierts.
Hallo, der Patch sollte eigendlich seit os-caddy-1.7.2 automatisch drin sein.
Das ist irgwnd ein Upstream problem mit dem Hängenbleiben wenn NTLM im Spiel ist aber die Entwickler haben für diesen einen edge case gerade keine Zeit. Deswegen der Workaround mit dem kill von mir.