O aplikaci Pi-hole se můžete na internetu dočíst spoustu informací. To podstatné je, že tuto aplikaci je možné využít k několika účelům:
Díky LXC kontejnerům je možné Pi-hole nainstalovat i na router Turris Omnia a není to vůbec složité.
Nejdříve je nutné vytvořit LXC kontejner. To je možné udělat v LuCI skrz Služby - LXC Containers. Jako vhodný kontejner se jeví kontejner s Debianem (tam to funguje určitě). S Debianem může být problém, proto jako alternativu doporučuji využít jednu z verzí Ubuntu - je třeba vygooglit, jaká verze je vhodná (v nabídce je aktuální, long-term a beta/testovací verze). Pro přehlednost je dobré kontejner pojmenovat Pihole.
Možné je to také provést skrz SSH (PuTTY, příkazová řádka na Linuxu nebo alternativa) s následujícími příkazy:
lxc-create -t download -n Pihole
Po zadání tohoto příkazu se objeví seznam dostupných distribucí a verzí. Zároveň dotaz na to, co chceš nainstalovat. Cestou nejmenšího odporu stačí vytouženou položku podle dotazu levou myší zkopírovat ze seznamu a vložit pravou myší jako příkaz a odentrovat (nejdřív položku z prvního, pak z druhého a nakonec ze třetího sloupce). Po chvíli je hotovo (připomínám, že se jedná o to samé, co přes LuCI, jen to není v „klikacím módu“).
Je celkem vhodné LXC kontejneru přidělit i pevnou IP adresu v rámci LAN sítě (Pi-hole si o to v proceduře dále řekne a přidělí nějakou nahodilou). K tomu, aby nebyla přidělena nahodilá adresa, ale adresa dle mých představ, je třeba jít v LuCI do Síť - DHCP a DNS a v části Statické zápujčky dát vlevo dole Přidat a do záznam upravit dle potřeb - na obrázku jsem pojmenoval kontejner pihole dohledal jsem si MAC adresu kontejneru a zvolil jsem si pro něj IP 192.168.1.2 (pro snadnou orientaci - bacha na možnou duplicitu IP), nezapomenout uložit.
Následně je vhodné přejít do SSH terminálu (skrz PuTTY nebo terminál v linuxových distribucích). Tam se přihlaš k Omnii - typicky skrz port 22, IP adresu 192.168.1.1 a účet root s tebou zvoleným heslem. V terminálu je třeba zadat následující dva příkazy (v přesném znění, pokud jsi vytvořil kontejner Pihole):
lxc-start -n Pihole lxc-attach -n Pihole
První příkaz spustí kontejner a druhý příkaz přepne příkazovou řádku z módu Omnia do módu řádky kontejneru (ovládá se kontejner). Pro instalaci Pi-hole je nutné nainstalovat curl a aktualizovat Debian, proto je nutné zadat příkazy:
apt-get update apt-get upgrade (potvrdit Y) apt-get install curl (potvrdit Y)
Instalace chvíli potrvá (je nutné aktualizovat Debian, a pak až teprve instalovat curl, jinak se curl nenainstaluje). Po úspěšné instalaci je možné instalovat samotné Pi-hole. K instalaci je nutné zadat příkaz:
curl -sSL https://install.pi-hole.net | bash
Tento příkaz je ze stránky projektu. Po potvrzení příkazu se po chvilce objeví logo Pi-hole a po chvíli naskočí grafická instalace. V tomto bodě je možné jet podle návodu na Pi-hole webu, ale raději to tu také popíši, protože jako Turristi máme svá specifika.
Nejdříve vyskočí hláška, že zařízení bude převedeno na adblocker (to nám může být jedno - provozujeme virtuální mašinu, takže se nejedná o nasazení hardwaru, který by mohl být použit i na něco jiného). Následuje pár oken o projektu (možné je i přispět) a prvním podstatným oknem je okno s DNS providerem - tam je čistě na uživateli, koho si vybere. Následující okno nabízí možnost volby protokolu, kde blokace bude probíhat (IPv4 nebo IPv6). V následujícím okně se zobrazí informace o statické IP adrese pro Pi-hole zařízení a adrese routeru samotného. Objeví se pár oken s informacemi, které je možné v klidu potvrdit a objeví se okno s možností instalace webového rozhraní pro Pi-hole, volba je na uživateli, ale rozhodně doporučuji rozhraní instalovat, řešení bez rozhraní je dle mého názoru polovičaté. Po odsouhlasení se spustí instalace (opět to chvíli trvá).
Po úspěšné instalaci naskočí potvrzovací okno - zde je ten moment, kdy je třeba opsat některé údaje na papír, či do poznámkového bloku. Podstatné jsou poslední 3 řádky: IP adresa/admin a heslo.
Po uložení údajů můžete odsouhlasit a pustit se do zkoumání nově nainstalovaného blokátoru. Ještě je nutné provést pár věcí.
Ke správnému chodu Pi-hole je třeba ještě udělat dvě věci.
První položkou je přesměrování WAN skrz Pi-hole. To je možné udělat jednoduše skrz LuCI. V LuCI jdi do Síť - Rozhraní a u WAN dej Upravit. Vyskočí několik přepínatelných karet, dej Pokročilé nastavení. Odškrtni položku Use DNS servers advertised by peer a do Použít vlastní DNS servery zadej IP adresu, kterou má tvůj Pi-hole (IP adresa bez „http“ a „admin“), nakonec dej Uložit a použít. Nyní ti jde provoz skrz Pi-hole. Za následek to má ten fakt, že v Pi-holu uvidíš jen jednoho klienta, který Pi-hole využívá - provoz se bude sbíhat v Turrisu, pak teprve komunikace putuje do Pi-holu.
I z vlastní zkušenosti mohu potvrdit, že dříve popsaná metoda (skrz WAN) nemusí vždy fungovat (důvodů asi může být více). Jednoduše se to pozná tak, že možnost pro předchozí nastavení v nastavení rozhraní WAN neexistuje. Samotné Pi-hole je proto nutné zprovoznit skrz DHCP routeru. V tomto případě je třeba jít do Síť - Rozhraní, a tam je nutné vybrat LAN. Na úplném konci stránky rozhraní (LAN) je právě nastavení DHCP rozhraní, tam je třeba vybrat záložku Pokročilé nastavení, a tam upravit položku Volby DHCP, kam je třeba zadat IP adresu Pi-holu ve tvaru: 6,IP_adresa_Pi-Hole.
Takže pole s IP adresou může vypadat např. takto: 6,192.168.1.2 (viz. obrázek). Nyní stačí nastavení už jen uložit a vše by mělo fungovat. Toto řešení má tu výhodu, že v Pi-holu se bude zobrazovat několik klientů, takže Pi-hole nemonitoruje/blokuje jen jednu IP adresu (jako v případě WAN řešení), ale IP adresu pro každé zařízení zvlášť, což má své výhody. Oproti předešlému řešení bude dávat větší smysl graf a tabulka níže.
Druhá položka je spuštění kontejneru po restartu Omnie. Je nutné upravit soubor /etc/config/lxc-auto (například skrz WinSCP). Do tohoto souboru je nutné přidat následující řádky (opět, pokud jsi kontejner pojmenoval Pihole):
config container option name Pihole option timeout 60
Nyní máš již plně funkční Pi-hole na Omnii. Skrz webové rozhraní si můžeš pohrát s nastavením dle potřeb (přidávat stránky do blacklistu a podobně), lze to kombinovat i s nastavením přímo v Omnii. Pokud se objeví nějaká aktualizace, objeví se ti upozornění v zápatí stránky. Aktualizace provedeš za pomoci přihlášení do příkazové řádky kontejneru a v ní stačí zadat již zmíněný příkaz curl -sSL https://install.pi-hole.net | bash, po jehož potvrzení se ti objeví nabídka, jestli chceš Pi-hole updatovat nebo změnit nastavení. Webové rozhraní pak může vypadat třeba takto. Poznámka: Takto vypadala starší verze Pi-holu, zároveň je vidět, že jsem Pi-hole používal skrz WAN/DNS řešení.
Pokud budete instalovat Pi-hole dnes a pomocí metody LAN/DHCP, tak by dashboard mohl vypadat nějak takto (obrázek navíc obsahuje graf Spedtest rozšíření - návod k instalaci je na fóru - ale s novými verzemi Turris OS je to už asi zbytečné).
Skrz Pi-hole je možné blokovat i weby. Samotná blokace je velice snadná. Stačí se přihlásit do webového rozhraní (dle postupu zde http://192.168.1.2/admin + zadat heslo pro rozhraní).
V položce Blacklist je pak možné přidávat weby pro blokaci. Blokovat je možné konkrétní adresy (exact - zablokuje jen zadanou adresu), nebo wildcard - což může být použitelnější varianta (prostě zablokuje celou stránku dle zadání).
Pro příklad to je možné zkusit s YouTubem. Po zadání www.youtube.com a přidání, se přístup na tuto stránku zablokuje.
Block List můžeš do Pi-holu přidat kliknutím na Settings, dále vyber kartu Block Lists a do pole pro odkaz nakopíruji tebou zvolený odkaz. Nezapomeň kliknout na Save and Upadte - chvíli to trvá. Po načtení a aktualizaci již Pi-hole s block listem pracuje.
Rozdíl je takový, že black list je lokální a block list se natahává z externího zdroje. Buď si tedy můžeš spravovat vlastní black list, nebo se můžeš spolehnout na block list, který dává dohromady někdo jiný, a který je možné zároveň i aktualizovat.
V rámci sepisování této dokumentace a řešení problémů spojených s Pi-holem jsem se vrhnul do tvorby block listu ideálně pro českého uživatele Pi-holu. Výstup je možný najít na několika odkazech:
Na spolutvorbě tohoto block listu se můžeš podílet i ty, existují dva jednoduché způsoby, jak přispět:
Já jsem k většině odkazů přišel skrz Privacy Badger, který je možné sám o sobě použít jako AdBlocker. Toto rozšíření, v mém případě do Firefoxu (funguje i na Chromajzlu), zobrazuje na webech zdroje, které uživatele mohou nějak ovlivnit - sledovat atd. (viz. popis na odkazu). Zkrátka mi to vyplyvne seznam zrojů objektů na daném webu, mezi nimi jsou zdroje pro “normální” obsah, proč na ten web jdu + seznam té havěti, která slouží pro reklamu a sledování = to přesně hledám.
Takové šťouravější řešení je na reklamu najet myší a pravým myšítkem v seznamu zvolit Prozkoumat prvek a v kódu stránky dohledat zdroj reklamy a z odkazu vybrat jen to, co je před doménou nejvyššího řádu včetně domény samotné (to jsem si naběhl psát zrovna tady o doménách atd.), prostě všechno, co je před prvním lomítkem v odkazu (kromě http: a https: a vším před tím). Nebojte, prohlížeče jsou chytré a po najetí na část kódu označí oblast stránky, které se kód týká, takže dojde k ověření, že daný odkaz je opravdu zdrojem reklamy.
Pokud se chcete přesvědčit o funkčnosti, nezapomeňte si vymazat mezipaměť a data stránek ve svém internetovém prohlížeči. Po výmazu mezipaměti například za pomoci CCleaneru a zadání www.youtube.com do příkazového řádku prohlížeče se již zobrazí hláška, že daný web je nedostupný. Takto je možné blokovat jakýkoliv web. Opět je možné projít různá tématická fóra Pi-hole, kde jsou různé seznamy webů, které je možné blokovat - uživatel pak nemusí své seznamy vymýšlet a dávat dohromady, ale může se inspirovat již seznamy někým vytvořenými, případně je nějak kombinovat.
Pi-hole nově umí zobrazovat historiucká data. Stačí v hlavní nabídce vlevo vybrat položku Long term data a vybrat jednu z následujících karet. V každé kartě je možné v kolonce Date and time range vybrat časové období pro zkoumání dle potřeb.
Zobrazí graf DNS požadavků za časové období. V grafu jsou zvlášť znázorněny Pi-holem blokované dotazy. Může sloužit pro ozbrazení a odhalení nějaké nevědomé/nebezpečné činnosti (nejsem doma přesto jsou pokládány DNS dotazy ve velkém množství).
Za časové období zobrazuje všechny DNS záznamy jdoucí přes Pi-hole. Zobrazuje se čas, verze IP, doména, IP klienta a akce, která byla provedena. V horní části jsou souhrnné hodnoty.