W piątek opublikowałem wpis o prostej i skutecznej geolokalizacja użytkownika (GeoIP) strony internetowej z(a) pomocą Cloudflare, a wczoraj w swoim komentarzu SpeX pyta, jak można obejść tego typu regionalne ograniczenia.

Z racji tego, że ten temat znajduje się na mojej liście tematów do opisania postanowiłem ponownie zrobić małe przetasowanie w ich kolejności, dzięki czemu odpowiedź na zadane pytanie pojawi się już teraz, w formie kolejnego wpisu…

Ograniczenia regionalne, np. na stronach internetowych

Zacznę od tego, że właściwie żadne ograniczenie – w tym ograniczenie związane z (geo)lokalizacją użytkownika –  nie jest skuteczne w 100%, tak samo jak zawsze można próbować wyłapać osoby próbujące je obejść, choćby za pomocą dodatkowych elementów weryfikacyjnych, jak np. karta płatnicza.

Ale dziś chciałbym się skupić na ominięciu zabezpieczeń/ograniczeń związanych z geolokalizacją użytkownika na podstawie jego adresu IP (chyba najpopularniejsze) od strony technicznej.

Zacznę od przytoczenia treści komentarza o którym już wspominałem:

A jak ominąć takie taką geolokalizację? Chodzi mi o przykład gdy sklep PL jest pod adresem pl.domena.com, a reszta świata jest obsługiwana przez en.domena.com. A ja jestem gdzieś na świecie, i chcę zrobić zamówienie w sklepie PL.

Pierwsze rozwiązanie jaki mi się nasuwa w takiej sytuacji, to po prostu ręcznie zmienić w sklepie internetowym lokalizację, co spora część serwisów/sklepów umożliwia.

Jeśli jednak trafimy na taki sklep (lub inny serwis, np. streamingowy), który świadomie narzuca tego typu ograniczenia, i nie ma możliwości ręcznej „korekty” (np. poprzez pozycję w menu, czy zmianę adresu pod który nas błędnie skierowano) to nie pozostaje nam nic innego jak skorzystanie z opcji dla bardziej zaawansowanych użytkowników…

Serwer VPN

Chyba najskuteczniejszym rozwiązaniem jest skorzystanie z serwera VPNa, który możemy uruchomić u siebie w domu (np. na Raspberry Pi), dzięki czemu niezależnie gdzie byśmy fizycznie się znajdowali, zawsze możemy być widoczni w internecie tak, jakbyśmy łączyli się z naszego domu.

Często jednak korzysta się – zwłaszcza np. w Polsce – z VPNa nie po to by będąc „gdzieś w świecie” udawać, że łączymy się z domu, co będąc w Polsce udawać, że łączymy się z daną stroną np. z Anglii, czy USA, dzięki czemu możemy uzyskać dostęp do treści (i usług) dostępnych tylko na danym rynku (np. korzystać z serwisu Netflix, który do niedawna nie był u nas dostępny, a i teraz – gdy jest dostępny to oferta dostępna na naszym rynku jest tylko cieniem tej dostępnej np. w USA).

W takim przypadku to z domu będziemy się łączyć ze zdalnym VPNem, znajdującym się (na podstawie adresu IP) w wybranym kraju.

I choć można w takiej sytuacji skorzystać z wyspecjalizowanych usług VPN, to ja preferuje poświęcić troszkę więcej czasu na podstawowe skonfigurowanie serwera VPS, co kosztowo wychodzi podobnie, a mamy dużo większą swobodę działania.

Tu mogę polecić m.in. serwery DigitalOcean, gdzie macie do dyspozycji kilkanaście lokalizacji rozsianych po całym świecie, a zarazem w każdej chwili w kilka(naście) minut możecie przenieść swój serwer z jednej lokalizacji do innej – zależnie od aktualnych potrzeb.

A jeśli założycie konto z tego linku otrzymacie dodatkowe 10 $, co pozwoli na korzystanie z najmniejszego serwera przez 2 miesiące (a nawet więcej, jeśli nie będzie aktywny cały czas).

Tunel SSH

O ile z połączenia VPN korzystam zazwyczaj by puszczać przez to połączenie cały ruch (zazwyczaj na potrzeby lokalnej pracy ze zdalnej lokalizacji) to w sytuacji gdy chcemy zmodyfikować np. tylko ruch w ramach wybranej przeglądarki internetowej wystarczy nam zwykłe połączenie SSH, w ramach którego stworzymy na swoje potrzeby tunel, który pozwoli na uzyskanie w przeglądarce innego adresu IP niż faktycznie jest nam przypisany (rozwiązanie wykorzystywane też dość często przez niektórych pracowników w firmach, by obejść ograniczenia nałożone przez administratorów, np. z blokowaniem dostępu do niektórych stron).

W tym przypadku podobnie jak to miało miejsce powyżej (z serwerem VPN) możemy wykorzystać komputer (lub np. Raspberry Pi) znajdujący się w domu (symulowanie połączenia z domu), lub np. serwer VPS w zdalnej lokalizacji (symulowanie połączenia z innej lokalizacji), z tym, że tym razem wystarczy sama usługa SSH, nie ma potrzeby stawiania na zdalnym urządzeniu serwera VPN.

Zakładam, że wiecie jak połączyć się po SSH ze zdalną maszyną, i tylko pokażę (standardowo na przykładzie programu PuTTY) dodatkowy element konfiguracji, który jest niezbędny do zestawienia tunelu.

Ustawienia tunelu w PuTTY

W programie PuTTY wczytujemy wybrane połączenie, i na liście opcji (ułatwień) wybieramy kolejno:

Connection -> SSH -> Tunnels:

putty_ssh_tunel01

W tym oknie ustawiamy parametry jak na zrzucie powyżej:

  • Source port: 8080 (można dać inny port)
  • Dynamic
  • Auto

I klikamy „add”, co spowoduje dodanie w polu „forwarded ports” wpisu „D8080”, i to tyle jeśli chodzi o konfigurację PuTTY – wystarczy zapisać ustawienia i połączyć się z VPSem jak zawsze…

Ustawienia proxy w przeglądarce internetowej

Gdy mamy już połączenie (i jesteśmy zalogowani) z naszym serwerem VPS uruchamiamy przeglądarkę internetową, np. Firefoxa, i:

  • Narzędzia -> Opcje -> Zaawansowane -> Sieć: Połączenie -> Ustawienia:

firefox_ustawienia_siec_proxy_socks01

Ręczna konfiguracja serwerów Proxy:

  • Host SOCKS: 127.0.0.1
  • Port: 8080 (lub inny, ustawiony wcześniej w PuTTY port)

I to wszystko – tunel, czyli nasze proxy jest aktywne tak długo, jak aktywne jest połączenie SSH.

X11, VNC

Pewną alternatywą może być też wykorzystanie zdalnego serwera (VPS, Raspberry Pi, inny komputer) jako serwera VNC (pulpit zdalny) czy korzystając z protokołu X11 uruchomienie lokalnie okna przeglądarki wprost ze zdalnego komputera.

Oba rozwiązania powinny spełnić swoje zadanie, choć akurat w tym konkretnym celu raczej z nich nie korzystam – VPN lub tunel SSH wydają się lepiej spełniać to zadanie…

Web Proxy

Kolejną metodą – z której korzystam naprawdę rzadko, zazwyczaj jak potrzebuje coś na szybko, i nie mam innej możliwości – jest skorzystanie z różnych serwisów typu proxy. Macie do dyspozycji zarówno rozbudowane usługi tego typu, działające jako pełne proxy (coś jak tunel SSH, ale bez konieczności posiadania własnego urządzenia/serwera w zdalnej lokalizacji, coś jak np. Opera VPN) po serwisy które działają w ramach przeglądarki internetowej, jako swego rodzaju łącznik między Wami a stroną docelową (skuteczność tego typu rozwiązań jest różna, i wiele zależy od zastosowanych w serwisie docelowym rozwiązań).

(!) Zgłoś błąd na stronie | Lub postaw nam kawę :-)
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk