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 checkDa 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