Bezpośrednie połączenie bez TrapDaemon
Możliwa jest konfiguracja sensora bez instalacji programu TrapDaemon na nim. W takim wypadku, aplikacja TrapInit łączy się bezpośrednio z serwerem sensora korzystając z SSH i komunikując się z Docker API przez SSH.
Jest to bardziej zaawansowana konfiguracja, która wymaga poprawnego skonfigurowania sieci i SSH pomiędzy TrapInit i SSH.
Nie jest to zalecane podejście i w przyszłości może zostać usunięte z aplikacji. Zalecamy skorzystanie z TrapDaemon.
Przygotowanie sensorów
Aby móc dodawać instancje pułapek, należy przygotować w tym celu sensory. Są to maszyny wirtualne, na których zainstalowany jest Docker. TrapInit komunikuje się z uruchomioną instancją Docker na maszynie sensora poprzez SSH, wykorzystując autentykację za pomocą kluczy SSH.
Można także użyć lokalnego połączenia z użyciem TCP lub UNIX jeśli aplikacja i sensor znajdują się na tej samej maszynie, lecz nie jest to zalecane rozwiązanie. Może ono powodować problemy przy komunikacji pomiędzy panelem TrapInit i pułapkami.
Konfiguracja sensora
Podczas konfiguracji zdalnego sensora, pamiętaj o kilku krokach:
-
Użytkownik, który będzie wykorzystywany do łączenia się poprzez SSH, musi należeć do grupy
docker
. -
Należy wygenerować nową parę kluczy SSH dla aplikacji TrapInit
-
Podczas generowania kluczy, należy pamiętać, aby nie były one zabezpieczone hasłem.
Zaleca się użycie dystrybucji Debian.
Nowsze systemy, jak na przykład Ubuntu od wersji 22, wymagają przesyłania klucza z wykorzystaniem
SHA-2
. Z powodów technicznych, w tym momencie nie jest to obsługiwane w naszym rozwiązaniu. Zaleca
się użyć w takim przypadku ed25519
lub ecdsa
. Są to nowsze i bezpieczniejsze algorytmy szyfrowania.
Poprawne klucze można wygenerować za pomocą np. takich komend:
ssh-keygen -a 100 -t ed25519 -f ~/ssh-key -N ''
ssh-keygen -b 521 -t ecdsa -f ~/ssh-key -N ''
Powyższe polecenia generują klucze publiczne i prywatne dla algorytmów ed25519 i ecdsa.
Upewnij się, że klucz publiczny został dodany do pliku authorized_keys
sensora,
co umożliwi uwierzytelnianie SSH za pomocą tego klucza.
Można to zrobić np. za pomocą poniższej komendy, po wcześniejszym przekopiowaniu
publicznego klucza (z zakończeniem .pub
) na sensor:
cat ~/ssh-key.pub >> ~/.ssh/authorized_keys
Możliwe jest zastąpienie Docker'a programem Podman - więcej informacji na oddzielnej stronie.
Dodanie sensora
Po przejściu do odpowiedniej zakładki na lewym panelu ukaże nam się okno do dodawania i zarządzania sensorami
Klikając w opcję "Nowy sensor, używając bezpośredniego połączenia", pojawi nam się dialog dodawania nowego sensora.
Wyodrębniamy w nim następujące pola:
- Name - widoczna nazwa w pozostałych obszarach aplikacji
- Protocol - protokół używany do połączenia, dostępne są nast ępujące:
- SSH - zalecana metoda komunikacji. TrapInit komunikuje się z Docker poprzez SSH. Wymagane jest podanie dodatkowo prywatnego klucza ssh (wklejenie jego zawartości) oraz podanie nazwy użytkownika.
- TCP - wykorzystywany do połączenia lokalnego w systemie Windows lub dla komunikacji z sensorem Docker zabezpieczonym TLS.
- UNIX - wykorzystywany do połączenia lokalnego poprzez socket na systemach Unix
- Host - adres IP lub nazwa hosta gdzie znajduje się sensor, w przypadku
UNIX
lokalizacja socket - Port - numer portu na którym dostępne jest połączenie, pole wymagane przy
SSH
iTCP
- User - nazwa użytkownika wykorzystywana do połączenia poprzez
SSH
- SSH private key - klucz prywatny podczas połączenia
SSH
Trzy ostatnie pola są pokazywane lub ukrywane, w zależności od wybranego protokołu.
Po uzupełnieniu odpowiednich pól i potwierdzeniu sensor zostanie dodany. Lista ze stworzonymi sensorami może się prezentować następująco:
Mamy na niej także możliwość usunięcia sensora, jeśli żadna pułapka go nie używa.
Zapewnienie komunikacji
Serwery, na których postawiona jest aplikacja i sensory, muszą być w tej samej sieci lub być dostępne poprzez sieć publiczną dla siebie nawzajem.