PaKon je nástroj pro monitorování aktivit všech zařízení ve vaší lokální síti LAN.
Sbírá a ukládá informace o síťové aktivitě, které si můžete zobrazit a libovolně řadit.
PaKon využívá data ze Suricaty - open-sourcového systém pro detekci a prevenci průniku do sítě.
Suricata odvede velkou část úkolu při zpracování základních hrubých dat o provozu v síti a poskytuje zpracované informace (o toku dat, dotazů a odpovědí DNS, podrobnosti TLS, atd.).
PaKon shromažďuje data ze Suricaty a jednotlivé části informací spojuje dohromady a ukládá je do databáze SQLite (adresář /srv/pakon
).
Hlavní jsou informace o jednotlivých tocích dat (network flows) včetně čitelných názvů cílových adres.
Flow neboli síťový tok jsou packety, které mají stejnou:
Hostname je název hostitele, který by měl odpovídat skutečnému názvu stránky, tak jak ji vnímá člověk. Název získáme čtením dotazů a odpovědí DNS před spuštěním toku a nebo z názvu aplikační úrovně (TLS SNI, TLS certifikátu CN nebo HTTP hostitele).
Velcí poskytovatelé služeb jako je např. Google, Facebook, Youtube a Twitter a mnoho dalších používají velký počet různých hosts a hostnames, které zobrazují jejich obsah. PaKoň má seznam hostitelů, které má slučovat (v
/usr/share/pakon-light/domains_replace/
). Např. namísto uložení jména “scontent.fprg2-1.fna.fbcdn.net” PaKoň uloží pouze “facebook.com”. To na jedné straně skrývá určité detaily, ale na druhé straně toto výrazně zvyšuje čitelnost údajů pro uživatele a také snižuje množství dat pro dlouhodobé ukládání.
Abychom mohli ukládat další data a zároveň je uchovat delší dobu, je potřeba data postupně zmenšovat. Především je nutné zmínit, že jednotlivé toky jsou agregovány. Agregace v tomto případě znamená, že na místo uložení jednotlivých síťových toků, které směřují na stejného hostitele jsou toky sloučeny dohromady v daném časovém rámci. Množství odeslaných nebo přijatých dat je zachováno, ale některé detaily (jako je např. doba trvání a začátek jednotlivých toků) jsou ztraceny.
Od verze Turris OS 3.9 jsou záznamy zachovány po dobu 4 týdnů, ale rádi bychom v budoucnu umožnili je uchovávat delší dobu.
Je nutné se přihlásit do administrační rozhraní Foris, které se ve výchozím nastavení nachází na adrese http://192.168.1.1, přejděte do záložky Aktualizace, zaškrtněte volbu u Pakoně a následně uložte změny.
Připojte se přes SSH k routeru a proveďte následující příkazy:
$ opkg update $ opkg install pakon
Tento postup je dostatečný k provedení všech kroků potřebných ke spuštění sběru dat tzn. instalace balíčku PaKon, zapnutí Suricaty a sledování služeb. Než se data zobrazí může nějakou dobu trvat.
Po nainstalování Pakoně najdete záložku Pakoň po jejím rozkliknutí uvidíte statistiky, výsledky a možnost filtrování.
Příkaz pro zobrazení dat z PaKoně je pakon-show
. Jakmile dotaz provedete,
$ pakon-show
zobrazí se výstup podobný následujícímu:
$ pakon-show |datetime | dur | src MAC | hostname | dst port | proto | sent | recvd | | | | | | | | | | |2017-11-23 14:00:46 | 240s | 00:01:02:03:04:05 | google.com | http | http | 445B | 785B| |2017-11-23 14:00:47 | 10s | 00:01:02:03:04:05 | facebook.com | https | tls | 2KiB | 5KiB| |2017-11-23 14:00:47 | 155s | 00:01:02:03:04:05 | whatsapp.com | https | tls | 1KiB | 5KiB| |2017-11-23 14:04:37 | 66s | 00:01:02:03:04:05 | facebook.com | https | tls | 6KiB | 3KiB|
Výstup ukazuje navštívené domény, včetně času a doby trvání návštěvy a počtů přenesených bajtů.
Pro zobrazení možností, jak data řadit, použijte parametr -h
.
$ pakon-show -h
Data si můžete seřadit dle data, času, MAC adresy a názvu hostitele. Také si můžete zobrazit výsledky, které jsou agregovány podle domény namísto zobrazení dat ve formě časové osy.
Některé domény jsou ve výchozím nastavení ve výstupu skryty - jedná se např. o reklamy, tracking, CDN, OCPs, browser service domains, což dělá výstup špatně čitelným.
Pokud si chcete zobrazit všechny záznamy musíte PaKon spustit s parametrem –no-filter
.
Tedy pakon-show –no-filter
. Seznam filtrovaných domén najdete v /usr/share/pakon-light/domains_ignore/
.
?
. Tato situace může nastat v případě selhání připojení nebo neznámého protokolu, i přes to můžete získat nějakou představu o daném spojení z cílového portu.like
. PaKon je lepší v rozpoznávání skutečných názvů hostitelů, které by měly odpovídat skutečným názvům, tak jak je vnímá člověk (ne počítač). Majordomo se dotazuje pouze na reverzní záznamy, kdežto PaKon používá i názvy z DNS/app vrsty. Majordomo navíc data agreguje mnohem drastičtěji a nezaznamenává čas, takže není možné data sledovat v časové ose.
Nejnovější data se ukládají do operační paměti a v komprimované podobě jsou zálohována do interního úložiště (soubor pakon.db.xz
v adresáři /srv/pakon
), abyste o data kvůli restartu nepřišli.
Data starší než 24 hodin se agregují a jsou přesunuty do archivu PaKoně (soubor pakon-archive.db
v adresáři /srv/pakon
).
PaKon sleduje dotazy DNS a přiřazuje názvy k IP adresám. Pokud později zaznamená tok (flow) se spárovanou IP adresou, tak použije název se kterou je IP adresa spárována.
V případě, že dotaz DNS nebyl proveden (např. když název nebo mapování IP adresy je napevno v souboru hosts), dokáže Suricata velmi často zjistit název z aplikačního protokolu - v případě HTTP a TLS.
HTTP posílá hostname v hlavičce. TLS je zašifrované, ale ve chvíli kdy dojde ke spojení (v průběhu TLS handshake), klient zašle název serveru (TLS SNI) a server jako odpověď pošle certifikát. Tyto údaje nejsou zašifrované, takže je Suricata přečte i přes to, že data v datovém toku jsou později šifrována.
V případě jiných protokolů spoléhá detekce jen na názvy DNS. Nutno dodat, že používání síťových tunelů jako jsou VPNky, SSH, proxy a Tor, které zcela skryjí aktivitu umožnuje sledovat pouze datový tok k proxy/k bráně, ale ne informace o skutečném toku dat. S tím bohužel nedokážeme nic udělat.
Ano, ale v tuto chvíli je to možné nastavit v pokročilém administračním rozhraní LuCI, které se ve výchozím nastavení nachází na adrese http://192.168.1.1/cgi-bin/luci/. Z horní lišty vyberte Síť → DHCP a DNS, ve spodní části stránky uvidíte Statické zápůjčky, kde je nutné kliknout na tlačítko Přidat.
Pro zobrazení názvu klientů pro Pakoně stačí pouze vyplnit název a zvolit MAC adresu, pokud vyplníte také IP adresu, tak vytvoříte statickou zápůjčku, co znamená, že zařízení dostane vždy tu samou lokální IP adresu.
Ano, můžete změnit seznam rozhraní v konfiguračním souboru /etc/config/pakon
.
Ve výchozím nastavení seznam zahrnuje dvě rozhraní br-lan a WiFi síť pro hosty br-guest_turris.
Můžete přidat nebo upravit rozhraní, které chcete sledovat a po uložení je nutné restartovat následující dvě služby provedením následujících příkazů:
/etc/init.d/suricata-pakon restart /etc/init.d/pakon-monitor restart