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.