Ich möchte kurz beschreiben, welche Herausforderungen überwunden werden müssen, wenn die AD Domain der externen DNS Domain entspricht - insbesondere auf die Überschneidung mit der Unternehmenswebseite unter http://domain.tld.
Grundsätzlich sind in diesem Fall zwei DNS Server zu pflegen (daher Split-Horizon oder Split-Brain DNS):
- die AD integrierten Windows DNS Server
- die externen Internet DNS Server
Während die internen DNS Server sämtliche Namen der lokalen Infrastruktur enthalten, sollten nur in Ausnahmefällen interne Einträge im externen DNS veröffentlicht werden, da so vertrauliche Informationen der eigenen Infrastruktur bekannt werden können.
Allerdings ist es umgekehrt zwingend erforderlich sämtliche externe Einträge zusätzlich auf den internen Servern zu pflegen, da eine DNS Weiterleitung wegen der lokalen Zuständigkeit nicht möglich ist.
Sofern nicht täglich neue externe Dienste hinzukommen, bzw. geändert werden müssen, hat sich diese Vorgehensweise bewährt.
Einen Schönheitsfehler hat diese Lösung allerdings: prinzipbedingt muss die Domain domain.tld auf die AD Domain Controller zeigen. Soll die Unternehmenswebseite neben www.domain.tld auch unter domain.tld verfügbar sein, so würden Browser im internen Netz immer die Domain Controller kontaktieren. Naturgemäß sollten Domain Controller keine weiteren Dienste anbieten und so erhält der Browser immer einen Timeout.
Eine Lösung für dieses Problem ist ein kleiner Proxy, der Verbindungen auf Port 80/443 an den eigentlichen Webserver weiterleitet. Ich habe dazu HA-Proxy unter Cygwin kompiliert und nutze die Windows Aufgabenplanung, um den Proxy beim Systemstart zu starten. Die Konfiguration sieht z.B. so aus:
global maxconn 256 defaults log global mode tcp option dontlognull timeout connect 5000 timeout client 50000 timeout server 50000 listen http_proxy bind *:80 mode http default_backend http_backend backend http_backend mode http server web www.domain.tld:80 check listen ssl_proxy bind *:443 mode tcp default_backend ssl_backend backend ssl_backend tcp-request inspect-delay 5s tcp-request content accept if { req_ssl_hello_type 1 } server web www.domain.tld:443 check
Da die Unternehmensseite auf www.domain.tld eingerichtet ist, vermittelt der Proxy eigentlich auch nur den HTTP-Redirect und wird für die weitere Kommunikation mit dem Webserver nicht weiter beansprucht.
HA-Proxy könnte diesen Redirect ebenfalls selbst beisteuern, bräuchte allerdings für den HTTPS-Redirect ein entsprechendes Zertifikat. Mithilfe des TCP Tunnels im ssl_backend kann darauf verzichtet werden.
Keine Kommentare:
Kommentar veröffentlichen