Przejdź do głównej zawartości

Konfiguracja sensora

Sensory to maszyny, na których uruchamiane będą pułapki aplikacji TrapInit.

Wymagania sprzętowe

Ponieważ pułapki uruchamiane są korzystając z technologii Docker, sensorem musi być maszyna Linux, na której zainstalowana i działająca jest aplikacja Docker.

Działanie programu Docker można zweryfikować szybką komendą:

$ docker run --rm hello-world

W celu instalacji i konfiguracji Docker'a, zalecamy skorzystanie z oficjalnej dokumentacji.

wskazówka

Możliwe jest zastąpienie Docker'a programem Podman - więcej informacji na oddzielnej stronie.

Instalacja TrapDaemon

TrapDaemon to aplikacja uruchamiana na maszynie sensora. Komunikuje się ona z TrapInit, i zarządza pułapkami na maszynie sensora.

Korzysta ona z lokalnego socket'a Docker, aby zarządzać pułapkami. Domyślnie ten socket znajduje się pod /var/run/docker.sock. Należy upewnić się, że użytkownik który będzie używany do uruchamiania TrapDaemon ma dostęp do tego socket'a.

wskazówka

Domyślnie dostęp ma root i każdy użytkownik w grupie docker. Zalecane jest utworzenie dedykowanego użytkownika dla TrapDaemon, który nie posiada uprawnień sudo, ale posiada dostęp do /var/run/docker.sock.

TrapDaemon jest dostępny ze strony downloads.traptech.pl, w wersji dla systemów Linux z libc GNU i musl. Większość dystrybucji Linux korzysta z libc GNU.

TrapDaemon możemy także pobrać bezpośrednio za pomocą curl:

$ mkdir -p ~/.local/bin
$ curl -L downloads.traptech.pl/data/TrapDaemon-v1.0.0 > ~/.local/bin/TrapDaemon

(upewnij się, że pobierasz najnowszą wersję aplikacji).

Po pobraniu zalecamy umieszczenie aplikacji w katalogu ~/.local/bin użytkownika, który będzie używany do uruchamiania TrapDaemon.

Należy pamiętać o ustawieniu odpowiednich dostępów:

$ chmod 500 ~/.local/bin/TrapDaemon

W końcu, możemy testowo uruchomić aplikację - powinna wyświetlić się dokumentacja opcji programu:

$ ~/.local/bin/TrapDaemon --help
wskazówka

Jeśli pierwsze uruchomienie TrapDaemon nie powiedzie się, może być konieczne doinstalowanie bibliotek zależności aplikacji.

W przypadku dystrybucji z GNU libc wymagane są pakiety (lub ich odpowiedniki, zależnie od dystrybucji) ca-certificates, zlib i libstdc++.

W przypadku dystrybucji z must libc wymagane są pakiety (lub ich odpowiedniki) ca-certificates, zlib, libgcc i libstdc++.

Rejestracja TrapDaemon

Po zainstalowaniu TrapDaemon, możemy go zarejestrować sensor w aplikacji TrapInit. Pozwoli to programowi TrapDaemon na komunikacje z TrapInit i uruchamianie pułapek.

Aby rozpocząć rejestrację, należy użyć przycisku "Nowy sensor, używając TrapDaemon" w menu sensorów:

Nowy sensor

W nowym dialogu możemy wybrać nazwę sensora. Kliknięcie "Utwórz" wygeneruje nam token rejestracyjny, który pozwoli TrapDaemon na połączenie się z TrapInit.

Nowy sensor - dialog

Posiadając token rejestracyjny, możemy użyć go aby zarejestrować sensor, uruchamiając odpowiednio TrapDaemon. Musimy podać token oraz adres aplikacji TrapInit, po jakim ma się komunikować TrapDaemon. Przykładowe wywołanie TrapDaemon jest podane w dialogu rejestracji sensora.

$ ~/.local/bin/TrapDaemon register -t 0wk8pqhyvx1jznp8g4hdguwv1egjbsf1 -u https://przykladowa-instancja-trapinit.example.com/

Wywołanie powyższej komendy spowoduje, że TrapDaemon połączy się z TrapInit, weryfikując konfigurację sieciową i informując o udanej rejestracji. Następnie, wygeneruje plik konfiguracyjny, w którym przechowuje informacje o połączeniu i konfiguracji sensora (np. lokalizacja socket'a Docker).

informacja

Jeśli nasza instancja TrapInit nie posiada podpisanego certyfikatu HTTPS, możemy użyć flagi --skip-ssl-validation, aby wyłączyć weryfikację certyfikatu.

informacja

Jeśli socket Docker'a znajduje się w innym miejscu niż domyślny, możemy go podać za pomocą flagi -s w czasie rejestracji, lub po rejestracji - zmienić w pliku konfiguracyjnym.

Uruchomienie TrapDaemon jako serwis

Po poprawnej rejestracji sensora i wygenerowaniu pliku konfiguracyjnego, musimy uruchomić TrapDaemon jako serwis systemowy. W tym trybie aplikacja będzie nasłuchiwała żądań od TrapInit i odpowiednio zarządzała pułapkami.

Jeśli nasza dystrybucja Linux korzysta z systemd, tworzymy plik ~/.config/systemd/user/trapdaemon.service o następującej zawartości:

[Unit]
Description=TrapDaemon

[Service]
TimeoutStartSec=0
Restart=always
ExecStart=%h/.local/bin/TrapDaemon run

[Install]
WantedBy=default.target

Po utworzeniu pliku, możemy wystartować serwis wykonując polecenia:

$ systemctl --user daemon-reload
$ systemctl --user enable --now trapdaemon.service

Możemy zweryfikować czy TrapDaemon działa poprawnie za pomocą komendy:

$ systemctl --user status trapdaemon.service