W polskim internecie wciąż zaskakująco mało mówi się o tak starej i prostej, a zarazem wygodnej, bezpiecznej i szczególnie aktualnej w dobie rozwoju Internetu rzeczy technologii, jaką jest mobilny VPN (wirtualna sieć prywatna). W tym artykule opiszę, jak i po co można skonfigurować dostęp do własnej sieci prywatnej dla dowolnego urządzenia z kartą SIM, bez konieczności instalowania na nim specjalistycznego oprogramowania.

Zadania i ograniczenia
Na początek odpowiem na pytanie: „po co?”. VPN jako technologia służy do rozwiązywania bardzo różnych zadań sieciowych, które łączy jedna cecha — odizolowana transmisja danych między dwoma urządzeniami przez dużą liczbę węzłów pośrednich. Na tej podstawie buduje się już bardziej złożone rozwiązania i realizuje wspomniane różnorodne scenariusze. W typowym, dobrze wszystkim znanym przypadku do zestawienia VPN wykorzystuje się sieć operatora stacjonarnego (dla zainteresowanych szczegółami jest ) albo różne protokoły sieciowe (GRE, IPSec, L2TP i inne — ten sam autor pisze ), a także współpracujące z nimi rozwiązania programowe (Cisco AnyConnect, OpenVPN, TOR — sami dobrze je znacie), jednak ich użycie na konkretnym urządzeniu końcowym od razu stawia wobec niego szereg wymagań, których niespełnienie prowadzi do określonych ograniczeń.
Pierwsze poważne ograniczenie jest takie, że urządzenie musi na poziomie sprzętowym i programowym obsługiwać co najmniej jeden z tych protokołów. Najczęściej zależy to od oprogramowania, które łatwo znaleźć dla laptopa lub smartfona, ale są też sytuacje, w których zadanie dotyczy urządzenia zbyt prostego pod względem sprzętowym albo jego software ma ograniczenia: wodomierz chce użyć VPN, aby raz w miesiącu przesłać swój nieszczęsny bajt odczytu, nie mniej niż Ty chcesz używać VPN do edytowania swojego profilu na LinkedIn.
Kolejnym istotnym ograniczeniem jest konieczność konfiguracji. Dotyczy to zarówno „prostych” urządzeń z pierwszego punktu, jak i klasycznych smartfonów oraz komputerów, których poprzednie ograniczenie nie dotyczy. O ile w przypadku tych pierwszych sprawa jest stosunkowo prosta i sprowadza się do czasu potrzebnego na konfigurację, o tyle przy tych drugich pojawiają się różne scenariusze. Organizacje często korzystają z VPN ze względów bezpieczeństwa, aby chronić firmowe urządzenie końcowe przed dostępem do publicznej sieci bez odpowiednich zabezpieczeń korporacyjnych lub przed przesyłaniem danych służbowych przez publiczne kanały. Użytkownicy końcowi mogą jednak z różnych powodów wyłączyć VPN albo zapomnieć go włączyć, przez co wiele firmowych systemów bezpieczeństwa może zostać „poza kontrolą”.
Oba te ograniczenia można łatwo wyeliminować, jeśli dostęp do VPN jest zapewniany na poziomie sieci. W przypadku łączności mobilnej można to zrealizować za pomocą „mobilnego VPN”. Każde urządzenie, niezależnie od stopnia złożoności, które potrafi przesyłać dane, będzie wysyłać je do właściwej sieci. Nie ma znaczenia, jakie ustawienia zostały wprowadzone na urządzeniu — przy prawidłowo skonfigurowanej sieci i tak będzie ono przesyłać dane tam, gdzie trzeba, i nigdzie indziej.
Jako dodatkowy atut urządzenie otrzyma adres z sieci wewnętrznej, który można zdalnie skonfigurować, a dostęp do niego będzie możliwy wyłącznie z poziomu tej sieci (lub fizycznie). Dla określonej klasy urządzeń ma to bardzo duże znaczenie.
Jak to działa
PS Core
Na pierwszy rzut oka VPN to klasyczna usługa wszystkich operatorów telekomunikacyjnych dla segmentu B2B, więc po co w ogóle to podkreślać? Klucz tkwi w tym, jak zbudowana jest sieć transmisji danych dla urządzeń podłączanych przez GPRS, HSPA, LTE lub inną technologię łączności mobilnej. Nie ma tu znanych wszystkim administratorom sieci VLAN-ów, nie ma switchy, a nawet routerów w ich tradycyjnym rozumieniu. Jest za to sieć dostępu radiowego (RAN) oraz rdzeń pakietowy (PS Core).

Uproszczony schemat sieci pakietowej operatora telefonii komórkowej. W przypadku LTE wygląda on nieco inaczej, ale ogólny sens pozostaje taki sam.
Ogólnie rzecz biorąc, każde urządzenie z kartą SIM, zarejestrowane w sieci pakietowej (po przejściu procedury GPRS attach lub analogicznej), zanim zacznie przesyłać dane dokądkolwiek, musi zainicjować utworzenie sesji transmisji danych (PDP context) na routerze rdzenia sieci pakietowej, GGSN. Szczegóły i cel tych procesów zostały bardzo dobrze opisane tutaj w . Co jest dla nas istotne: podczas inicjowania sesji w żądaniu do GGSN, oprócz innych parametrów, pojawiają się wartości, które wiele osób widziało w swoich telefonach lub miało z nimi do czynienia przy konfiguracji, na przykład modemów USB. Są to trzy pola: APN, login i hasło. APN (punkt dostępu) to bardzo ważny element logiki działania GGSN: w zależności od tego, z jakiego APN zainicjowano sesję, GGSN działa w różny sposób. W wyniku pomyślnego przetworzenia żądania użytkownika GGSN powinien aktywować u siebie sesję transmisji danych i przekazać urządzeniu jej parametry, w szczególności przydzielony urządzeniu adres IP oraz adresy DNS. Warto zwrócić uwagę na kilka bardzo istotnych cech:
- W żądaniu inicjacji sesji urządzenie nigdy nie wskazuje, jaki adres IP chciałoby otrzymać;
- Oprócz pól „APN”, „login” i „hasło” ustawianych w konfiguracji urządzenia, w żądaniu do GGSN przekazywany jest również numer telefonu abonenta (MSISDN) (tutaj i dalej „abonent” oznacza użytkownika końcowego, jedno urządzenie z kartą SIM, natomiast „klient” — organizację zamawiającą usługę, w skład której wchodzą abonenci);
- Podczas aktywacji sesji GGSN tworzy w swojej tablicy routingu wpis dotyczący nowego adresu IP. Wszyscy abonenci na GGSN są oznaczani wpisami w tablicy routingu z prefiksem /32, czyli 1 abonent — 1 wpis w tablicy. GGSN to bardzo wydajny router;
- Sieć operatora może na różnych etapach (zarówno na SGSN, jak i na GGSN) z różnych powodów zmieniać pole APN w żądaniu inicjacji sesji. Pozwala to w niektórych przypadkach ograniczyć, a w innych całkowicie wyeliminować konieczność konfigurowania parametrów sieci na urządzeniach z kartą SIM.
Po pierwszych trzech punktach od razu nasuwa się pytanie: jaki adres IP jest przydzielany abonentowi?
Jest to określane przez ustawienia APN, z którego przyszedł request aktywacji sesji. Około 99% użytkowników transmisji danych w sieciach komórkowych korzysta ze standardowego dostępu do Internetu. To znane wszystkim punkty dostępu internet.mts.ru, internet.beeline.ru i tak dalej. W przypadku dostępu do Internetu GGSN przydziela adresy według klasycznej zasady DHCP z prywatnych podsieci zdefiniowanych w konfiguracji. Przy wyjściu do sieci publicznej są one ukrywane za klasycznym NAT-em, a dokładniej jego odmianą PAT.
Jednak GGSN potrafi znacznie więcej. Przy wyborze adresu IP może wysłać zapytanie AAA do serwera autoryzacji, na przykład Radius. Tę logikę konfiguruje się dla poszczególnych APN w zależności od ich przeznaczenia. Najprostszy przypadek to usługa udostępniania stałego publicznego adresu IP. Takie adresy są z reguły przypisywane abonentom w systemie billingowym operatora (BSS) i w zależności od architektury IT trafiają do odpowiedniej bazy danych, do której GGSN kieruje zapytanie. Ponieważ zna on MSISDN abonenta, czyli numer telefonu, który będzie zawarty w zapytaniu, taka baza może być dość prosta i zawierać jedynie powiązanie numeru z adresem. Dodatkowo, jeśli klient planuje używać jednej karty SIM do podłączenia kilku urządzeń (na przykład gdy karta SIM znajduje się w routerze WiFi zdalnego biura), tabela ta może zawierać również tak zwany „framed route” — prefiks sieci znajdującej się „za” kartą SIM, który będzie rozgłaszany do wszystkich urządzeń w sieci za pomocą protokołów dynamicznego routingu.
Nie samym GGSN człowiek żyje
Oprócz przydzielania adresów trzeba jeszcze dostarczyć ruch abonentów do sieci klienta, każdemu do jego własnej. Tutaj wszystko działa już znacznie bardziej tradycyjnie. Na GGSN ruch przeznaczony dla APN obsługujących VPN jest kierowany na osobny router sieci operatora (może on mieć różne nazwy, czasem jest to router VPN), który z kolei pełni funkcję klasycznego PE w schemacie L3VPN. Dodaje on niezbędne etykiety, nagłówki i całą pozostałą otoczkę, a następnie przesyła cały ten strumień ruchu przez routery sieci transportowej do wcześniej skonfigurowanych punktów styku lub tuneli prowadzących do sieci klienta. Ta część jest już znacznie bardziej standardowa i była wielokrotnie opisywana w innych źródłach, dlatego w tym materiale nie będę się na niej skupiać.
Biorąc pod uwagę wszystkie te szczegóły, sposobów organizacji mobilnego VPN może być kilka i będą się one różnić kombinacją następujących cech:
- Adresy IP, jak już opisano, mogą być przydzielane dynamicznie (za każdym razem inny adres z określonej podsieci) albo statycznie (za każdym razem ten sam adres dla konkretnego abonenta), co jest określane przez ustawienia APN i/lub ustawienia serwera Radius;
- Adresy IP mogą być przydzielane przez serwer Radius zarządzany przez operatora lub przez klienta;
- Urządzenia podłączone do mobilnego VPN mogą komunikować się wyłącznie między sobą albo mieć dostęp do standardowej sieci L3VPN klienta przez bezpośredni styk (port VPN) z operatorem lub przez tunelowanie przez sieć Internet;
- W niektórych przypadkach użycie loginu i hasła do pomyślnej aktywacji sesji może być obowiązkowe, a czasem nie trzeba nawet wypełniać pola „APN”.
Takich kombinacji z różnymi typami tunelowania, równoważeniem ruchu między kanałami dostępu do „głównego” VPN klienta oraz zasadą przydzielania adresów są już dziesiątki. W większości przypadków ogólny schemat wygląda następująco:

W efekcie po dość szybkim procesie rejestracji w sieci i uzyskaniu adresu IP urządzenie otrzymuje dostęp do sieci klienta, a sieć klienta uzyskuje dostęp do urządzenia. Jednocześnie abonent pozostaje odizolowany od wszystkich pozostałych abonentów operatora, którzy nie są powiązani z danym klientem, nie wymaga to żadnej dodatkowej konfiguracji, a cały ruch jest bezwarunkowo kierowany do sieci klienta, gdzie jest następnie przetwarzany zgodnie z wewnętrznymi politykami klienta.
Źródło: habr.com
