Podstawy VPN

Problem jest znany od dawna. Zadanie może polegać na przesłaniu dużej ilości danych do innego komputera. Może to być aktualizacja bazy danych, projekt strony tytułowej lub choćby kolekcja cyfrowych zdjęć z wakacji. Droga przez e-mail odpada, choćby ze względu na ograniczoną pojemność skrzynki pocztowej. Wysłanie danych przez FTP wymaga zainstalowania serwera FTP i tymczasowego zapisania w Internecie na jednym z wielu serwerów usługowych, co dla wielu użytkowników jest nie do zaakceptowania ze względów bezpieczeństwa.

Problem jest znany od dawna. Zadanie może polegać na przesłaniu dużej ilości danych do innego komputera. Może to być aktualizacja bazy danych, projekt strony tytułowej lub choćby kolekcja cyfrowych zdjęć z wakacji. Droga przez e-mail odpada, choćby ze względu na ograniczoną pojemność skrzynki pocztowej. Wysłanie danych przez FTP wymaga zainstalowania serwera FTP i tymczasowego zapisania w Internecie na jednym z wielu serwerów usługowych, co dla wielu użytkowników jest nie do zaakceptowania ze względów bezpieczeństwa.

Alternatywą może być bezpośrednie przesłanie danych do komputera docelowego przez modem, jednak komputer docelowy musi po pierwsze być w ogóle wyposażony w modem, po drugie musi być skonfigurowany jako serwer RAS (Remote Access Services). Ponadto niebagatelne znaczenie maja koszty, zwłaszcza w przypadku połączeń międzymiastowych. Jeżeli oba komputery są połączone z Internetem, można rzecz załatwić za pomocą udostępniania plików Windows. Użytkownicy uzyskują wówczas dostęp do plików na komputerze odległym w dokładnie taki sam sposób, jak na komputerze lokalnym. Ogromna wada tego rozwiązania polega na tym, że taki komputer można porównać do stodoły z otwartymi wrotami. Chyba trudno byłoby o bardziej komfortową sytuację dla hakera.

Należy zatem sięgnąć po tak zwane VPNs - wirtualne sieci prywatne. Istota ich działania polega na tym, że za pomocą mechanizmów szyfrowania tworzą małą, wydzieloną sieć w wielkiej sieci. Tylko ci użytkownicy, którzy znają właściwe adresy i hasła, mogą kontaktować się za pośrednictwem takiej sieci. Bardzo zapobiegliwi administratorzy mogą je nawet instalować w sieci LAN, choćby w celu zapewnienia bezpiecznej komunikacji zarządowi firmy lub niektórym wydziałom. Haker może wprawdzie nadal przechwycić strumień danych za pomocą programów zwanych snifferami, lecz nie jest w stanie odczytać samych danych.

Czym jest VPN?

Schemat budowy - struktura nagłówka IP.

Schemat budowy - struktura nagłówka IP.

Wirtualna sieć prywatna łączy dwa komputery lub dwie sieci, korzystając z innej sieci jako nośnika. Przykładem może być połączenie między oddziałem firmy we Wrocławiu a centralą firmy w Gdańsku za pośrednictwem Internetu. Użytkownik postrzega sieć VPN jako normalne połączenie sieciowe z komputerem docelowym; rzeczywisty nośnik pozostaje dla niego niewidoczny.

Aby to umożliwić, VPN oddaje do dyspozycji użytkownika wirtualny adres IP. Dane do przesłania są szyfrowane przez klienta, łączone w pakiety i przesyłane do serwera VPN za pośrednictwem sieci publicznej. W przypadku Internetu jest to znów pakiet IP.

Serwer VPN odszyfrowuje pakiet i przetwarza go dalej. Sugestywną, animowaną grafikę ilustrującą ten proces można znaleźć na stronie www.wown.com/w_baeten/gifani/vpnani.gif. Opisany sposób postępowania nazywany jest też "tunelowaniem", ponieważ właściwe dane przesyłane są do komputera docelowego przez tunel utworzony w sieci publicznej.

Jest wiele możliwości implementacji VPN. Najbardziej popularne to:

  • Point-to-Point Tunneling Protocol (PPTP), nadaje się do przesyłu pakietów IP, IPX lub NetBEUI w sieci IP.
  • Layer 2 Tunneling Protocol (L2TP), nadaje się do przesyłu pakietów IP, IPX lub NetBEUI w dowolnym nośniku, który obsługuje transmisję datagramów punkt-punkt. Jako przykłady można podać IP, X.25, Frame Relay lub ATM.
  • IP Security Protocol (IPsec), nadaje się do przesyłu danych IP za pośrednictwem nadrzędnej sieci IP.
Protokoły w tunelu

Tunelowanie może odbywać się na dwóch różnych poziomach modelu warstw OSI. PPTP i L2TP wykorzystują warstwę łącza danych (poziom 2) i pakują pakiety danych w ramki protokołu PPP (Point to Point Protocol). Mogą przy tym korzystać ze wszystkich funkcji protokołu PPP, jak choćby uwierzytelnianie użytkownika, dynamiczne przydzielanie adresu (np. DHCP), kompresja danych i ich szyfrowanie.

Szczególnie ważne jest uwierzytelnianie użytkownika, gdyż zadaniem VPN jest bezpieczna transmisja danych. Często stosuje się uwierzytelnienie CHAP, w którym dane użytkownika są szyfrowane. Można też uzyskać wyższy poziom bezpieczeństwa, stosując call-back (oddzwanianie). W tej procedurze połączenie jest przerywane po zakończonym powodzeniem uwierzytelnieniu. Następnie serwer obsługujący połączenie oddzwania pod określony numer, by nawiązać właściwe połączenie służące do transmisji danych. Pakiety danych do przesłania (IP, IPX lub NetBEUI) pakowane są w ramki PPP, następnie rozpakowywane w komputerze docelowym w celu dalszego przetwarzania.

PPTP pakuje ramki PPP przed przesłaniem w pakiety IP i przesyła je siecią IP do węzła docelowego. Protokół został opracowany w roku 1996 przez takie firmy, jak Microsoft, Ascend, 3Com i US Robotics.

Ograniczenie polegające na tym, że PPTP pracuje tylko w sieciach IP, legło u podstaw kolejnego opracowania z roku 1998. L2TP pracuje również w sieciach X.25, Frame Relay i bardzo wówczas cenionych sieciach ATM. Przewaga L2TP nad PPTP polega na tym, że może być przesyłany różnymi nośnikami WAN oraz opcjonalnie drogą okrężną przez IP.

IPsec - VPN tylko do Internetu

W przeciwieństwie do PPTP i L2TP, IPsec pracuje w warstwie sieci (poziom 3). Szyfruje on pakiety danych do przesłania łącznie ze wszystkimi informacjami, jak dane odbiorcy i meldunki o statusie, następnie dodaje normalny nagłówek IP, który przesyłany jest na drugi koniec tunelu. Tamtejszy komputer usuwa dodatkowy nagłówek IP, deszyfruje oryginalny pakiet i kieruje go do właściwej stacji odbiorczej.

W IPsec można skonfigurować dwie różne techniki tunelowania. W przypadku tak zwanego tunelu dobrowolnego klient tworzy najpierw normalne połączenie z Internetem, a następnie korzysta z tego kanału do utworzenia wirtualnego połączenia z właściwym serwerem docelowym. Aby było to możliwe, klient musi mieć zainstalowany odpowiedni protokół. W normalnym przypadku komunikację inicjuje użytkownik, który łączy się z Internetem. Jednak również komputery w sieci LAN mogą tworzyć połączenia VPN. Ponieważ połączenie IP już jest, w takim przypadku zachodzi jedynie potrzeba utworzenia połączenia VPN.

W przypadku tak zwanego tunelu obowiązkowego to nie klient odpowiada za utworzenie tunelu, lecz dostawca usług internetowych. Klient musi połączyć się jedynie z dostawcą usług internetowych, zaś tunel do stacji docelowej jest tworzony automatycznie przez dostawcę. Potrzebna jest w tym celu odpowiednia umowa z dostawcą usług internetowych.


Zobacz również