RPC + Firewall = Uiuiui!

Die folgende Problematik geht wohl in die Kategorie von Problemen, die entweder fast niemandem auffallen, da diese in den meisten Umgebungen schlichtweg weniger relevant sind und erst in ganz speziellen Fällen wirklich Probleme verursachen…:

Grundsätzlich wird jeder dieses Problem haben, wenn eine Netzwerk-Firewall zwischen zwei Domänencontrollern zum Einsatz kommt. V.a. wenn diese auch noch eine Statefull Inspection durchführt. Das Problem ist dann erkennbar, wenn auf einem einzelnen Domänenconroller unter „Active Directry Standorte- und Dienste“ die Replikation auf einem entfernten DC hinter einer solchen Firewall ankickt. Da geht mal und geht mal nicht – wenn es niht geht, kommt so eine schöne RPC-Fehlermeldung – jedoch eben nur sporadisch. Es geht bei dieser Fehlermeldung nicht darum, dass die Replikation an und für sich nicht funktionieren würde – sondern lediglich darum, dass man per RPC diese Replikation nicht ankicken kann. Anders gesagt: Die DCs replizieren sich perfekt – aber RPC macht sporadisch Probleme, weil die Ablaufzeiten der Sessions auf der Stateful Inspection Firewall nicht mit den Zeiten auf dem Windows-System abgestimmt sind. Deshalb habe ich eingangs auch erklärt, dass dieses Problem oft nicht auffällt…

Das Problem wird erst dann richtig bösartig, wenn folgende die folgende Konstellation gegeben ist:

Man nehme an, man hat in einer Niederlassung einen RODC, welcher nicht für die Speicherung von Kennwörtern der lokalen Branch-User konfiguriert ist. Man nehme an, dass sich dieser RODC über eine Netzwerk-Firewall mit dem RWDC im Hauptsitz replizieren soll. Somit muss der RODC bei jeder Authentifizierung eines Benutzers zwingend mit dem RWDC über die Firewall in Kontakt treten, um das Passwort zu verifizieren. Dies geschieht auch über RPC – und wenn dieser nicht sofort funktioniert, dann kann die Anmeldung im Branch-Office mal 3 Minuten und auch einmal die sonst üblichen ca. 7 Sekunden (bei einem optimierten System, trotz GPOs & Co.) andauern… Aber auch dies eben sporadisch…

Genau diesen Fall hatten wir. Nach stundenlanger Suche auf dem Windows-System, wurden keine Fehler festgestellt. Alles war i.O. – DCDIAG & Co. brachten keine Feher und auch in der Ereignisanzeige war kein Hinweis darauf zu sehen, dass hier etwas falsch ist. Somit war dann mal irgendwann gekommen, den Fall an die Netzwerker zu eskalieren. Dank der konkreten Information, dass nur der RPC-Verkehr nicht sauber funktioniert, konnte der folgende Artikel von Cisco (Cisco ASA-Box als Firewall) gefunden werden:

https://www.cisco.com/en/US/docs/security/asa/asa83/configuration/guide/inspect_mgmt.html#wpxref16910

Darin wird beschrieben, wie man für das „dcerpc“-Protokoll, welches auch von Windows verwendet wird, eine Policy-Map einrichten kann.

Dieser Artikel war jedoch nur ein Teilschritt zum Erfolg. Das Verhalten bei der Remote-Replikation änderte sich geringfügig – aber genügend, um ein neues Muster zu entdecken. Wenn man andauernd eine Replikation startete, war alle wunderbar – aber wehe man hat einmal für 10 Minuten nix gemacht – dann kam sofort wieder diese RPC-Fehlermeldung. Nach genau drei Versuchen, hat sich alles dann wieder normalisiert und die Session war wiederhergestellt. Das war demnach immer noch nicht annehmbar, v.a. deshalb, weil die Login-Zeiten sporadisch immer noch schlecht waren. Deshab haben wir noch mit den Session-Timeouts gespielt und nach anfänglicher Erhöhung auf 3 Stunden gemerkt, dass dies so nicht funktionierte. Deshalb haben wir die Werte einmal auf 10 Sekunden angepasst – und siehe da: Alle Probleme mit dem Login und auch mit der Replikation waren plözlich wie weg geblasen…

Fazit: Der auftraggebende DC wollte anscheinend eine neue Session aufbauen. Die Firewall war jedoch der Meinung, dass die Session immer noch am laufen seie – deshalb kam unter WireShark ein Paket mit der Meldung „suspected retransmission“ zurück. Nachdem die Sessions nun auf der ASA schon früher ablaufen, ist die Replikation, resp. die RPC-Calls konstant möglich.

D.h. die Konstellaton bei uns war sehr speziell – aber ich denke, dass auch in vielen anderen Umgebungen dieses Problem existiert – jedoch nicht wirklich bemerkt wird, da die Replikation dennoch funktioniert und da die DCs entweder meistens ein Kennwort zwischengespeichert haben (RODC) oder ein regulärer RWDC verwendet wird.

VN:R_U [1.9.22_1171]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
RPC + Firewall = Uiuiui!, 10.0 out of 10 based on 1 rating

Schreib einen Kommentar