Little Snitch dla Linuxa: firewall eBPF z monitorowaniem procesów i blokadą ruchu
Little Snitch został dostosowany do systemu Linux przy użyciu technologii eBPF, która pozwala przechwytywać wszystkie wychodzące połączenia sieciowe. Daemon zbiera dane o ruchu, przypisując je do konkretnych procesów, bez konieczności modyfikowania jądra systemu. Interfejs webowy dostępny pod adresem localhost:3031 wyświetla aktywność w czasie rzeczywistym: aktualne połączenia, dane historyczne oraz objętość ruchu. Filtracja według aktywności, objętości lub nazwy procesu umożliwia szybkie wykrywanie podejrzanych połączeń. Blokada odbywa się jednym kliknięciem, a reguły są automatycznie zapisywane do przyszłych sesji.
Wykresy ruchu wizualizują szczyty obciążenia, a możliwość wyboru określonych przedziałów czasowych pozwala na szczegółową analizę. To kluczowe dla programistów średnio- i wysokiego poziomu zarządzających serwerami lub stacjami roboczymi, gdzie telemetria aplikacji wychodzi do sieci bez nadzoru.
Możliwości konfiguracji reguł i list blokujących
Reguły niestandardowe
Reguły można konfigurować według procesów, portów i protokołów za pomocą plików TOML w katalogu /var/lib/littlesnitch/config/. Pliki override w /var/lib/littlesnitch/overrides/ mają wyższy priorytet, co ułatwia testowanie bez ryzyka uszkodzenia podstawowej konfiguracji. Przykład: zezwolenie na cały ruch dla przeglądarki Firefox, ale blokada ruchu wychodzącego z określonego narzędzia CLI.
Listy blokujące
Zintegrowane gotowe listy: Hagezi, Peter Lowe, Steven Black, oisd.nl. Formaty: domeny w osobnych wierszach, format /etc/hosts, CIDR. Niekompatybilne z plikami .lsrules z wersji macOS — wymagana konwersja przy migracji.
- Blokada oparta na procesie: przypisanie do PID/executable, nie do IP.
- Port/protokół: TCP/UDP z precyzyjnym kontrolowaniem.
- Historia i statystyki: ilość bajtów, częstotliwość żądań według domen.
- Wsparcie dla PWA: instalacja interfejsu jako aplikacji w Chromium/Firefox.
Zalety: eBPF ogranicza rozmiar pamięci podręcznej pod dużym obciążeniem, co może zmniejszyć dokładność przypisywania pakietów, ale pokrycie prywatności ruchu jest bliskie 100%.
Architektura i kompromisy
Program eBPF w jądrze przesyła metadane do demona, który agreguje statystyki i stosuje filtry. Brak głębokiego analizowania treści pakietów (deep packet inspection), jak w wersji macOS — wersja Linuxowa skupia się na metadanych połączeń (ID procesu, port docelowy/domena). Pod dużym obciążeniem (tysiące połączeń na sekundę) tabele eBPF mogą się przepełnić, co prowadzi do utraty przypisania niektórych pakietów.
Zalety eBPF: przekazywanie danych bez kopii, niski narzut, skalowalność na systemach wielordzeniowych.
Ograniczenia: surowe limity rozmiaru kodu (do 1 MB po JIT), brak analizy treści pakietów. Autorzy podkreślają: narzędzie do ochrony prywatności, nie do obrony warstwowej przeciwko atakom celowanym. W środowiskach produkcyjnych warto kombinować z nftables.
Wdrożenie serwerowe w trybie headless: dostęp przez tunel SSH (ssh -L 3031:localhost:3031) lub nginx-reverse-proxy. Brak zależności GUI, daemon działa w tle.
Licencje i personalizacja
- Moduł eBPF: GPLv2, źródła na GitHubie.
- Interfejs webowy: GPLv2, open source.
- Daemon: własny, darmowy do użytku osobistego i komercyjnego.
Konfiguracja w formacie TOML pozwala na skryptowanie: automatyzacja reguł przez Ansible/chef. Ważne dla senior-devs — kontrola telemetrii w CI/CD lub w kontenerach Kubernetes, gdzie kontenery generują niekontrolowany ruch.
Co ważne
- eBPF zapewnia monitorowanie procesów bez modułów jądra, z niskim narzutem.
- Interfejs webowy + PWA dla wygody, tryb headless dla serwerów.
- Listy blokujące i reguły obejmują 90% przypadków używania do ochrony prywatności, ale nie zastępują DPI.
- Darmowy w pełni, w przeciwieństwie do wersji macOS za €59.
- Kompromis: utrata dokładności pod ekstremalnym obciążeniem z powodu ograniczeń eBPF.
— Editorial Team
Brak komentarzy.