Jump serwer, znany również jako bastion host, to specjalnie zabezpieczony system, który umożliwia dostęp do zasobów w odseparowanych strefach sieciowych. Jego rola w nowoczesnej architekturze cyberbezpieczeństwa jest przydatna, ponieważ umożliwia kontrolę i monitorowanie ruchu między strefami o różnym poziomie uprawnień, co pomaga chronić krytyczne dane przed nieautoryzowanym dostępem.
W artykule przyjrzymy się dokładniej architekturze jump serwer, jego funkcjom, oraz najlepszym praktykom wdrożeniowym, prezentując także rozwiązanie Syteca (dawniej Ekran System) jako przykład narzędzia, które może być wdrożone w schemacie ze wspomnianym serwerem przesiadkowym.
Spis treści
Historia powstania serwerów skokowych – cele i założenia
Jump serwery pojawiły się na przełomie lat 90., gdy coraz większe organizacje zaczęły dostrzegać potrzebę zabezpieczenia swoich sieci poprzez oddzielenie stref o różnym poziomie dostępu. Początkowo jump serwery służyły głównie administratorom IT do bezpiecznego zarządzania zdalnymi serwerami i sieciami. Z biegiem lat ich rola ewoluowała, zaś dzisiejsze jump serwery pełnią już role znacznie bardziej złożone, oferując zaawansowane metody uwierzytelniania i kontrolę dostępu, które wnoszą cyberbezpieczeństwo na nowy poziom.
Głównym celem serwerów przesiadkowych jest zapewnienie bezpiecznego i kontrolowanego dostępu do segmentów sieci o zróżnicowanych poziomach zaufania. Stają się one punktem pośrednim między zewnętrznymi użytkownikami a wrażliwymi zasobami wewnętrznymi, eliminując bezpośrednie połączenia i zmniejszając ryzyko ataków. To rozwiązanie jest często stosowane w infrastrukturze krytycznej, gdzie wymagana jest wysoka izolacja i zaawansowane mechanizmy kontroli.
Obecnie jump serwery mogą być ważnym elementem infrastruktury IT – szczególnie w przypadku dużych organizacji, a także w takich branżach jak finanse, ochrona zdrowia czy administracja publiczna. Umożliwiają one bezpieczne zarządzanie serwerami, bazami danych, aplikacjami, a także przeprowadzanie operacji administracyjnych w środowiskach wielostrefowych. Korzystanie z jump serwerów staje się jednak kluczowe także w mniejszych organizacjach, które obsługują dane o wysokim poziomie poufności i muszą spełniać surowe wymagania regulacyjne.
Architektura Jump Server – podstawowe komponenty
Architektura Jump Server jest wielowarstwowa – składa się z licznych elementów zapewniających kontrolowany, monitorowany i bezpieczny dostęp do zasobów wewnętrznych.
Serwer pośredniczący
To centralny punkt architektury, który pośredniczy w połączeniach pomiędzy użytkownikami a zasobami docelowymi. Działa zazwyczaj w izolowanej, ograniczonej sieci – “strefie DMZ” (strefa zdemilitaryzowana) pomiędzy siecią zewnętrzną, np. Internetem a siecią wewnętrzną, aby zapewnić dodatkowy poziom ochrony. Posiada minimalną liczbę otwartych portów oraz zainstalowane ograniczone oprogramowanie w celu zmniejszania powierzchni ataku.
Moduł autoryzacji i uwierzytelniania
Moduł autoryzacji to kluczowy element, który zapewnia, że tylko uprawnieni użytkownicy mogą uzyskać dostęp do Jump Servera. Może on integrować się z zewnętrznymi systemami uwierzytelniania, takimi jak LDAP, Active Directory, czy systemy Single Sign-On (SSO). Często wykorzystuje dwuetapowe uwierzytelnianie (2FA/MFA), co zwiększa poziom bezpieczeństwa.
Zasady kontroli dostępu (RBAC)
Mechanizm Role-Based Access Control (RBAC), czyli zasady kontroli dostępu oparte na rolach pozwalają na przypisanie odpowiednich uprawnień do użytkowników lub grup na podstawie ich ról w organizacji, co z kolei pozwala na precyzyjne określenie, które zasoby i komendy są dostępne dla poszczególnych użytkowników. Dzięki temu możliwe jest zarządzanie dostępem według zasady najmniejszych uprawnień (Principle of Least Privilege).
Przykładowo, deweloper może otrzymać dostęp tylko do środowisk testowych, podczas gdy administrator także do zasobów produkcyjnych. Korzyści z tej funkcjonalności płyną jednak nie tylko dla inżynierów. Kolejnym przykładem mogą być księgowi łączący się do oprogramowania znajdującego się na jednym hoście w firmie – nigdzie indziej nie będą mieć dostępu.
Monitorowanie i logowanie aktywności użytkownika
Kluczowym aspektem zarządzania Jump Serverem jest monitorowanie i logowanie aktywności użytkowników. Rejestrowanie sesji użytkowników, komend, transferów plików oraz innych działań jest niezbędne w kontekście audytów i analiz bezpieczeństwa. Logi powinny być bezpiecznie przechowywane i przesyłane do zewnętrznych systemów monitorujących, takich jak syslog, aby umożliwić ich dalszą analizę. Narzędzia takie jak auditd lub Osquery pozwalają na logowanie szczegółowych aktywności w systemie operacyjnym.
Zarządzanie sesjami i izolacja połączeń
Jump Server pozwala na izolację sesji użytkowników i ogranicza bezpośrednie połączenia z systemami docelowymi. Izolację tę można wdrożyć za pomocą konfiguracji serwera jako proxy lub VPN, co wymusza pośrednictwo Jump Servera we wszystkich połączeniach. Mechanizm ten pomaga uniknąć przypadkowego ominięcia Jump Servera, zwiększając bezpieczeństwo sieci.
Integracja z systemami SIEM
System SIEM (Security Information and Event Management) konsoliduje logi z wielu źródeł, umożliwiając analizę danych w celu wykrycia nietypowych aktywności oraz zagrożeń. Logi z Jump Servera można przesyłać do systemów SIEM (np. Splunk, ELK Stack, QRadar), co pozwala na analizę w czasie rzeczywistym i tworzenie alertów bezpieczeństwa. Integracja ta zwiększa możliwości monitorowania, identyfikując anomalia, takie jak częste próby logowania, nieautoryzowane działania czy niespodziewane transfery plików. *Jeśli chcesz poznać przykład rozwiązania klasy SIEM oraz SOAR zapoznaj się z narzędziem Logsign.
Jump Server – najlepsze praktyki bezpieczeństwa przy wdrażaniu
Aby serwer przesiadkowy działał z zapewnieniem maksymalnego możliwego bezpieczeństwa, warto stosować się do określonego zestawu rekomendacji, które pozwolą na swobodniejsze zarządzanie bezpieczeństwem.
- Ograniczenie dostępu sieciowego
Użyj firewalli i ACL, aby ograniczyć dostęp do jump serwera tylko dla wybranych adresów IP lub sieci. Umieść jump serwer w strefie DMZ, aby odizolować go od krytycznych zasobów wewnętrznych.
Przykład zastosowania:
Mamy do dyspozycji serwer przesiadkowy, który jest ukryty za VPN-em. Wewnątrz sieci VPN, jak i na zewnątrz wszystkie porty dostępowe są zablokowane, oprócz poszczególnych portów łączących się na linii pomiędzy Jump Server a hostami docelowymi. W takiej sytuacji jesteśmy w stanie jeszcze skuteczniej zabezpieczyć się przed nieautoryzowanym dostępem do istotnych elementów infrastruktury firmy.
- Silne uwierzytelnianie wieloskładnikowe (MFA)
Stosuj MFA (np. tokeny sprzętowe, aplikacje uwierzytelniające), aby zapewnić bezpieczny dostęp do jump serwera.
- Zasada najmniejszych uprawnień (Least Privilege)
Użytkownicy powinni mieć dostęp jedynie do zasobów niezbędnych do wykonywania swoich obowiązków. Mechanizm RBAC pozwala przypisywać role i uprawnienia, upraszczając zarządzanie dostępem.
- Regularna rotacja kluczy i haseł
Regularnie zmieniaj klucze SSH i hasła użytkowników, aby zmniejszyć ryzyko nieautoryzowanego dostępu. Usuwaj przeterminowane klucze.
Twórz zestawy kluczy SSH, by uzyskiwać klucze publiczne i prywatne. W przypadku zgodności prywatnych i publicznych kluczy SSH, możesz logować się bez konieczności podawania hasła – korzystając z kryptografii.
- Monitorowanie i rejestrowanie aktywności użytkowników
Stale monitoruj i loguj działania użytkowników, przekazując logi do centralnego systemu monitorowania, by umożliwiać wykrywanie nieprawidłowości.
- Izolacja sesji i ograniczenie czasu połączeń
Izoluj sesje przez serwer proxy, aby wymusić pośrednictwo jump serwera we wszystkich połączeniach. Ustal limit czasowy dla sesji, aby minimalizować ryzyko pozostawienia otwartych połączeń.
W pliku konfiguracyjnym sshd_config
można ustawić długość czasu sesji SSH, aby ograniczyć maksymalny czas połączenia użytkownika. Istnieją dwie główne opcje do tego celu:
- ClientAliveInterval 0 – określa czas w sekundach, po którym serwer SSH wysyła zapytanie do klienta, aby sprawdzić, czy połączenie jest aktywne. Jeśli klient nie odpowie, połączenie zostanie zakończone.
Przykład: Ustawi to zapytanie co 5 minut (300 sekund). - ClientAliveCountMax 3 – określa maksymalną liczbę zapytań wysłanych przez serwer SSH do klienta, zanim zamknie połączenie, jeśli klient nie odpowiada.
Przykład: Razem z powyższym przykłademClientAliveInterval
na 300 sekund, połączenie zostanie zamknięte po około 15 minutach (300 sekund × 3), jeśli klient nie odpowie.
Jeśli chcesz ustawić maksymalną długość sesji niezależnie od aktywności, możesz rozważyć użycie opcji ForceCommand lub skryptów, ale powyższe opcje ClientAliveInterval
i ClientAliveCountMax
są najbardziej standardowym sposobem na zarządzanie długością sesji w SSH.
plaintextSkopiuj kodClientAliveCountMax 3
plaintextSkopiuj kodClientAliveCountMax <liczba>
plaintextSkopiuj kodClientAliveInterval 300
plaintextSkopiuj kodClientAliveInterval <sekundy>
- Aktualizacje systemowe i testy bezpieczeństwa
Regularnie aktualizuj system i przeprowadzaj testy penetracyjne, aby na bieżąco eliminować potencjalne luki w zabezpieczeniach.
- Zarządzanie kluczami i certyfikatami
Stosuj centralne zarządzanie kluczami i certyfikatami, aby uniknąć wycieków oraz uprościć rotację w razie zagrożenia.
Syteca by Ekran System – oprogramowanie o różnych modelach wdrożenia
Rozwiązanie do monitorowania komputerów pracowników Syteca (dawniej Ekran System), jako agentowe oprogramowanie On-Premises, wspiera różne modele wdrożenia. Dostępne jest także w wersji Syteca SaaS – wdrażane lokalnie bądź w środowiskach hybrydowych.
Poznaj opcje Syteca z różnymi schematami wdrożenia
Infrastruktura z wykorzystaniem Jump Servera
Syteca w wersji On-Premises to opcja, która pozwala na instalację agenta Syteca Terminal Server na serwerze przesiadkowym, aby monitorować wszystkie sesje, które przez niego przechodzą. Dzięki temu możliwe jest rejestrowanie sesji lokalnych i sesji RDP wszystkich równolegle zalogowanych użytkowników. Jeśli zajdzie potrzeba, możesz także zarządzać dostępem do endpointów w twoim chronionym obszarze, używając zestawu narzędzi PAM.
Standardowy scenariusz zastosowania i wdrożenia Syteca z Jump Serwerem
Funkcje związane ze świadomym zarządzaniem dostępem są między innymi dostępne dzięki zastosowaniu Jump Servera, który pozwala na znaczne podniesienie bezpieczeństwa infrastruktury firmy wydzielając obszar, do którego mają dostęp tylko określeni użytkownicy.
Działanie Jump Server w przypadku Syteca
Wdrożenie Syteca na serwerze przesiadkowym pozwala na wyznaczenie tzw. serwera kontrolnego, gdzie użytkownicy logują się w pierwszej kolejności. Po przejściu uwierzytelnienia – często dwuskładnikowego
– mogą przechodzić na inne serwery bez podawania danych logowania. Jest za to odpowiedzialna funkcja Password Managera, dzięki której poświadczenia logowania przekazywane są w tle, zaś użytkownicy mogą zalogować się tylko do serwerów, do których mają przypisany dostęp.
Jump Server – dlaczego to najlepsze rozwiązanie w przypadku monitorowania firm zewnętrznych?
Rozwiązanie jakim jest serwer przesiadkowy, przynosi jedną z kluczowych korzyści firmie, dla której świadczone są usługi outsourcingowe. Jump Sever pozwala ominąć konieczność podawania pracownikom zewnętrznym poświadczeń do serwera docelowego, a także umożliwia przyznanie im ograniczonego dostępu – jedynie do miejsc, które zostaną wcześniej wyznaczone przez administratora. Dzięki temu, firma zabezpiecza się przed potencjalnymi atakami wewnętrznymi ze strony użytkowników trzecich. Rozwiązanie to zapewnia także płynność pracy firmom zewnętrznym, które logują się do infrastruktury firmy.
Schemat wdrożenia Ekran System z użyciem Serwera przesiadkowego
Rejestrowanie sesji z poziomu serwera przesiadkowego
Nie ma konieczności, by Agent Syteca znajdował się na poszczególnych urządzeniach infrastruktury IT. Wystarczy jeden agent znajdujący się na serwerze głównym (Jump Sever), skąd monitorowane są sesje wszystkich urządzeń w obrębie sieci firmowej. Syteca rejestruje informacje o aktywności użytkownika, kliknięte klawisze i nagrywa ekran komputera.
Monitoring z poziomu serwera przesiadkowego, zakładając, że agent został zainstalowany wyłącznie na nim, nie pozwoli na rejestrację wszystkich metadanych, danych z hostów, nazw odwiedzanych stron czy aplikacji, z których korzysta użytkownik. Stanowi to pewne ograniczenie na tle podstawowego schematu wdrożeniowego Syteca. Z tego powodu, umieszczanie Agenta Syteca zalecane jest na urządzeniach, na których pracuje się przykładowo z krytycznymi informacjami. Dzięki temu uzyskany zostaje kompromis między kompleksową ochroną zasobów firmowych a oszczędnością kosztów.
W praktyce jednak – we wdrożeniu z serwerem przesiadkowym, wystarczy jeden agent, aby monitorować pracowników w całej firmie oraz zapewnić płynność pracy.
Jump Server pomaga przedsiębiorstwom w przestrzeganiu przepisów dotyczących zgodności oraz prowadzeniu szczegółowych dzienników kontroli. Rozwiązanie umożliwia również administratorom wytyczenie bezpiecznej granicy wokół zasobów IT. Biorąc pod uwagę bezpieczeństwo i zarządzanie infrastrukturą, wdrożenie serwera przesiadkowego do monitorowania firm zewnętrznych jest najlepszym podejściem.
Jak skonfigurować Syteca Jump Server, aby wszystkie połączenia SSH były rejestrowane?
Podczas tunelowania SSH przez Jump Server, nie jest otwierane żadne nowe połączenie SSH z serwera przesiadkowego do hosta docelowego. Zamiast tego Jump Server przekazuje połączenie TCP do hosta docelowego. Co więcej, ruch w tunelu jest szyfrowany/deszyfrowany przez punkty końcowe w łańcuchu, więc pośredni serwer przesiadkowy przekazuje zaszyfrowane dane. Dzieje się tak zarówno podczas otwierania sesji z parametrem -J, jak i konfigurowania sshd_config do połączeń proxy. Dlatego w tych przypadkach sesje mogą być monitorowane tylko wtedy, gdy Syteca jest zainstalowana na hoście docelowym.
Aby zapobiec opisanemu tunelowaniu połączeń, które nie mogą być monitorowane przez Syteca na hoście, istnieje możliwość skonfigurowania pliku sshd_config na serwerze docelowym, określając następujące elementy:
- AllowAgentForwarding no
- AllowTcpForwarding no
- PermitTunnel no
W każdym przypadku, jeśli połączenie z serwerem przesiadkowym zostanie otwarte za pomocą ssh -tt jumpHost ssh -tt targetHost, wówczas Syteca zainstalowana na Jump Serverze zarejestruje nowe połączenie i będzie monitorować jego dane wyjściowe.
Podsumowanie
Dzięki skomplikowanej, wielowarstwowej architekturze, Jump Serwery pełnią obecnie różnorodne funkcje – od pośrednictwa w połączeniach, przez uwierzytelnianie i autoryzację użytkowników, aż po szczegółowe rejestrowanie ich aktywności.
Wdrażanie rozwiązań w modelu z Jump Serwerem minimalizuje zagrożenia wyciekiem danych czy atakiem na infrastrukturę. Ponadto, firmy, które decydują się na wdrożenie takich narzędzi zabezpieczają dostęp do swoich serwerów, a także zapewniają monitorowanie wszystkich użytkowników, którzy chcą połączyć się z urządzeniami zdalnie.
Przykładem rozbudowanego rozwiązania monitorującego, które można wdrożyć w architekturze jump server, jest Syteca by Ekran System. Rozwiązanie to oferuje agentowy monitoring sesji, umożliwiając szczegółowe rejestrowanie aktywności użytkowników, co dodatkowo wspiera procesy audytu i analizy bezpieczeństwa. Skontaktuj się z nami, aby dowiedzieć się więcej o możliwościach wdrożenia Syteca w zależności od indywidualnych potrzeb firmy.