Aplikační firewall v Linuxu – aneb kontrola přístupu aplikací k síti
Dnes si ukážeme jaké máme v Linuxu možnosti, když chceme mít pod kontrolou kam se připojují naše aplikace a mít tak větší kontrolu nad svým soukromím a zabezpečením dat a systémových zdrojů.
OpenSnitch
https://github.com/evilsocket/opensnitch
Interaktivní aplikační firewall s GUI, který vám zobrazí pokusy o připojení aplikací k síti a dá vám možnost reagovat – spojení povolit či zakázat a to buď jednorázově, po dobu následujících 5, 15, 30 minut až 1 hodiny, případně až do dalšího restartu, nebo samozřejmně trvale. Ve výchozím nastavení máte na reakci 15 sekund a pak dojde k zamítnutí spojení. Toto výchozí chování se dá samozřejmě upravit v nastavení.
OpenSnitch se skládá z démona běžícího na pozadí (první RPM balíček) a z GUI (druhý RPM balíček).
Instalace vývojové verze 1.6.0 Release Candidate 5 na Fedoře 38:
$ wget https://github.com/evilsocket/opensnitch/releases/download/v1.6.0-rc.5/opensnitch-1.6.0rc5-1.x86_64.rpm https://github.com/evilsocket/opensnitch/releases/download/v1.6.0-rc.5/opensnitch-ui-1.6.0rc5-1.noarch.f29.rpm
$ sudo dnf localinstall opensnitch-1.6.0rc5-1.x86_64.rpm opensnitch-ui-1.6.0rc5-1.noarch.f29.rpm
Kontrola zda démon běží:
$ sudo systemctl status opensnitch
Pokud ne, pak:
$ sudo systemctl start opensnitch # Pro spuštění hned teď
$ sudo systemctl enable opensnitch # Automatické spuštění při startu systému
Pak už stačí jen spustit GUI z menu pomocí “OpenSnitch”, zde v záložce “Events” se budou postupně objevovat všechny aktuální připojení našich procesů (aplikací):
V případě, že se nějaký nový proces pokusí o připojení do sítě, vyskočí nám podobná výzva k reakci, která povede k vytvoření nového pravidla:
Ve výchozím stavu rozhodujeme vždy o konkrétním procesu, ale je tu možnost ještě kliknout na symbol plus (+) a zvolit, že se má pravidlo například týkat jen aplikace a konkrétní cílové IP adresy/portu či uživatele, který proces spustil:
Příklad podezřelého pokusu o připojení
Tento pokus o připojení, při spuštění aplikace kalkulačky, mě docela překvapil:
Kalkulačka připojující se na stánky Mezinárodního Měnového Fondu nevypadá úplně standardně.
Při bližším zkoumání se ukázalo, že si GNOME Calculator z jejich stránek stahuje aktuální kurzy pro konverzi měn takže jde o legitimní provoz:
https://gitlab.gnome.org/GNOME/gnome-calculator/-/blob/40e931855701a6d64cdd88dd86b24ad235a14f9a/lib/currency-provider.vala#L167-172
Na druhou stranu, jsem do teď ani nevěděl, že GNOME Calculator umí konvertovat měny a vzhledem k tomu, že tuto funkcionalitu nepoužívám, tak jsem díky OpenSnitch mohl tento a budoucí pokusy o přístup kalkulačky k síti bezpečně zakázat.
Další aplikační firewally pro Linux
- https://safing.io/ – Pěkně vypadající, opensource multiplatformní aplikační firewall.
Kromě OpenSnitch a Safing Portmaster lze ještě online narazit na tyto dva bohužel už nevyvíjené projekty:
- https://fireprompt.com/ – Web obsahuje pouze jeden screenshot a debianí balíček z roku 2017. Zdrojové kódy nejsou k nalezení.
- https://douaneapp.com/ – Pěkně vypadající projekt, který bohužel už poslední rok nemá žádné nové commity v git repozitáři.
Další nástroje na monitorování síťového provozu aplikací
- https://github.com/elesiuta/picosnitch – Nástroj pro monitorování síťového provozu aplikací.
- Nethogs – CLI nástroj, který umožňuje monitorovat využití sítě jednotlivými procesy. U Fedory dostupný přímo z repozitářů distribuce. Použití je snadné:
sudo nethogs -v 1