Uživatelské nástroje

Nástroje pro tento web


PaKon - sledování sítě (Parental Control)

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.

Od verze Turris OS 3.9 má PaKon pouze rozhraní v příkazové řádce, webové rozhraní připravujeme.

Podrobnosti

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:

  • zdrojovou IP adresu
  • cílovou IP adresu
  • protokol
  • zdrojový port
  • cílový port

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.

V 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.

Použití

Instalace

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.

Příkazová řádka

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ů.

Vysvětlivky:

  • datetime = datum a čas, kdy byl hostname navštíven
  • dur = jak dlouho bylo spojení na danou doménu otevřeno
  • src MAC = MAC adresa zařízení, které se na na doménu připojilo
  • dst port = cílový port (pro porty přiřazené službám zobrazeno jako název služby)
  • proto = aplikační protokol (detekován Suricatou)
  • sent = počet odeslaných dat
  • recvd = počet přijatých dat

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/.

Pár poznámek na závěr

  • V některých případech je aplikační level neznámý - ?. 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.
  • Webové stránky obvykle zobrazují obsah z více domén, což v případě návštěvy jedné webové stránky dochází k datovým tokům k několika různým doménám.
  • Webové stránky velmi často obsahují obsah z Googlu, Facebooku a ostatních stránek. Jestliže uvidíte ve výstupu Pakoně Facebook, nemusí to nutně znamenat, že Facebook byl skutečně navštíven, ale například že stránka zobrazuje jakýkoliv odkaz na facebook, třeba ve formě tlačítka like.
  • Délka trvání jednotlivých datových toků může být zavádějící. Jedná se o dobu připojení tedy o čas mezi připojením a zavřením. Neznamená to, že spojení bylo aktivní celou dobu. Zjistili jsme, že prohlížeče obvykle nechávají otevřené připojení několik minut, i když byl proveden jen jeden požadavek HTTP.

FAQ (Často kladené otázky)

  • Jaký je rozdíl mezi službou Majordomo a PaKoněm?

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.

  • Kam se data ukládají?

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).

  • Odkud PaKon získává/bere hostname?

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.

  • Příkazová řádka prostě není cool. Bude mít PaKon webové rozhraní?

Ano, pracujeme na něm! :-) Příkazová řádka (CLI) má sloužit jako ukázka funkčnosti plánovaného webového rozhraní.