Naar aanleiding van een lokale internetonderbreking bij Telenet, heb ik geprobeerd de Exchange-server opnieuw via een nginx reverse proxy bereikbaar te maken. Normaal gezien heeft de server een 'directe' verbinding (en dus een 1:1-mapping op IP-adres en poort).
Ik krijg de configuratie (op een Synology NAS) echter niet voor elkaar. Outlook blijft om inloggegevens vragen. Ik heb het script op Nginx reverse proxy to Exchange 2010/2013 toegepast, maar dat maakt geen verschil.
Tips & Tricks zijn welkom.
Exchange achter een nginx reverse proxy
- Sasuke
- Elite Poster
- Berichten: 4854
- Lid geworden op: 13 aug 2003, 20:25
- Locatie: Vlaanderen
- Uitgedeelde bedankjes: 153 keer
- Bedankt: 332 keer
- Contacteer:
Gebruik je SSL Offloading of niet (denk best niet in dit geval). Check vooral dat eens, wat SSL mismatch zal er inderdaad voor zorgen dat niet kan/mag inloggen.
Het script zet SSL Offloading aan op de NGINX, maar dan moet dat ook enabled staan op de back-end én moet de SSL chain valid zijn op de Reverse Proxy én moet de Loadbalancer instaat zijn om het certificaat van de backend ook te valideren.
https://docs.microsoft.com/en-us/exchan ... -2013-help
Het script zet SSL Offloading aan op de NGINX, maar dan moet dat ook enabled staan op de back-end én moet de SSL chain valid zijn op de Reverse Proxy én moet de Loadbalancer instaat zijn om het certificaat van de backend ook te valideren.
https://docs.microsoft.com/en-us/exchan ... -2013-help
- Sinna
- Elite Poster
- Berichten: 2417
- Lid geworden op: 14 nov 2008, 08:22
- Twitter: KrSi78
- Locatie: Brugge
- Uitgedeelde bedankjes: 208 keer
- Bedankt: 152 keer
In normale omstandigheden stuurt de firewall het HTTPS-verkeer via een (S)NAT-rule rechtstreeks door naar de Exchange-server. SSL Offloading is daar niet nodig en dus ook niet geïmplementeerd. Ik had het certificaat van de mailserver al eerder geëxporteerd en geïmporteerd op de Synology en zie daarom niet waarom er een SSL-mismatch zou zijn. Van loadbalancing lijkt mij hier geen sprake, er is maar één mailserver.
Ik heb de documentatie die je aangaf doorgenomen, maar heb weinig trek om SSL niet vereist te stellen. De mailserver moet intern ook op een veilige manier benaderd worden me dunkt.
Ik heb de documentatie die je aangaf doorgenomen, maar heb weinig trek om SSL niet vereist te stellen. De mailserver moet intern ook op een veilige manier benaderd worden me dunkt.
Computer(k)nul
- Sasuke
- Elite Poster
- Berichten: 4854
- Lid geworden op: 13 aug 2003, 20:25
- Locatie: Vlaanderen
- Uitgedeelde bedankjes: 153 keer
- Bedankt: 332 keer
- Contacteer:
Wat heb je geëxporteerd, enkel het certificaat of de volledige chain ? De Reverse proxy moet de volledige chain hebben, dus ook de root certs van de uitgever.
Daarnaast, als ik dat voorbeeldscript zie,dan zijn niet alle locaties gereverse proxied. Bvb, Exchange 2013/2016 doen MAPI over https en moet dus ook /mapi forwarden. Tevens antwoord je 'autodiscover.domain.tld' niet op de 443 listener in dat voorbeeld.
Je kan dat voorbeeld echt niet zomaar overnemen en al zeker niet voor Exchange 2016.
Daarnaast, als ik dat voorbeeldscript zie,dan zijn niet alle locaties gereverse proxied. Bvb, Exchange 2013/2016 doen MAPI over https en moet dus ook /mapi forwarden. Tevens antwoord je 'autodiscover.domain.tld' niet op de 443 listener in dat voorbeeld.
Je kan dat voorbeeld echt niet zomaar overnemen en al zeker niet voor Exchange 2016.
- Sinna
- Elite Poster
- Berichten: 2417
- Lid geworden op: 14 nov 2008, 08:22
- Twitter: KrSi78
- Locatie: Brugge
- Uitgedeelde bedankjes: 208 keer
- Bedankt: 152 keer
@Sasuke: Ik merk dat je op de hoogte bent. Ik draai Exchange 2013.
Heb jij iets gelijkaardigs moeten opzetten en zo ja, kan je dan (eventueel via PM) je nginx-cfg bezorgen? Dan weet ik alvast dat de configuratie juist zou moeten zijn.
Heb jij iets gelijkaardigs moeten opzetten en zo ja, kan je dan (eventueel via PM) je nginx-cfg bezorgen? Dan weet ik alvast dat de configuratie juist zou moeten zijn.
Computer(k)nul
- Sasuke
- Elite Poster
- Berichten: 4854
- Lid geworden op: 13 aug 2003, 20:25
- Locatie: Vlaanderen
- Uitgedeelde bedankjes: 153 keer
- Bedankt: 332 keer
- Contacteer:
Nog nooit een Nginx config gedaan, enkel kemp en Netscaler Maar lijkt me straightforward, ik zal ff die nginx voorbeeld config aanpassen naar hoe het volgens mij moet zijn.
EDIT* - Heb ff verder gelezen en de 'free' versie van NginX ondersteund geen NTLM authenticatie in de reverse proxy. Dat zal mogelijk ook wel je issue zijn want default staat dat aan en dan zal Exchange altijd NTLM eisen. Als je toch via Nginx free wil werken ==> disable "Windows Authentication" en zorg dat Basic Authentication overal enabled is.
Alternatief ... gebruik een 'kemp' loadbalancer. Deze is gratis te gebruiken met een 10Mbit licentie (ruimschoots voldoende voor minder dan 200 remote users).
In bijlage een voorbeeld van de Nginx config die volgens mij wel zal werken, maar zoals vermeld ... enkel met Basic Authentication dus
EDIT* - Heb ff verder gelezen en de 'free' versie van NginX ondersteund geen NTLM authenticatie in de reverse proxy. Dat zal mogelijk ook wel je issue zijn want default staat dat aan en dan zal Exchange altijd NTLM eisen. Als je toch via Nginx free wil werken ==> disable "Windows Authentication" en zorg dat Basic Authentication overal enabled is.
Alternatief ... gebruik een 'kemp' loadbalancer. Deze is gratis te gebruiken met een 10Mbit licentie (ruimschoots voldoende voor minder dan 200 remote users).
In bijlage een voorbeeld van de Nginx config die volgens mij wel zal werken, maar zoals vermeld ... enkel met Basic Authentication dus
- Bijlagen
-
- nginx_exchange.txt
- (1.9 KiB) 41 keer gedownload
- Sinna
- Elite Poster
- Berichten: 2417
- Lid geworden op: 14 nov 2008, 08:22
- Twitter: KrSi78
- Locatie: Brugge
- Uitgedeelde bedankjes: 208 keer
- Bedankt: 152 keer
Bedankt voor het script, maar Basic Authentication zal 'm niet worden.
Die kemp ken ik niet, daar ga ik me in inlezen.
Bedankt voor de tip!
Die kemp ken ik niet, daar ga ik me in inlezen.
Bedankt voor de tip!
Computer(k)nul
- Sinna
- Elite Poster
- Berichten: 2417
- Lid geworden op: 14 nov 2008, 08:22
- Twitter: KrSi78
- Locatie: Brugge
- Uitgedeelde bedankjes: 208 keer
- Bedankt: 152 keer
Ik heb het script getest, maar loopt tegen een aantal foutmeldingen aan:
Aangezien die directives juist aangeven op welke manier er verbonden moet worden, lijkt het hier einde verhaal.
Code: Selecteer alles
nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/app.d/server.ReverseProxy.conf:5
nginx: [emerg] unknown directive "more_set_input_headers" in /etc/nginx/app.d/server.ReverseProxy.conf
nginx: [emerg] unknown directive "more_set_headers" in /etc/nginx/app.d/server.ReverseProxy.conf
Computer(k)nul