JumpServer - Privileged Access Management (PAM) pełniący rolę centralnego bastionu do zarządzania dostępem uprzywilejowanym
Oprogramowanie PAM (Privileged Access Management) jest stosowane do zapewniania bezpiecznego dostępu do różnych zasobów – głównie serwerów i baz danych, ale także konkretnych aplikacji. Nazwa wskazuje, iż ten dostęp dotyczy kont administracyjnych, natomiast w praktyce nie jest to zasadą i PAM równie dobrze sprawdzi się przy nadawaniu uprawnień dla kont zwykłych użytkowników.
Z perspektywy bezpieczeństwa PAM ma bardzo duże znaczenie. Dla przykładu, w przypadku połączeń VPN nie ma potrzeby udostępniania portów wszystkich kluczowych usług (takich jak SSH, RDP, MySQL, PostgreSQL), ponieważ dostęp jest realizowany wyłącznie z użyciem PAM. Użytkownik końcowy powinien mieć możliwość połączenia wyłącznie do tego jednego serwera. Zależnie od danego rozwiązania PAM, sposób dostępu może odbywać się z wykorzystaniem przeglądarki internetowej – aplikacja „w tle” nawiąże połączenie do docelowego hosta – i w tym wypadku z poziomu VPN osiągalne powinny być tylko porty HTTP/HTTPS. Najczęściej jednak z powodów praktycznych PAM pozwala na „bezpośredni” dostęp SSH/RDP do własnego serwera i analogicznie po swojej stronie nawiązuje połączenie do danego hosta.
Dodatkowo PAM standardowo zapewnia rejestrowanie aktywności użytkowników (wykonane polecenia w konsoli, wklejane dane ze schowka, nagranie sesji). Oprócz wiadomych zastosowań w kontekście bezpieczeństwa (możliwość wykrycia powodu awarii usługi spowodowanej działaniem użytkownika, czy wszelkich naruszeń), jest to też odpowiednie podejście do rozliczalności.
Zdecydowaną większość rozwiązań PAM stanowią produkty komercyjne, dostępne wyłącznie w płatnych planach cenowych. To zaawansowane oprogramowanie, które wymaga dostosowania do potrzeb danego środowiska, jak również przeprowadzenia szerokich testów poprawności działania. W bardzo restrykcyjnych podejściach często jest to jedyna możliwość uzyskania dostępu do zasobów przykładowo dla zdalnych administratorów czy programistów, stąd najważniejsze jest zapewnienie odpowiedniego poziomu bezpieczeństwa, jak również zwyczajnej wygody – aby korzystanie z PAM nie powodowało zakłóceń w ich pracach.
Do najpopularniejszych narzędzi PAM należą produkty takie jak CyberArk, BeyondTrust, Delinea, PAM360 czy Segura. Polskim dostawcą rozwiązania tej klasy jest Fudo Security.
JumpServer
W tym artkule przedstawiam mniej znany przykład systemu PAM – JumpServer. Jest rozwijany przez chiński podmiot FIT2CLOUD (właściwie LXware, ale prawnie to spółka zależna) i określany jako open-source alternatywa dla CyberArk. Z otwartości kodu wynika ważna cecha – JumpServer posiada plan bezpłatny (Basic) pozwalający na dodanie maksymalnie 50 asset’ów (serwery SSH/RDP, bazy danych itd.). Funkcjonalności pozostają takie same niezależnie od wybranego planu. Jedyna różnica to ilość możliwych do dodania dostępów. Wydaje się więc, iż może być to sensowne rozwiązanie dla mniejszych środowisk.
Miałem okazję wykonać testy JumpServer i z pełnym przekonaniem mogę stwierdzić, iż jest to oprogramowanie gotowe do zastosowań produkcyjnych. Pod względem liczby funkcjonalności jest co najmniej porównywalny do konkurencyjnych platform, a w zestawieniu z niektórymi okazuje się choćby rozwiązaniem posiadającym szersze możliwości – chociażby pod względem obsługiwanych baz danych. Poniżej opisałem proces instalacji JumpServer i przedstawiłem najbardziej znaczące funkcje. Przygotowany materiał pozwala zrozumieć działanie systemów PAM.
Instalacja JumpServer
Sposób instalacji ogranicza się do wykonania jednego polecenia po przejściu do katalogu /opt (instrukcje w dokumentacji dostępne są pod adresem https://www.jumpserver.com/docs/installation). JumpServer dostarczany jest w formie kontenerów Docker. Na serwerze przeznaczonym do uruchomienia tego systemu nie muszą być zainstalowane żadne dodatkowe komponenty – skrypt przeprowadzi wszelkie niezbędne czynności.
Po zakończeniu instalacji w konsoli zostaną wypisane podstawowe kroki służące do zarządzania instancją z poziomu CLI oraz informacja o metodzie zalogowania do panelu w przeglądarce.
Zakończona instalacja JumpServer
Wstępna konfiguracja
Po wejściu na widoczny adres powinna zostać załadowana strona logowania w języku chińskim. Można to uznać za rezultat pomyślnie przeprowadzonej instalacji. Z oczywistych względów zalecane jest dodanie obsługi HTTPS i umożliwienie dostępu z wykorzystaniem domeny zamiast adresu IP. Ten proces został sprowadzony do niezbędnego minimum.
W pierwszej kolejności nadpisujemy zawartość plików /opt/jumpserver/config/nginx/cert/server.key i /opt/jumpserver/config/nginx/cert/server.crt odpowiednio kluczem i certyfikatem SSL dla naszej domeny wskazującej na host z JumpServer. Następnie edytujemy niżej wskazane opcje w pliku /opt/jumpserver/config/config.txt.
Warto od razu ustawić strefę czasową i domyślny język.
Wykonujemy restart serwisów, po czym weryfikujemy dostępność z użyciem nazwy domenowej.
Strona logowania do JumpServer
Logujemy się z wykorzystaniem wyświetlonych wcześniej domyślnych poświadczeń – admin/ChangeMe. Zostanie wymuszona zmiana hasła.
Formularz zmiany hasła
Aby rozpocząć korzystanie z JumpServer – w przypadku tego użytkownika oznacza to przede wszystkim adekwatną konfigurację – musimy zaakceptować „zasady” korzystania. Potwierdzamy to zaznaczeniem checkboxa i kliknięciem przycisku Submit. Ciekawa, ale słuszna praktyka.
Wyrażenie zgody na zasady użycia JumpServer
Możemy wyczyścić powiadomienia, które są tworzone przy okazji pierwszego uruchomienia, po kliknięciu ich ikony i wybraniu Mark all as read. Pozostaje zatwierdzić działanie przyciskiem OK.
Przystąpienie do konfiguracji zaczniemy od ustawienia poprawnej nazwy serwera. W tym celu przechodzimy do ustawień (ikona na górnym pasku) i bezpośrednio po otwarciu strony podajemy poprawny adres URL.
Podanie adresu instancji JumpServer
Zapisujemy zmiany i przechodzimy do zakładki Notifications, gdzie z kolei podajemy dostępy do konta dostępnego w ramach naszego serwera SMTP. Z tego adresu będą wysyłane powiadomienia, w tym linki do ustawienia hasła dla nowych użytkowników. Warto też sprawdzić działanie wysyłki poprzez wskazanie adresu e-mail, na który zostanie wysłana wiadomość testowa.
Konfiguracja SMTP
Dostarczona wiadomość testowa
Wracamy teraz ponownie na stronę główną i z bocznego menu wybieramy pozycję Users. Na początek zmieniamy adres e-mail powiązany z domyślnym kontem administracyjnym poprzez kliknięcie przycisku Edit i wpisanie adekwatnego adresu we właściwym polu.
Zmiana adresu e-mail konta admin
Zarządzanie użytkownikami i grupami
Dodamy dwie grupy użytkowników – tutaj nazwane admin i programista – do których następnie przypiszemy konta w PAM. Członkowie pierwszej grupy będą posiadać dostępy administracyjne do wskazanych hostów, natomiast pozostali jedynie dostęp jako użytkownik standardowy. W zakładce Groups wybieramy przycisk Create i podajemy nazwy nowych grup.
Grupy w JumpServer
Ponownie przechodzimy do zakładki Users i tworzymy pierwszego użytkownika, którego przypisujemy do grupy admin. Pola dostępne w formularzu raczej nie wymagają szczegółowego wyjaśnienia.
Dodawanie użytkownika
Na wskazaną skrzynkę zostanie przesłany link do strony umożliwiającej ustawienie hasła.
Wiadomość z informacją o utworzeniu konta
Użytkownik będzie musiał podać nowe hasło i zalogować się do panelu. Po potwierdzeniu wspomnianych wcześniej „zasad” będzie miał możliwość pełnego korzystania z JumpServer. Na porcie 2222 wystawiony jest serwer SSH powiązany z JumpServer, który pozwala na bezpośredni dostęp do hostów przypisanych danemu użytkownikowi. Logowanie odbywa się z użyciem nazwy użytkownika JumpServer i jego hasła.
Połączenie do serwera SSH wystawianego przez JumpServer
Dodawanie zasobów i przydzielanie dostępów
Pierwszem hostem, który dodamy, będzie maszyna z Windows Server. Zasadniczo czynności do wykonania po stronie osoby zarządzającej PAM sprowadzają się do ustawienia adresacji IP, utworzenia użytkownika z uprawnieniami administratora oraz umożliwienia dostępu RDP (w przypadku Windows oznacza to odblokowanie Terminal Server, aktywację reguły „Remote Desktop” i dodanie konta do grupy Remote Desktop Users). Nie zaszkodzi też ustawienie braku wygasania hasła, aby nie pojawiała się niespodziewana potrzeba aktualizacji poświadczeń w PAM.
Należy zaznaczyć, iż PAM samodzielnie nie nadaje uprawnień w docelowych systemach – nie takie jest jego zadanie. jeżeli w systemie operacyjnym dany użytkownik nie będzie posiadał uprawnień administratora/sudo, to PAM nie sprawi, iż będzie on mógł wykonywać czynności zarezerwowane dla użytkowników uprzywilejowanych.
Przechodzimy do panelu JumpServer i otwieramy zakładkę Assets. Tworzymy nowy zasób „Windows”, po czym podajemy nazwę, adres IP hosta i domyślny node (/DEFAULT). Należy też dodać powiązane konto i w tym celu klikamy przycisk Add, a w nowym oknie wpisujemy nazwę użytkownika oraz jego hasła. Dodatkowo – z racji, iż to konto uprzywilejowane – zaznaczmy checkbox przy nazwie Privileged. Zatwierdzamy formularze w obu oknach.
Tworzenie zasobu w JumpServer
Dalej wchodzimy w kolejną istotną zakładkę, czyli Authorizations. Tworzymy nową autoryzację (tutaj nazwaną external_admins), po czym wskazujemy powiązaną grupę użytkowników (mającą mieć dostęp z użyciem konta rdpadmin – czyli będą to administratorzy), danego hosta oraz zaznaczamy Specified accounts i wybieramy wspomnianego rdpadmin. Ilość koniecznych kroków może wydawać się przesadnie duża, natomiast w praktyce ułatwia i przede wszystkim skraca późniejsze analogiczne działania. Zapisujemy zmiany.
Tworzenie autoryzacji w JumpServer
Użytkownicy przypisani do grupy admin powinni mieć od dzisiaj możliwość dostępu do hosta avlab_welcome.
Hosty dostępne dla użytkownika poprzez PAM
Połączenie do zasobu
Po wybraniu ikony monitora i kliknięciu przycisku CONNECT zostanie nawiązane połączenie z serwerem. Działania użytkownika są rejestrowane.
Sesja RDP realizowana przez PAM
Warto zminimalizować panel po lewej stronie, aby zwiększyć przestrzeń roboczą. W sytuacji, gdy widok i tak okaże się zbyt mały (zauważymy, iż okno aplikacji uruchomionej na zdalnym pulpicie nie „mieści się” na ekranie) najlepiej ustawić tryb pełnoekranowy (View -> Full screen). Może się też zdarzyć, iż z jakiegoś powodu (chwilowa słabsza jakość połączenia, restart zdalnego serwera) sesja zostanie rozłączona. Wtedy wystarczy ponownie nawiązać połącznie poprzez kliknięcie prawym przyciskiem myszy na poziomym panelu u góry ekranu i wybranie opcji Reconnect.
Użytkownik może wykonywać swoje zadania w sposób standardowy. JumpServer zapewnia też możliwość transferu plików z lokalnego urządzenia użytkownika na serwer docelowy z wykorzystaniem mechanizmu wirtualnych dysków (analogicznie zostało to rozwiązane w wybranych alternatywnych narzędziach PAM). Użytkownik musi jedynie „przeciągnąć” plik do obszaru zdalnego pulpitu, a ten zostanie zapisany na dysku osiągalnym z poziomu serwera RDP. Te działania także są rejestrowane.
Pliki przesłane przez użytkownika na wirtualnym dysku
Analogicznie możemy utworzyć użytkownika standardowego do użytku przez członków grupy programista. Zmian dokonujemy po wejściu w Assets, wybraniu jedynego dostępnego w tej chwili hosta, przejścia do karty Accounts i dalej wybrania Create. Trzeba tylko pamiętać o pozostawieniu braku zaznaczenia (jest to domyślne zachowanie) checkboxa przy opcji Privileged. W naszym przykładzie ten użytkownik ma nazwę rdpuser.
Dodawanie kolejnego konta
Później pozostaje przejść do zakładki Authorizations i utworzenie nowej autoryzacji dedykowanej grupie programista – tutaj nazwana została external_developers.
Dodawanie autoryzacji dla innej grupy użytkowników
Możemy utworzyć w PAM kolejnego użytkownika i dodać go do grupy programista, aby zweryfikować działanie autoryzacji. Powinien mieć wyłącznie możliwość dostępu jako użytkownik rdpuser.
Logowanie użytkownika standardowego poprzez PAM – moment tworzenia profilu w docelowym systemie
Tym sposobem zapewniliśmy dwa niezależne konta do wykorzystania przez członków różnych grup – konto rdpadmin przypisane do grupy admin (autoryzacja external_admins) i konto rdpuser przypisane do grupy programista (autoryzacja external_developers).
Zasadniczo na tym polega nadawanie uprawnień w JumpServer. W przypadku innych rozwiązań PAM „praktyczne” kroki prowadzące do osiągnięcia analogicznych poziomów uprawnień mogą się różnić, natomiast najważniejsze jest zrozumienie tego właśnie podziału na grupy i autoryzacje.
Dostęp do serwisów WWW
Realizacja dostępów do danych hostów z użyciem dedykowanych kont w JumpServer nie powinna sprawiać trudności. Nieco inaczej prezentuje się wstępna konfiguracja prowadząca do udostępnienia dostępu ograniczonego do konkretnej witryny internetowej. W ramach hosta avlab_welcome zainstalowałem system CMS Umbraco i teraz przystąpimy do udostępnienia hostowanego serwisu WWW osobom z grupy programista.
Zaczynamy od utworzenia zasobu w zakładce Assets. Wybieramy typ Web i następnie Website. Podajemy nazwę zasoby, adres URL, domyślny node i wyłączamy autouzupełnianie – w naszym przypadku nie ma żadnej potrzeby, aby korzystać z tej funkcjonalności.
Dodawanie zasobu witryny internetowej
Musimy też dodać konto „techniczne” (zakładka Account). Logowanie do udostępnianego serwisu akurat jest zbędne, natomiast JumpServer wymaga, aby jakiekolwiek konto zostało powiązane z autoryzacją. Wystarczy podać dowolną prostą nazwę (np. www_user) i przypisać tworzone konto do dodanego przed chwilą zasobu Web.
Dodanie konta do zasobu welcome.avlab.pl
W ustawieniach autoryzacji external_developers, po wejściu do karty Assets/nodes przypisujemy utworzony zasób i ponownie w karcie Authorized accounts wskazujemy powiązane konto www_user.
Przypisanie zasobu do autoryzacji
Przypisanie konta do autoryzacji
Konfiguracja usługi RemoteApp
Do celu udostępnienia witryny w JumpServer stosowane jest RemoteApp, które z kolei wymaga zainstalowanej usługi Remote Desktop Services. Co bardzo ciekawe, cała konfiguracja niezbędnych usług została w JumpServer zautomatyzowana i odbywa się poprzez protokół WinRM. Aby dodać hosta pełniące rolę serwera RDS przechodzimy do ustawień (ikona na górnym poziomym pasku) i wchodzimy do RemoteApp.
Teraz w karcie RemoteApp machine definiujemy hosta, na którym wszystkie wymagane usługi zostaną skonfigurowane. JumpServer zainstaluje także oprogramowanie Tinker, które odpowiada za obsługę sesji RemoteApp.
Podajemy nazwę hosta i adres IP. Z listy protokołów usuwamy ssh, natomiast dodajemy winrm (rdp pozostaje). Dalej w wiadomy sposób podajemy dostępy dla konta z uprawnieniami administratora (tutaj użyłem akurat wbudowanego w Windows Server konta Administrator) – pamiętając o zaznaczeniu opcji Privileged. Bardzo ważne jest również podanie adresu naszej instancji JumpServer jako parametr opcji Core API.
Dodawanie hosta RemoteApp
JumpServer posiada wbudowaną obsługę Ansible – zostanie użyty playbook dostępny pod tym adresem. Po stronie administratora nie ma więc potrzeby jakiejkolwiek ingerencji w ustawienie RDS. Wchodzimy do utworzonego hosta RemoteApp i w karcie Deploy RemoteApp machine wybieramy Deploy. Przebieg działania Ansible zostanie zaprezentowany w nowo otwartym oknie.
Wykonywanie playbooka Ansible
Istnieje pewna szanse, iż po zainstalowaniu RDS system uruchomi się ponownie. W przypadku wystąpienia tej sytuacji wystarczy ponowić wykonywanie playbooka.
Wyświetlenie napisu PLAY RECAP będzie oznaczać poprawne zakończenie działania skryptu instalującego i konfigurującego wszystkie komponenty na hoście RDS.
Użytkownik należący do grupy programista powinien widzieć dodany zasób Web. Po wybraniu ikony monitora i następnie CONNECT nastąpi połączenie do aplikacji Google Chrome. Jak widać, jest to ograniczone środowisko – użytkownik PAM nie ma możliwości zamknięcia przeglądarki, uruchomienia innych programów czy choćby bezpośredniego przejścia do innej witryny.
Dostęp do aplikacji opublikowanej jako RemoteApp – otwarta przeglądarka Chrome z dodanym zasobem
Nagrania sesji i aktywność użytkowników
Administrator PAM może obejrzeć nagrane sesje, aby zweryfikować działania wykonane przez użytkowników. W tym celu należy kliknąć ikonę strzałek na górze menu z lewej strony i przejść do opcji Audits. Następnie wchodzimy do Asset sessions (gdzie będą widoczne aktualnie trwające sesje) i Historical sessions. Nagranie z danej sesji możemy pobrać lub odtworzyć bezpośrednio z poziomu JumpServer.
Nagranie sesji użytkownika
Z kolei w karcie File transfers będą wypisane informacje dotyczące przesłanych w trakcie każdej z sesji plików.
Lista plików przesłanych przez użytkowników
Konfiguracja dostępów Linux
Dodawanie hostów z Linux w ogólnym założeniu wygląda zupełnie analogicznie. W tym przypadku jednak stosowane są raczej protokoły SSH/SFTP zamiast RDP – chociaż oczywiście możliwa jest także realizacja z użyciem zdalnego pulpitu, np. xrdp. Połączenie SFTP jest o tyle wartościowe w kontekście poznawania działania PAM, ponieważ podczas zestawiania sesji SFTP z lokalnego komputera użytkownika (a nie poprzez RemoteApp czy z użyciem samej przeglądarki) będzie widoczne, iż faktycznie komunikacja jest w pełni obsługiwana przez JumpServer.
Koniecznie jednak trzeba dostosować dostarczoną z JumpServer konfigurację dla systemów Linux. Oprócz pozostawienia obsługi wyłącznie ssh i sftp, warto zmienić katalog domyślny dla SFTP z / (root) na katalog domowy. Nie jest to w żaden sposób wymagane, natomiast istotna jest też zwykła wygoda korzystania – użytkownik nie będzie miał większego pożytku, gdy przy każdym połączeniu będzie zmuszony do przejścia do swojego katalogu domowego.
Wchodzimy więc do ustawień i zakładki Platforms. Tutaj, przy wpisie Linux, klikamy Duplicate.
Opcja Duplicate przy konfiguracji dla Linux
W otwartym widoku zmieniamy nazwę platformy (np. na Linux-AVLab), wykluczamy obsługę rdp, a dodatkowo wybieramy ikonę ustawień przy sftp. W opcji SFTP root podajemy ${HOME}.
Konfiguracja obsługi SFTP
Potwierdzamy wybór i zapisujemy tak przygotowaną platformę.
Podobnie jak przy dodawaniu hosta z Windows możemy dodać kolejną maszynę z zainstalowaną dystrybucją systemu Linux. Pamiętajmy również o przypisaniu autoryzacji. W naszym scenariuszu został dodany host web o adresie IP 192.168.1.110 i kontem admin, z którego korzystać będą członkowie grupy external_admins.
Jak widać, połączenie działa poprawnie.
Połączenie do hosta Linux z poziomu przeglądarki
Polecam jednocześnie zweryfikować połączenie z użyciem lokalnego klienta SSH do serwera PAM na port 2222. Wykonujemy p, co zwróci nam listę hostów, do których połączony użytkownik posiada dostęp. Teraz wystarczy już tylko podać ID wybranej maszyny, aby sesja została utworzona. Dostęp SSH z użyciem tej metody jest o wiele bardziej komfortowy – niezależnie od stosowanego rozwiązania PAM.
Dostęp SSH z użyciem lokalnego klienta
Serwer 192.168.1.110 został przygotowany do pełnienia roli hostingu aplikacji internetowej używającej bazy danych MySQL. Aplikacja będzie działać na prawach użytkownika programista. Dostęp oczywiście będzie odbywał się poprzez PAM.
W JumpServer tworzymy więc nowe konto programista i przypisujemy je do hosta web. Powinno być powiązane z autoryzacją external_developers. Podobnie jak w przypadku konta admin, dostęp jest możliwy poprzez przeglądarkę oraz lokalnego klienta SSH.
JumpServer Client i dostęp SFTP
Aby użytkownik mógł skorzystać z połączenia SFTP, wymagane jest zainstalowanie specjalnej aplikacji JumpServer Client. Stronę pobierania otworzymy wykonując sekwencję zwykłego połączenia (jak w przypadku SSH czy RDP – Access assets -> ikona połączenia) i dalej wybierając SFTP oraz opcję Client. Potwierdzamy informację o potrzebie zainstalowania oprogramowania.
Z otwartej strony pobieramy instalator dla naszego systemu.
Strona pobierania JumpServer Client
Uruchamiany pobrany instalator. Proces instalacji nie wymaga skomplikowanego opisu, ponieważ w praktyce polega na wybieraniu przycisku Next i ostatecznie Finish. adekwatnie uwagę powinniśmy zwrócić jedynie przy pytaniu o „zakres” instalacji – osobiście polecam zainstalować wyłącznie dla naszego użytkownika.
Uruchomiony instalator
W zainstalowanej aplikacji wybieramy Please login first i podajemy adres naszej instancji PAM. Zatwierdzamy nasz wybór, co spowoduje uruchomienie domyślnej przeglądarki internetowej z otwartym dedykowanym adresem logowania. Ponownie zatwierdzamy chęć zalogowania. od dzisiaj w JumpServer Client powinniśmy zobaczyć zasoby, do których posiadamy dostęp.
Aplikacja JumpServer Client i dostępne zasoby
Dostęp SFTP wymaga zainstalowanej aplikacji WinSCP lub innej podobnej. jeżeli nie posiadamy jej w systemie, to wybieramy ikonę ustawień i w menu Open with. Wskazujemy interesujący nas protokół (SFTP) i przy wpisie z WinSCP (zalecałbym ten wybór) znajdziemy Download Application. Otworzy to oficjalną stronę tego programu, z której możemy pobrać instalator – nie jest to więc żadna zmodyfikowana wersja WinSCP, co mogłoby zostać słusznie uznane za pewne zagrożenie.
Możliwość pobrania aplikacji do obsługi SFTP
Po zainstalowaniu WinSCP wybieramy Select path, po czym wskazujemy lokalizację pliku wykonywanego. Przy zastosowaniu opcji Install for me only, będzie to %localappdata%\Programs\WinSCP\WinSCP.exe.
Wybór pliku wykonywalnego WinSCP
Aktywujemy SFTP i zamykamy okno z ustawieniami. Teraz w głównym oknie aplikacji wybieramy Connect oraz potwierdzamy wybór dla sftp. W otwartym oknie WinSCP zostaniemy automatycznie zalogowani poprzez SFTP do wybranego serwera – warto zwrócić uwagę na zawartość paska tytułu. Widać, iż komunikacja faktycznie jest obsługiwana przez PAM i nie jest to połączenie bezpośrednie do docelowego serwera.
Połączenie SFTP zainicjowane przez JumpServer Client
Niestety z jakiegoś powodu nie działa tworzenie/edycja plików. Przy próbie zapisu pojawia się monit o podanie hasła.
Prośba o podanie hasła
Sytuacja nie występuje podczas tworzenia katalogów. Pozostaje liczyć, iż twórcy tego rozwiązania naprawią opisany problem w przyszłości.
Udane utworzenie katalogu kopie
Dodatkowo sesje SFTP nie są rejestrowane. Wydaje się, iż dobrym pomysłem byłoby umożliwienie nagrywania również tych działań użytkownika. Nie jest to jednak poważna uwaga co do ogólnej oceny JumpServer – dla szczególnie krytycznych środowisk można zwyczajnie wyłączyć wsparcie dla SFTP, co wymusi na użytkownikach pracę wyłącznie z użyciem SSH, a to już są w pełni monitorowane działania.
Brak możliwości odtworzenia/pobrania sesji sftp
Nagranie sesji z połączenia SSH
Dostęp do baz danych
Aby zapewnić obsługę połączenia do baz danych poprzez PAM, usługi te muszą nasłuchiwać na adresie zewnętrznym (czyli nie 127.0.0.1). Sama konfiguracja jest całkiem zbliżona do tej znanej nam już z połączeń RDP czy SSH. Dla przykładu dodamy obsługę bazy MySQL.
W zakładce Assets przechodzimy do karty Database i tworzymy zasób MySQL. Podajemy nazwę zasobu oraz adres serwera bazodanowego, wybieramy domyślny node i wskazujemy poświadczenia wybranego użytkownika. Tutaj korzystamy z użytkownika standardowego posiadającego uprawnienia tylko do jednej bazy danych, z której korzysta zainstalowana aplikacja.
Tworzenie zasobu MySQL
W wiadomy sposób musimy jeszcze powiązać zasób i konto programista_avlab z wybraną autoryzacją. Ponownie działa to bezbłędnie. Co więcej, dostęp z poziomu przeglądarki internetowej oferuje dwa tryby połączenia – emulacja CLI i Web GUI.
Dostęp do bazy danych poprzez przeglądarkę
Dostęp do bazy danych realizowany z użyciem Web GUI
Nie trzeba chyba dodawać, iż oprócz tego do dyspozycji pozostaje RemoteApp ze znaną aplikacją DBeaver. W oknie połączenia wybieramy Applet i CONNECT.
Połączenie RemoteApp do DBeaver
Sesje bazodanowe są rejestrowane.
Nagranie sesji połączenia do bazy danych
Podsumowanie
JumpServer jest przykładem narzędzia PAM, które pod względem ilości funkcji i obsługiwanych typów zasobów można uznać ze „lepsze” od konkurencyjnych, w pełni komercyjnych rozwiązań. Łatwość obsługi administracyjnej (na szczególną uwagę zasługuje zastosowanie konteneryzacji oraz gotowy playbook Ansible do konfiguracji RDS), jak i tej po stronie użytkownika końcowego, jest na odpowiednim poziomie. Konfiguracje poszczególnych rozwiązań PAM mogą znacznie się różnić – niezmienne pozostaje jednak podejście do monitorowania aktywności i z tego powodu warto mieć świadomość dostępnych funkcjonalności.





