• biuro@ar-net.info
  • 48 663 208 340

Windows Server 2008 jako serwer zdalnego dostępu SSL VPN, cz. 1

Windows Server 2008 jako serwer zdalnego dostępu SSL VPN, cz. 1

Szczegółowy przegląd technologii sieciowych VPN oraz opis protokołów Microsoft VPN, podkreślający korzyści nowego protokołu SSTP VPN.

 

Źródło: www.windowsecurity.com

Tłumaczenie: Dawid Kalinowski, Kraków

 

Dostęp zdalny (Remote Access) jest dziś jedną z „wielkich rzeczy”. Coraz więcej osób potrzebuje dostępu do informacji zgromadzonych na komputerach, tak tych w miejscu pracy jak i w domu, zatem możliwość dostępu do tych informacji z dowolnego miejsca staje się bardzo istotna. Czasy, kiedy dało się powiedzieć „Dostanę się do tych danych, jak będę miał dostęp do komputera, na którym one się znajdują” minął bezpowrotnie. Jeśli chcesz wygrywać z konkurencją we współczesnym biznesie, potrzebujesz tych danych natychmiast.

 

W okresie komputerowej epoki kamiennej, sposobem na zdalny dostęp do informacji znajdujących się na Twoim komputerze było skorzystanie z linii telefonicznej. Połączenia telefoniczne typu RAS (Remote Access Service) odbywały się poprzez normalne linie telefoniczne (POTS – Plain Old Telephone Service) i posiadały szybkość do 56 kbps. Powolność połączeń RAS była ich głównym problemem, a jeszcze większym koszt w przypadku konieczności skorzystania z połączenia zamiejscowego.

 

Wraz z wprowadzeniem i rozwojem Internetu, połączenia RAS stały się mniej odpowiednie. W związku z tym wprowadzono połączenia wirtualnej sieci prywatnej (VPN). Połączenia VPN zapewniły taką samą łączność typu „point to point”, tak jak i w połączeniu RAS, były jednak tańsze i szybsze. Szybkość połączenia VPN mogła być taka, jak szybkość przyłącza internetowego, a jego koszt nie zależał od odległości. Jedyny koszt to koszt przyłączenia do Internetu.

 

Wirtualna Sieć Prywatna (VPN)

VPN umożliwia komputerowi ustanowienie wirtualnego i prywatnego połączenia z siecią poprzez Internet. Połączenie jest wirtualne, ponieważ kiedy komputer ustanawia połączenie VPN poprzez Internet, działa on tak, jakby był węzłem sieci, czyli tak, jakby był bezpośrednio przyłączony do sieci przy pomocy kabla ethernetowego. Użytkownik ma taki sam dostęp do wszystkich zasobów sieci, jaki miałby, będąc do niej przyłączonym bezpośrednio. Jednak w przypadku połączenia typu klient VPN do serwera VPN, to połączenie jest wirtualne, ponieważ w rzeczywistości nie jest ethernetowym połączeniem z docelową siecią. Połączenie jest prywatne, ponieważ zawartość strumienia danych przemieszczających się wewnątrz połączenia VPN jest zaszyfrowana, w związku z tym nikt w Internecie nie jest w stanie odczytać zawartości tego przemieszczającego się strumienia w połączeniu VPN.

 

Windows Servers oraz klienci posiadają możliwość połączeń VPN od czasu wprowadzenia Windows NT i Windows 95. Jednak w ciągu tych ponad dziesięciu lat, rodzaj wsparcia VPN uległ rozwojowi. Windows Vista Service Pack 1 oraz Windows Server 2008, obecnie obsługują trzy rodzaje połączeń VPN. Są one następujące:

 

  • PPTP
  • L2TP/IPSec
  • SSTP

 

PPTP jest protokołem tunelowania typu Point to Point. PPTP jest najprostszą metodą, wg której możesz ustanowić połączenie VPN, ale niestety również najmniej bezpieczną. Przyczyną najmniejszego bezpieczeństwa jest to, że w PPTP uwierzytelnienie użytkowników nie następuje poprzez zabezpieczone połączenie. Oznacza to, że szyfrowanie połączenia VPN następuje dopiero po wymianie uwierzytelnień. Chociaż aktualna informacja uwierzytelniająca nie jest transmitowana pomiędzy klientem a serwerem VPN, jednak wymiany skrótów (hash values) mogą zostać wykorzystane przez wyrafinowanych hakerów w celu zdobycia dostępu do serwerów VPN i przyłączenia się do sieci korporacyjnych.

 

Bardziej bezpiecznym protokołem VPN jest L2TP/IPSec. L2TP/IPSec był wspólnie opracowany przez Microsoft i Cisco. L2TP/IPSec jest bezpieczniejszy od PPTP, ponieważ zabezpieczona sesja IPSec jest ustanawiana zanim zostaną przesłane uwierzytelnienia. Hakerzy nie są w stanie przechwycić uwierzytelnień użytkownika ani ich później wykorzystywać. Co ważniejsze, IPSec zapewnia wzajemne sprawdzanie autentyczności komputerów, a niewiarygodny komputer nie jest w stanie podłączyć się do bramki VPN L2TP/IPSec. IPSec zapewnia wzajemne sprawdzanie autentyczności urządzeń, integralności danych, poufność i niezaprzeczalność. L2PT obsługuje mechanizmy sprawdzania autentyczności użytkownika PPP i EAP. Pozwala to na wprowadzenie skomplikowanego rejestru bezpieczeństwa, ponieważ wymagane jest uwiarygodnienie tak użytkownika jak i maszyny.

 

Aktualnie Windows Vista SP1 oraz Windows Server 2008 obsługują nowy protokół VPN – Secure Socket Tunneling Protocol lub SSTP. SSTP korzysta z zaszyfrowanych połączeń HTTP do ustanowienia połączenia VPN do bramki VPN. SSTP jest bezpieczny, ponieważ uwierzytelnienia użytkownika nie są wysyłane do czasu aż bezpieczny tunel SSL jest ustanowiony przy bramce VPN. SSTP jest także znany jako PPP over SSL, a to oznacza, że można użyć mechanizmów uwierzytelnienia PPP i EAP, aby sprawić, że połączenie SSTP będzie jeszcze bezpieczniejsze.

 

Prywatność nie znaczy bezpieczeństwo

Powinienem tutaj wskazać, że połączenia VPN mają więcej wspólnego z prywatnością niż z bezpieczeństwem. Chociaż przyznaję, że prywatność jest głównym składnikiem bezpiecznej komunikacji, to jednak sama w sobie bezpieczeństwa nie zapewnia. Technologie VPN zapewniają komunikacyjną prywatność podczas przekazu poprzez Internet, co zapobiega odczytywaniu zawartości tej komunikacji przez intruzów. Technologie VPN zapewniają również to, że jedynie autoryzowani użytkownicy mogą przyłączyć się do sieci poprzez bramkę VPN. Jednakże prywatność, uwierzytelnienie i autoryzacja nie dostarczają wszechstronnego rozwiązania bezpieczeństwa.

 

Na przykład załóżmy, że masz pracownika, któremu udzieliłeś dostępu do VPN. Skoro Twoje protokoły VPN w Windows Server 2008 obsługują uwierzytelnianie EAP użytkownika, zdecydowałeś się wprowadzić karty elektroniczne dla użytkowników i zastosować protokół VPN L2TP/IPSec. Połączenie kart elektronicznych i P2TP/IPSec zapewnia, że wymagane jest mocne uwierzytelnienie urządzenia oraz użytkowników. Rozwiązanie z kartą elektroniczną i L2TP/IPSec funkcjonuje dobrze i wszyscy są szczęśliwi.

 

Szczęśliwi, do dnia kiedy jeden z użytkowników przyłącza się do serwera SQL, żeby otrzymać informację o listach płac i zaczyna dzielić się nią z wszystkimi innymi pracownikami. Co się stało? Czy połączenie VPN nie było bezpieczne? Połączenie VPN było bezpieczne do tego stopnia, że zapewniało prywatność, uwiarygodnienie i autoryzację – ale rzecz, której nie zapewniało, to kontrola dostępu, a kontrola dostępu jest najważniejszym aspektem bezpieczeństwa komputerowego. Można stwierdzić, że bez kontroli dostępu wszystkie inne aspekty bezpieczeństwa mają stosunkowo niższą wartość.

 

Żeby rozwiązanie VPN było prawdziwie bezpieczne, musisz mieć pewność że bramka VPN potrafi dokonać kontroli dostępu w oparciu o podział użytkowników na pojedynczych i na grupy. Wtedy możesz wprowadzić najniższe z możliwych przywileje dostępu dla użytkowników VPN. Nowoczesne bramki VPN i zapory sieciowe, takie jak IAS Firewall, potrafią dokonać tego typu silnej kontroli dostępu do VPN, w aspekcie użytkownik/grupa użytkowników. Dodatkowo nowoczesne zapory sieciowe, takie jak ISA Firewall, potrafią dokonywać inspekcji stanu warstwy pakietowej i warstwy aplikacyjnej na połączeniach klientów VPN.

 

Chociaż serwer Windows Server 2008 VPN nie zapewnia kontroli dostępu w aspekcie użytkownik/grupa użytkowników, jednak występują inne sposoby wprowadzenia mocnej kontroli dostępu bezpośrednio na serwerach z danymi, w przypadku jeśli nie chcesz ponosić kosztów posiadania nowoczesnych zapór sieciowych i bramek VPN. W tym artykule skupiamy się jedynie na składniku serwera VPN. Jeśli chcesz dowiedzieć się więcej o zaporze sieciowej ISA i zaawansowanych możliwościach serwera VPN, przejdź na www.isaserver.org


Dlaczego wprowadzić nowy protokół VPN?

Microsoft posiada już dwa dobrze funkcjonujące protokoły VPN, które umożliwiają użytkownikom połączenie z sieciami korporacyjnymi, dlaczego więc wprowadzać trzeci? SSTP jest wielkim udoskonaleniem dla użytkowników Windows VPN, ponieważ SSTP nie ma problemów z zaporami sieciowymi i urządzeniami NAT, które to problemy mają zarówno PPTP jak i L2TP/IPSec. Żeby PPTP mógł pracować z urządzeniem NAT, to urządzenie NAT musi obsługiwać PPTP poprzez PPTP „NAT editor”. Jeśli tego edytora nie ma dla wsparcia PPTP w urządzeniu NAT, połączenie PPTP nie zadziała.

 

L2TP/IPSec ma problemy z urządzeniami NAT i zaporami sieciowymi, ponieważ L2TP/IPSec wymaga aby zapora, dla L2TP na porcie UDP 1701 oraz IPSec IKE na porcie UDP 500 były dostępne na zewnątrz oraz ‚traversal port’ IPSec NAT, UDP port 4500 (port L2TP nie jest wymagane, kiedy stosuje się NAT-T). Większość zapór sieciowych w miejscach publicznych, takich jak hotele, centra konferencyjne, restauracje i inne, dopuszczają jedynie małą liczbę otwartych portów, takich jak HTTP, TCP port 80 i HTTPS (SSL), TCP port 443. Jeśli potrzebujesz obsługi protokołu innego niż HTTP i SSL, kiedy opuszczasz biuro, to „grasz w kości”. Niekoniecznie dostaniesz wymagane porty dla PPTP czy L2TP/IPSec.

 

Tymczasem połączenia SSTP VPN są tunelowane względem SSL przy użyciu TCP port 443. Ponieważ wszystkie zapory sieciowe i urządzenia NAT posiadają TCP port 443 otwarty, będziesz w stanie użyć SSTP z jakiegokolwiek miejsca. To bardzo upraszcza życie tym „ciągle w drodze”, którzy potrzebują VPN, żeby się połączyć z biurem. Również ułatwia to życie administratorom w firmie, którzy muszą obsługiwać „tych ciągle w drodze” oraz załogom biur pomocy technicznej odpowiedzialnych za połączenia internetowe w hotelach, centrach konferencyjnych jak i w innych miejscach publicznych.

 

Proces połączeniowy SSTP

Poniżej jest wyjaśnione jak wygląda proces połączeniowy SSTP:

  1. Klient SSTP VPN ustanawia połączenie TCP z bramką SSTP VPN pomiędzy dowolnym portem nadawcy TCP na SSTP VPN klienta a portem 443 TCP na bramce SSTP VPN.
  2. Klient SSTP VPN wysyła wiadomość SSL Client-Hello oznaczającą, że klient SSTP VPN chce ustanowić sesję SSL z bramką SSTP VPN.
  3. Bramka SSTP VPN wysyła certyfikat swojego komputera do klienta SSTP VPN.
  4. Klient SSTP VPN sprawdza poprawność certyfikatu w swojej bazie certyfikatów (Trusted Root Certification Authorities). Jeśli certyfikat, który serwer wysłał jest potwierdzony przez CA (Certificate Authority), klient SSTP VPN określa metodę szyfrowania dla sesji SSL, ustanawia klucz komunikacji SSL i szyfruje go wg jawnego klucza bramki SSTP VPN, następnie przesyła zaszyfrowaną formę klucza komunikacji SSL do bramki SSTP VPN.
  5. Bramka SSTP VPN odszyfrowuje klucz sesji SSL przy pomocy prywatnego klucza z listy certyfikowanych prywatnych kluczy w komputerze. Cała przyszła komunikacja pomiędzy klientem SSTP VPN i bramką SSTP VPN jest szyfrowana według wynegocjowanej metody oraz sesyjnego klucza SSL.
  6. Klient SSTP VPN wysyła HTTP poprzez SSL (HTTPS) wiadomość-prośbę do bramki SSTP VPN.
  7. Klient SSTP VPN negocjuje tunel SSTP z bramką SSTP VPN.
  8. Klient SSTP VPN negocjuje połączenie PPP z serwerem SSTP. Te negocjacje zawierają metodę uwiarygodnienia uwierzytelnień użytkownika przy pomocy standardowych metod uwiarygodnień PPP (albo nawet uwierzytelnienia EAP) i konfiguruje ustawienia dla przesyłu 4-tej wersji protokołu internetowego (IPv4) albo wersji 6-tej (IPv6).
  9. Klient SSTP rozpoczyna przesył IPv4 albo IPv6 poprzez połączenie PPP.

Ci, którzy są zainteresowani charakterystykami architektury protokołu VPN, mogą je zobaczyć na rysunku poniżej. Zauważcie, że protokół SSTP ma dodatkowy nagłówek w porównaniu do dwóch innych protokołów VPN. A to dlatego, że występuje kapsułkowanie HTTPS, będące dodatkiem do nagłówka SSTP. Protokoły L2TP i PPTP nie mają nagłówków warstwy aplikacyjnej kapsułkujących komunikację.


Rys. 1

Zastosujemy prostą sieć trzech przykładowych urządzeń, żeby przedstawić jak pracuje protokół SSTP. Nazwy i charakterystyki tych trzech urządzeń są następujące:

 

Vista:
Vista Business Edition
Vista Service Pack 1
Non-domain member
W2008RC0-VPNGW:
Windows Server 2008 Enterprise Edition

Two NICs – Internal and Esternal

Domain member
WIN2008RC-DC:
Windows Server 2008 Enterprise Edition

Domain Controller of MSFIREWALL.ORG domain

DHCP Server
DNS Server
Certificate Server (Enterprise CA)

Zauważ, że musisz mieć Vista Service Pack 1 jako klienta VPN. Chociaż w przeszłości dyskutowano o Windows XP Service Pack 3 obsługującym SSTP, jednak może to okazać się nie do końca prawdą. Niedawno zainstalowałem próbny Service Pack 3 dla Windows XP na próbnym urządzeniu i nie znalazłem śladów wsparcia dla SSTP. To wstyd, skoro istnieje wielka grupa użytkowników laptopów z zainstalowanym Windows XP, a aktualnie widać powszechną zgodę na temat tego, że Vista jest za wolna dla laptopów. Przypuszczalnie wydajność Visty zostanie poprawiona wraz z wypuszczeniem Vista Service Pack 1.

 

Na rysunku poniżej widoczna jest konfiguracja na wysokim poziomie przykładowej sieci.

Rys. 2

Podsumowanie

W tym artykule prześledziliśmy krótką historię komunikacji zdalnego dostępu do sieci komputerowych. Następnie omówiliśmy główne protokoły VPN obsługiwane przez serwery Windows oraz klientów, później poruszyliśmy kwestie bezpieczeństwa występujące w tradycyjnych protokołach Windows VPN. Następnie przyglądnęliśmy się w jaki sposób protokół SSTP rozwiązuje kwestie bezpieczeństwa i dostępności przedstawione w protokołach PPTP i L2TP/IPSec. Na końcu pobieżnie przyglądnęliśmy się laboratoryjnej sieci, której będziemy używać w następnym artykule. Będzie on na temat łączenia prostego rozwiązania klienta i serwera SSTP VPN przy użyciu Windows Server 2008 i Windows Vista Service Pack 1. Do zobaczenia! – Tom.

 

Źródło: www.windowsecurity.com


Potrzebujesz wsparcia