Dawno dawno temu, w czasach Internet Explorera 4, grupa geniuszy z Inktomi, Microsoft, RealNetworks i Sun wpadła na świetny pomysł, polegający na tym, że administratorom można oszczędzić nieco pracy. Idea oczywiście jest wielce szczytna nawet, jeżeli oszczędność dotyczyła tak drobnego aspektu konfiguracji, jakim jest ustawienie proxy w przeglądarce. Pomysł został spisany, opublikowany jako draft, oznaczony, że wygasa w grudniu 1999 i zaimplementowany w Internet Explorerze 5. Jako, że na rynku istnieje całkiem sporo przeglądarek (a dokładniej User Agentów), idea się rozpełzła po świecie i niestety pokutuje do dzisiaj.

Osoby wyjątkowo bystre, osoby obdarzone dobrą pamięcią oraz osoby z zamiłowaniem do prehistorycznych rozwiązań pewnie wiedzą już, o co chodzi – o Web Proxy Auto-Discovery Protocol, dostępny nadal na stronach IETF.

W największym skrócie, istotna część idei WPAD polega na tym, że przeglądarka po uruchomieniu wysyła serię zapytań czy gdzieś w sieci nie znajduje się przypadkiem host o nazwie WPAD. Bo gdyby się znajdował, to pobierany jest z niego plik wpad.dat, w którym napisane może być między innymi jak komunikować się z siecią Internet przy pomocy http i https.

To teraz pora na prosty scenariusz: jeden z użytkowników firmowej sieci instaluje sobie maszynę, którą nazywa WPAD a następnie (do czego zwykle ma pełne prawo) dodaje ją do Active Directory, powiedzmy corp.contoso.com. W efekcie, w domenowym DNSie pojawia się rekord A dla hosta wpad.corp.contoso.com. To o ten właśnie rekord zapytają praktycznie wszyscy klienci http(s) w firmowej sieci i tym razem serwer DNS zna na to pytanie odpowiedź. Wystarczy wystawić w odpowiednim miejscu plik wpad.dat i skonfigurować działający serwer proxy, żeby mieć pełną (i praktycznie niezauważalną dla użytkowników) kontrolę nad istotną częścią internetowego ruchu z firmowej sieci.

Kuszące? Dla administratorów dbających o bezpieczeństwo, zwykle niekoniecznie. Dla sieciowych łobuzów – całkiem całkiem.

Administrator nie jest jednak całkiem bezbronny i ma parę metod przeciwdziałania takim sytuacjom:

  • Użyć opcji 252 z DHCP, ponieważ draft WPAD określa, że gdy DHCP odpowie, to DNSa klient już nie pyta.
  • Użyć centralnego zarządzania konfiguracją przeglądarek – na przykład zgodnie z dokumentacją na stronach TechNet.
  • Sprawić, że DNS nie zechce odpowiedzieć na zapytanie o rekord o nazwie WPAD i pozwolić odejść muzealnej technologii tam, gdzie jej miejsce.

Ta ostatnia opcja nie jest nowa (obecna w DNSach od Windows Server 2008), często jest domyślnie skonfigurowana poprawnie, ale warto upewnić się, że działa tak, jak tego administrator oczekuje. Najlepiej zrobić to przy pomocy polecenia dnscmd.exe:

  • Sprawdzić czy serwer DNS blokuje odpowiedzi na pewne zapytania - dnscmd /info /enableglobalqueryblocklist
  • Sprawdzić jakie zapytania są blokowane - dnscmd /info /globalqueryblocklist

Pierwsze z poleceń przekłada się na parametry zapisane w kluczu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\EnableGlobaQueryBlockList a drugie – w kluczu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList

W GPO nie ma wprawdzie gotowych ustawień odpowiedzialnych za te parametry, ale samodzielne ich skonfigurowanie przez GPP jest bardzo proste i szybkie.

Pośrednio, funkcjonalność blokowania zapytań o WPAD oznacza również, że jeżeli ktoś koniecznie zapragnie używać w swojej sieci Web Proxy Autodiscovery Protocol, to może zdarzyć się, że serwery nie będą współpracować. Wtedy trzeba usunąć wpis "wpad" z listy. Warto również wiedzieć, że serwer ignorując istniejące rekordy takie jak WPAD, zapisuje w swoim logu, że to zrobił świadomie i celowo. Służy do tego event 7600:

wpad1

Serwer DNS robi to tylko raz i dopóki usługa nie zostanie zrestartowana, nowy event na ten temat nie zostanie zarejestrowany. Może to trochę utrudnić diagnostykę nieświadomemu administratorowi, ale alternatywą byłoby zaśmiecenie logu – przecież zapytanie o host WPAD wysyłane jest przez każdy komputer w sieci, próbujący wyszukać ustawienia proxy.

Czy to dobre podejście do archaicznej technologii jaką jest WPAD? Może lepiej byłoby całkowicie zerwać z zaszłościami? Ciężko orzec. Ale tak naprawdę administratorzy mają wybór i jeżeli tylko wiedzą jak świadomie używać funkcjonalności DNS, mogą ustawić swoją sieć tak, jak potrzebują.

Autor: Grzegorz Tworek [MVP]

PS Poza WPAD, drugim domyślnie blokowanym rekordem jest ISATAP. Rekord taki używany jest przez Intra-Site Automatic Tunnel Addressing Protocol, czyli opartą o DNS protezę zapewniającą tunelowanie w mieszanych sieciach IPv4/IPv6. Scenariusze nadużycia mogą być ciekawsze niż w przypadku WPAD, ale są nieco trudniejsze do zrozumienia i dlatego to na WPAD się skupiłem.