Proxy to pośrednik w ruchu sieciowym. Serwer, przez który przechodzą żądania, zamiast iść prosto z punktu A do punktu B. Brzmi banalnie i często tak jest traktowane: jak techniczny drobiazg, o którym myśli się dopiero, gdy strona padnie pod obciążeniem albo audytor zapyta, kto i co wypuszcza z firmowej sieci do internetu. A proxy stoi dziś pod niemal każdą poważną aplikacją webową i w każdej dobrze poukładanej sieci firmowej. W tym artykule tłumaczymy, czym proxy jest naprawdę, dlaczego forward proxy i reverse proxy to dwa zupełnie różne narzędzia, i do czego używamy ich u naszych klientów.
Spis treści
Co to jest proxy w praktyce
Kiedy Twój komputer łączy się z serwerem, normalnie robi to bezpośrednio. Wysyła żądanie, dostaje odpowiedź i koniec. Proxy wchodzi w środek tej rozmowy. Żądanie trafia najpierw do proxy, proxy przekazuje je dalej, odbiera odpowiedź i dopiero wtedy oddaje ją z powrotem do Ciebie.
Po co dokładać pośrednika tam, gdzie wszystko działa bez niego? Bo ten pośrednik widzi cały ruch i może z nim zrobić coś pożytecznego. Może go zapisać w pamięci podręcznej, żeby drugi raz nie pobierać tego samego. Może go przefiltrować i zablokować to, co nie powinno wyjść albo wejść. Może rozłożyć ruch na kilka serwerów. Może ukryć to, co stoi za nim. I może wszystko to zapisać w logach.
To jest sedno proxy: jedno miejsce, przez które przechodzi ruch, daje jeden punkt kontroli. A jeden punkt kontroli to coś, co w sieci firmowej jest na wagę złota.
Forward proxy a reverse proxy, czyli dwa różne światy
To rozróżnienie myli najwięcej osób, więc zatrzymajmy się tu na dłużej. Forward proxy i reverse proxy działają na tej samej zasadzie pośrednika, ale stoją po przeciwnych stronach i rozwiązują inne problemy problemy.
Forward proxy stoi po stronie klienta. Pracownicy w firmie nie łączą się z internetem bezpośrednio, tylko przez forward proxy. To proxy decyduje, dokąd ich puścić, co zalogować i co zablokować. Z perspektywy serwerów w internecie cały ruch wygląda, jakby wychodził z jednego adresu. Wychodzi z proxy, a nie z setki pojedynczych komputerów. Forward proxy chroni i kontroluje tych, którzy wychodzą na zewnątrz.
Reverse proxy stoi po stronie serwera. Użytkownicy z internetu nie łączą się bezpośrednio z Twoją aplikacją, tylko z reverse proxy, który stoi przed nią. To proxy odbiera ruch z zewnątrz, decyduje, do którego serwera go skierować, i dopiero wtedy przekazuje go dalej, w głąb Twojej infrastruktury. Reverse proxy chroni i odciąża to, co stoi za nim.
Najprościej zapamiętać tak: forward proxy reprezentuje klientów wobec internetu, reverse proxy reprezentuje serwery wobec internetu. Jedno pilnuje ruchu wychodzącego, drugie przychodzącego. To nie są dwie wersje tego samego, to dwa różne narzędzia do dwóch różnych zadań.
Rodzaje proxy
Pod hasłem “proxy” kryje się kilka wariantów, które warto znać i rozróżniać.
Transparent proxy (proxy przezroczyste)
Działa bez wiedzy użytkownika. Ruch jest przekierowywany na proxy automatycznie, na poziomie sieci, bez konfigurowania czegokolwiek na komputerze pracownika. Wygodne do wdrożenia w dużej firmie, bo nie wymaga ustawień na każdym urządzeniu. Wadą jest właśnie ta niewidoczność, użytkownik nie wie, że jego ruch jest pośredniczony.
Proxy HTTP i HTTPS
Najpopularniejszy typ, obsługuje ruch webowy. Proxy HTTP widzi treść żądań, więc może je filtrować i cachować (cachować, czyli zapisywać u siebie kopię, żeby nie pobierać tego samego za każdym razem od nowa). Przy HTTPS sprawa jest trudniejsza, bo ruch jest zaszyfrowany. Żeby proxy mogło zajrzeć do środka, musi przeprowadzić tak zwaną inspekcję SSL, czyli rozszyfrować ruch, sprawdzić go i zaszyfrować ponownie. Bez inspekcji SSL przy HTTPS proxy widzi wyłącznie zaszyfrowany strumień i nie może ani filtrować treści, ani skanować pobieranych plików. To potężne narzędzie kontroli, ale ingeruje w szyfrowanie, więc trzeba je wdrażać świadomie i zgodnie z prawem oraz polityką firmy.
Proxy SOCKS
Działa niżej, nie zna treści ruchu, po prostu przepuszcza pakiety danych. Dzięki temu obsługuje dowolny protokół (protokół, czyli ustalony sposób, w jaki programy porozumiewają się w sieci), nie tylko web. Bardziej uniwersalny, ale daje mniej możliwości filtrowania treści, bo tej treści nie analizuje.
Proxy anonimizujące
Ukrywa prawdziwy adres IP klienta. Z tej kategorii korzysta się w bardzo różnych celach, od testowania, jak strona wygląda z innego kraju, po zwykłe ukrycie tożsamości. To akurat ta twarz proxy, którą zna każdy korzystający z prywatnego internetu, ale w firmowej infrastrukturze to margines.
Do czego firmy używają forward proxy
W sieci firmowej forward proxy to nie ciekawostka, to narzędzie kontroli ruchu wychodzącego. Najczęstsze zastosowania:
- Kontrola dostępu i filtrowanie treści. Proxy decyduje, dokąd pracownicy mogą wejść, a dokąd nie. Blokowanie konkretnych kategorii stron, znanych domen z malware (malware, czyli złośliwym oprogramowaniem), serwisów niezwiązanych z pracą. Wszystko w jednym miejscu, zamiast ustawiać to na każdym komputerze osobno.
- Skanowanie antywirusowe w locie. Kiedy pracownik pobiera plik z internetu przez proxy, proxy może przeskanować ten plik antywirusem, zanim odda go użytkownikowi. Jeśli okaże się zainfekowany, po prostu nie trafia na komputer pracownika. Antywirus nie pojawia się tam jednak sam z siebie, musi go doinstalować administrator. W rozwiązaniach open-source jest to na przykład ClamAV, a w sprzęcie komercyjnym, na przykład na firewallach Hillstone, silnik producenta. Przy ruchu HTTPS skanowanie wymaga inspekcji SSL, bo bez niej proxy widzi tylko zaszyfrowany strumień.
- Logowanie i monitoring ruchu. Kto, kiedy i dokąd wychodził z firmowej sieci. To bywa kluczowe przy audytach i przy analizie incydentu, kiedy trzeba odtworzyć, co się działo. Bez tego rekonstrukcja zdarzenia jest zgadywanką.
- Caching, czyli pamięć podręczna. Jeśli wielu pracowników pobiera te same pliki czy coś aktualizacje, proxy może przechować je u siebie i nie ściągać za każdym razem od nowa. Mniejsze obciążenie łącza, szybszy dostęp.
- Ochrona przed wyciekiem danych. Forward proxy może być punktem, w którym wpina się mechanizmy DLP (Data Loss Prevention), kontrolujące, czy z firmy nie wypływa coś, co wypływać nie powinno.
W naszych wdrożeniach forward proxy rzadko działa samotnie. Najczęściej jest elementem szerszej warstwy zabezpieczeń sieciowych, obok firewalla i systemów filtrowania. To wtedy ma sens, kiedy ruch wychodzący jest naprawdę kontrolowany, a nie tylko teoretycznie przepuszczany przez pośrednika.
Reverse proxy, koń roboczy nowoczesnych aplikacji
Tu robi się ciekawie, bo reverse proxy to dziś fundament niemal każdej poważnej aplikacji webowej. Jeśli korzystasz z dowolnego większego serwisu internetowego, prawie na pewno Twój ruch przechodzi przez reverse proxy, zanim dotrze do właściwej aplikacji. Co takiego robi:
Load balancing, czyli równoważenie obciążenia
To zastosowanie, czyli load balancing, bywa mylone z buforowaniem, a to dwie różne rzeczy. Reverse proxy stojący przed kilkoma serwerami aplikacyjnymi rozdziela ruch między nie. Jeden serwer nie musi udźwignąć wszystkiego, a jeśli któryś padnie, proxy przestaje go używać i kieruje ruch do działających. To podstawa wysokiej dostępności, o której piszemy szerzej przy projektowaniu sieci wysokodostępnych.
Terminacja SSL/TLS (zdjęcie szyfrowania z połączenia)
Szyfrowanie i deszyfrowanie ruchu kosztuje moc obliczeniową. Reverse proxy może wziąć to zadanie na siebie: odbiera zaszyfrowane połączenie z zewnątrz, rozszyfrowuje je i przekazuje dalej do serwerów aplikacyjnych już bez tego obciążenia. Certyfikaty zarządzane są w jednym miejscu, a nie na każdym serwerze osobno.
Caching odpowiedzi
Jeśli wielu użytkowników prosi o tę samą treść, reverse proxy może ją przechować i oddawać z pamięci, zamiast męczyć tym aplikację za każdym razem. Mniej pracy dla serwerów, szybsza odpowiedź dla użytkownika.
Ukrycie i ochrona infrastruktury
Świat zewnętrzny widzi tylko reverse proxy. Nie wie, ile serwerów stoi za nim, jak są poukładane ani jakie mają adresy. To utrudnia atak, bo napastnik nie widzi prawdziwej topologii (topologii, czyli układu i liczby serwerów oraz tego, jak są połączone). Na tej samej warstwie wpina się często WAF (Web Application Firewall), filtrujący złośliwe żądania, zanim w ogóle dotrą do aplikacji.
W praktyce najczęściej spotykane reverse proxy to nginx, HAProxy, Traefik i Envoy. Każde ma swój charakter: nginx jest uniwersalny i wszechobecny, HAProxy słynie z wydajności przy load balancingu, Traefik dobrze czuje się w środowiskach kontenerowych (więcej o konteneryzacji, czyli pakowaniu aplikacji w lekkie, odizolowane paczki), Envoy jest sercem wielu architektur mikroserwisowych (mikroserwisowych, czyli złożonych z wielu małych, niezależnych usług zamiast jednej dużej aplikacji). Wybór nie jest kwestią mody, tylko tego, co konkretnie ma robić i w jakim środowisku ma stać.
Proxy a bezpieczeństwo, NIS2 i Zero Trust
Tu proxy przestaje być wygodą, a staje się elementem strategii bezpieczeństwa.
Dyrektywa NIS2 wymaga od firm objętych jej zakresem realnej kontroli nad ruchem sieciowym, zdolności wykrywania incydentów i odtwarzania ich przebiegu. Proxy, zwłaszcza forward proxy z porządnym logowaniem, jest jednym z miejsc, w których ta kontrola fizycznie się dzieje. Jeśli nie wiesz, co wychodzi z Twojej sieci, trudno mówić o spełnieniu tych wymagań. Pisaliśmy o tym szerzej w tekście o tym, jak przygotować się do NIS2.
W modelu Zero Trust proxy gra jeszcze ważniejszą rolę. Zero Trust zakłada, że nie ufamy żadnemu połączeniu z automatu, nawet wewnątrz sieci. Każdy ruch musi być sprawdzony i autoryzowany. Reverse proxy stojący przed aplikacją to naturalny punkt, w którym taką weryfikację się wymusza: zanim ktokolwiek dostanie się do aplikacji, proxy sprawdza, kim jest i czy ma prawo. Bez takiego punktu kontroli Zero Trust pozostaje hasłem na slajdzie.
Co ważne, samo postawienie proxy niczego nie załatwia. Proxy, którego logi nikt nie czyta, i reverse proxy bez aktualnych reguł to fałszywe poczucie bezpieczeństwa. Dlatego u nas proxy zawsze idzie w parze z monitoringiem i analizą działania infrastruktury. Pośrednik, który widzi wszystko, ma sens tylko wtedy, gdy ktoś rzeczywiście na to patrzy.
Proxy a VPN, najczęstsze mylone pojęcia
Te dwa pojęcia mylą się notorycznie, bo oba “ukrywają adres IP” i “pośredniczą w ruchu”. Różnica jest jednak zasadnicza.
Proxy działa zwykle na poziomie konkretnej aplikacji albo protokołu. Ustawiasz przeglądarkę, żeby chodziła przez proxy, i to ten ruch idzie przez pośrednika. Reszta zostaje bez zmian. Proxy zazwyczaj nie szyfruje samego połączenia, jedynie je przekazuje.
VPN tworzy zaszyfrowany tunel dla całego ruchu urządzenia, niezależnie od aplikacji. Wszystko, co wychodzi z komputera, idzie tym tunelem i jest zaszyfrowane. To grubsze narzędzie, działające na niższym poziomie.
W skrócie: proxy to pośrednik dla wybranego ruchu, VPN to zaszyfrowany tunel dla całości. Do kontroli i filtrowania ruchu webowego w firmie sięgamy po proxy. Do bezpiecznego, zaszyfrowanego dostępu zdalnego do firmowych zasobów, po VPN. To nie konkurenci, tylko narzędzia do różnych zadań, które często współistnieją w tej samej sieci.
Najczęstsze błędy przy wdrażaniu proxy
- Proxy, którego logów nikt nie czyta. Logowanie ruchu bez analizy to tylko zapełniający się dysk. Wartość proxy bierze się z tego, że ktoś faktycznie na te dane patrzy, ręcznie albo przez system monitoringu.
- Reverse proxy bez aktualizacji i reguł. Postawione raz i zapomniane reverse proxy z czasem staje się słabym punktem zamiast tarczy. Reguły WAF, certyfikaty i sam software trzeba utrzymywać.
- Inspekcja SSL wdrożona po cichu. Rozszyfrowywanie ruchu pracowników ma realne konsekwencje prawne i etyczne. To trzeba zrobić świadomie, z polityką i informacją, a nie ukradkiem.
- Pojedynczy proxy jako pojedynczy punkt awarii. Jeśli cały ruch idzie przez jedno proxy, a ono padnie, pada wszystko. Przy ruchu krytycznym proxy też musi być zaprojektowane jako wysokodostępne.
- Mylenie proxy z firewallem. To uzupełniające się warstwy, nie zamienniki. Firewall decyduje, czy połączenie w ogóle przepuścić. Proxy pośredniczy i analizuje to, co przepuszczone. Dobra sieć ma jedno i drugie.
Podsumowanie
Proxy to jeden z tych elementów infrastruktury, które działają najlepiej, kiedy nikt o nich nie myśli. Forward proxy cicho pilnuje, co wychodzi z firmowej sieci. Reverse proxy cicho rozkłada ruch, terminuje szyfrowanie i osłania aplikacje od frontu. Oba sprowadzają się do tej samej idei: jeden punkt, przez który przechodzi ruch, daje jeden punkt kontroli.
Jeśli masz zapamiętać z tego artykułu jedną rzecz, niech to będzie rozróżnienie forward i reverse proxy. Pierwsze chroni tych, którzy wychodzą. Drugie chroni to, do czego się wchodzi. Pomylenie tych dwóch to najczęstsze nieporozumienie wokół proxy i źródło wielu źle zaprojektowanych sieci.
A sama obecność proxy niczego nie gwarantuje. Proxy, którego nikt nie monitoruje, to nie warstwa bezpieczeństwa, to tylko kolejny serwer, który może paść w piątek wieczorem.
Chcesz uporządkować ruch sieciowy w swojej firmie, wdrożyć reverse proxy pod aplikacje albo zapanować nad tym, co wychodzi do internetu? Skontaktuj się z nami, zaprojektujemy rozwiązanie dopasowane do Twojej infrastruktury i wymagań, także tych wynikających z NIS2.