Uživatelské nástroje

Nástroje pro tento web

Tato dokumentace již není udržována týmem projektu Turris (přestože ji lze i nadále používat pro sdílení komunitního obsahu). Aktuální oficiální dokumentace se nachází na docs.turris.cz.

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.

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.

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.

Instalace

Ve Forisu

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.

V příkazové řádce

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.

Použití

Administrační rozhraní Foris

Po nainstalování Pakoně najdete záložku Pakoň po jejím rozkliknutí uvidíte statistiky, výsledky a možnost filtrování.

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.

  • Je možné nastavit hostname namísto jejich MAC adres?

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.

  • Mohu nastavit Pakoně pouze pro specifická rozhraní?

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