Instalace PI-hole na Ubuntu (Install Pihole Ubuntu)

By | 23/03/2021

Last Updated on 23/03/2021 by administrator

Instalace PI-hole na Ubuntu (Install Pihole on Ubuntu)

Install Pihole on Ubuntu

Motivace:

Pi-hole je aplikace, která slouží k blokování reklam a pofiderních domén na principu DNS sinkhole či DNS blackhole. Aplikace funguje jako DNS server s filtrací doménových jmen. Pokud na PI-hole dorazí DNS dotaz se “škodlivou” doménou, odpoví na dotaz sinkhole IP adresou, což je neexistující IP adresa.

Takto není potřeba na každé síťové zařízení zvlášť instalovat externí aplikaci či doplněk do prohlížeče pro blokování, jelikož tato blokace bude probíhat centrálně v aplikaci PI-hole.

Díky blokaci reklamy se také rychleji načte webová stránka. Zejména videoreklama zatěžuje CPU/GPU, baterii notebooku ale také internetovou linku.

OS:

Implementace byla prakticky vyzkoušena na Ubuntu 20.04.2 LTS a Ubuntu 18.04.5 LTS.

Implementace [1,2]:

Nejdříve je nutné nainstalovat gamin, aby se předešlo problémům s instalací instalačním problémům PI-hole:

sudo apt-get install gamin

Pokud by později nastaly komplikace s první instalaci PI-hole, jednoduše se dá odinstalovat pomocí pihole uninstall a provést znovu kroky instalace.

Any byl mohl být PI-hole stažen, je potřeba nainstalovat curl balíček:

sudo apt-get install curl

Pro instalaci PI-hole aplikovat příkaz níže:

curl -sSL https://install.pi-hole.net | bash

Pokračovat OK:

pi-hole ubuntu
Ke správné funkci je velmi doporučeno, aby měl Ubuntu server přiřazenou statickou IP adresu. Pokud tomu tak není, tento článek pojednává, jak ji nastavit.

pi-hole ubuntu

Pokud má Ubuntu server více síťových rozhraních, objeví se obrázek níže. Zde enp0s3 definuje LAN rozhraní a enp0s8 WLAN rozhraní. V tomto případě je zamýšleno pouze používat pro Pihole rozhraní LAN, a tak bude vybrána možnost enp0s3. Hvezdičkou se vybere možnost a potvrdí ENTEREM.

pi-hole ubuntu

Vybrat libovolného Upstream DNS poskytovatele. Níže je možné nadefinovat i jiný DNS server, než je obsažen v tomto seznamu (volba Custom). Zde bude vybrán server Quad 9 (filtered, DNSSEC), který blokuje škodlivé domény a je zabezpečen pomocí DNSSEC. Pro info DNSSEC chrání domény proti podvodnému přesměrování a to tak, že každá doména je digitálně podepsána. Výpis všech DNS poskytovatelů a jejich popis či vlastnosti lze najít na https://docs.pi-hole.net/guides/dns/upstream-dns-providers. Volbu DNS poskytovatelů lze později změnit:

pihole dns servers

PI-hole se při blokování reklam spoléhá na seznam třetích stran. Zde je tedy možné vybrat jen jeden, nicméně pokud se zobrazí v nabídce více seznamů, tak je doporučeno vybrat všechny:

pihole block list

Pozn. Všechny blokované servery tímto seznamem lze nalézt zde: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts. Seznam je pravidelně aktualizovaný a obsahuje i české servery.

Je možné blokovat reklamy nejen na IPv4 ale i na IPv6 protokolu. Zde budou vybrány oba. Možnost IPv6 může být zvolena, i když se IPv6 protokol nepoužívá:

pihole linux

Pro PI-hole bylo definované síťové rozhraní enp0s3, čili z tohoto rozhraní byla načetla IPv4 adresa 192.168.0.99/24 s výchozí branou 192.168.0.1:

pihole ip address

PI-hole také načetl ze síťového rozhraní enp0s3 IPv6 adresu:

pihole ubuntu

Nainstalovat webadmin rozhraní zvolením možnosti On:

pihole ubuntu

Pokud neměl doteď Ubuntu server nainstalovaný nějaký webový server (např. o Apache server, NGINX, …) zvolit možnost On a tím se nainstaluje lighttpd server.

Pozn 1: Zda byl webový server již nainstalován se dá zjistit pomocí příkazu telnet localhost 80. Pokud se objeví hláška Connected to localhost, je webový server nainstalovaný a může se zvolit volba Off. Nicméně pravděpodobně bude potřeba doinstalovat PHP moduly, pokud nebyly nainstalovány, ale to se může provést až později pomocí sudo apt install php libapache2-mod-php.

Pozn 2: V praxi byla vyzkoušena instalace lighttpd i přestože byl apache server nainstalován a běžel. Díky tomu se lighttpd nepustí (vyzkoušen stop/start, restart – bez efektu). PI-hole tak běžel pod Apache serverem bez problému.

pihole ubuntu

Volba On bude logovat DNS dotazy, které budou zobrazeny v dashboardu:

pi-hole logs

Tímto bude definována úroveň podrobností zobrazení ve statistikách. Volba 0 – Show everything, zobrazí všechny statistiky. Více se lze dočíst zde https://docs.pi-hole.net/ftldns/privacylevels/. Tuto volbu lze později změnit v nastavení PI-hole:

pi-hole FTL

Instalace je hotova. Nezapomenou si někam poznačit admin heslo k webovému rozhraní. V tomto případě běží webové rozhraní PI-hole na http://192.168.0.99/admin

pi-hole ubuntu

Pokud je potřeba změnit heslo k webovému rozhraní provede se to příkazem níže:

sudo pihole -a -p

Ukázka PI-hole webového rozhraní:

pihole ubuntu

Pokud je nakonfigurovaný firewall (lze zjistit příkazem sudo ufw status), je nutné povolit provoz UDP/53:

sudo ufw allow 53/udp

V podstatě se nemusí provádět žádná konfigurace PI-hole a je možné přejít k ověření funkce.

Ověření:

Ještě před změnou DNS serveru na 192.168.0.99 na DHCP serveru, bude ověřeno, zda funguje DNS resolving přes nslookup. Tento příkaz lze použít na OS Windows, či OS Linux. Formát dotazu je: nslookup <doménové jméno> <IP adresa PI-hole>:

C:\>nslookup abc.cz 192.168.0.99
Server:  lubuntu20
Address:  192.168.0.99

Non-authoritative answer:
Name:    abc.cz
Address:  185.62.108.251

Jedno z blokovaných doménových jmen je např. ad.centrum.cz. Jedná se o reklamní server. Pokud je doménové jméno blokováno, PI-hole vrátí 0.0.0.0, a tak nedojde k přesměrování přímo na server ad.centrum.cz.

C:\Users\sec>nslookup ad.centrum.cz 192.168.0.99
Server: sec
Address: 192.168.0.99

Name: ad.centrum.cz
Addresses: ::
0.0.0.0

Pro ověření blokace bude nakonfigurován manuálně PI-hole jako DNS server. Jak již bylo popsáno, PI-hole běží na IP adrese 192.168.0.99:

nastaveni DNS serveru

Příkaz níže smaže DNS cache v OS Windows:

ipconfig /flushdns

Test blokace:

Takto vypadal výsledek před použitím PI-Hole:

pi-hole reklamy

Takto vypadá výsledek s použitím PI-Hole:

pihole blokovani reklam block ads

Aby filtrování přes PI-hole bylo funkční v celé domácí síti, je nutné provést změnu na domácím routeru / wifi routeru, či na jakémkoliv síťovém zařízení poskytující DHCP server. Zde je příklad nastavení pro TP-Link:

set DNS server

Pak záleží na nastavení Lease Time v DHCP nastavení. Zde je Lease time nastaven na 120 min, čili změny by se měly projevit pro všechna síťová zařízení nejpozději po tomto čase.

Síťová zařízení, která již používají PI-hole jako DNS server, lze najít ve webovém rozhraní pod Tools > Network.

TIP:

Další block listy, které lze použít lze najít zde: https://firebog.net/

Tyto block listy lze manuálně po přihlášení ve webovém rozhraní PI-hole vložit v Group Management > Adlists > Add a new adlist.

Info k aktualizacím seznamů domén:

Pi-hole udržuje tzv. gravity list, který obsahuje seznam blokovaných doménových jmen. List je aktualizovaný každý víkend v neděli v náhodný čas pomocí cronu. Lze jej najít v souboru /etc/cron.d/pihole. [3]

Gravility list lze také manuálně aktualizovat pomocí příkazu:

pihole -g

Řešení problémů [4]:

Pokud se nezobrazují statistiky ve webovém rozhraní, jak lze vidět níže:

pi-hole error

Je potřeba vyčistit cache prohlížeče. Návod zde https://www.refreshyourcache.com/en/home/

Pokud to nepomůže, je možné aplikovat restart služby pihole-FTL pomocí příkazu níže:

service pihole-FTL restart

pihole block ads

Zdroje:

[1] https://www.yodiw.com/install-pi-hole-on-ubuntu-20-04-laptop-via-wifi/

[2] https://linuxincluded.com/install-pi-hole-on-ubuntu/

[3] https://discourse.pi-hole.net/t/does-pi-hole-keep-the-lists-updated/13224

[4] https://discourse.pi-hole.net/t/statistics-not-showing-in-dashboard/8972

Leave a Reply

Your email address will not be published. Required fields are marked *