Jak zabezpieczyć RDP

Wiele firm decyduje się na bezpośrednie udostępnienie połączenia do zdalnego pulpitu ich serwerów. Może to być bardzo poważne zagrożenie bezpieczeństwa w przedsiębiorstwie.

Przy bezpośrednim udostępnieniu połączeń do usług terminalowych Windows udostępniane jest bezpośrednie połączenie do serwera z dowolnego miejsca w Internecie. Jeśli w oprogramowaniu obsługującym tę usługę znajdzie się błąd, który można wykorzystać, serwer będzie stać przed napastnikiem otworem. Tego typu włamania dotyczyły głównie Windows 2000 Server, ale najnowsze wydanie też nie było wolne od błędów.

Oprócz wykorzystania typowych błędów programistycznych (na przykład przepełnienie bufora) napastnik może zablokować konta użytkowników, kilkakrotnie podając nieprawidłowe hasło. Uzyskanie loginów wcale nie jest trudne, oprócz ataku polegającego na enumeracji można je pozyskać, znając szablon, według którego zostały utworzone. Jeśli serwer zdalnego pulpitu jest podłączony do domeny, w której zastosowano blokowanie kont po kilku nieudanych próbach logowania, w ten sposób można zablokować wiele kont w firmie - aby je odblokować niezbędna będzie interwencja administratora. To samo dotyczy organizacji, które korzystają z tokenów przy włączonym zintegrowanym logowaniu za pomocą kodu z tokena - wtedy blokowaniu ulega nie konto użytkownika w domenie, ale token danego użytkownika.

Połączenie wewnątrz tunelu

Aby podwyższyć bezpieczeństwo połączeń, należy korzystać z RDP wewnątrz tunelu VPN wyposażonego w mocne uwierzytelnienie. Tunel ten można zrealizować za pomocą standardowego IPSec albo SSL VPN, przy czym należy unikać łączenia sieci, najlepiej tunel ten terminować na koncentratorze, z którego jedynym miejscem docelowym będzie port serwera udostępniającego RDP. Koszty nie powinny być tutaj barierą, gdyż dostępne jest dobre oprogramowanie realizujące zarówno IPSec, jak i SSL VPN (na przykład OpenVPN, który jest dostępny także dla platformy Windows, włącznie z GUI), ponadto większość tanich routerów jest już wyposażona w obsługę tuneli punkt-punkt realizowanych przy użyciu IPSec. Ponadto obsługa tunelu IPSec może być uruchomiona na serwerach z systemem Windows (przydatnym artykułem jest KB 816514) i Linux (narzędzie strongswan, dostępne w wielu dystrybucjach). Do terminowania pojedynczych połączeń L2TP można wykorzystać nawet Windows XP, chociaż nie jest to zalecana konfiguracja. Podobnie nie warto korzystać z PPTP, gdyż pojawiają się problemy ze zgodnością z routerami, ponadto PPTP jest znany z problemów z bezpieczeństwem.

Podwyższenie bezpieczeństwa przez zastosowanie VPN wiąże się nie tyle z poprawą szyfrowania komunikacji (RDP jest wyposażony w mechanizm silnego szyfrowania, który działa dobrze), ile z uniemożliwieniem bezpośredniego połączenia z portem serwera bez uprzedniego uwierzytelnienia przy zestawianiu tunelu.