Wstęp
Pi-Hole jest popularnym narzędziem do blokowania reklam oraz innej niechcianej zawartości pochodzącej z Internetu. Z mego doświadczenia wynika, że ok. 50% ruchu na naszym łączu to treści dodane, niepożądane lub nawet niebezpieczne. Narzędzie to jest serwerem DNS, który ma zdefiniowane i stale uzupełniane listy adresów internetowych, których nie tłumaczy na adres IP jeżeli występują one na zastrzeżonej liście. Pi-Hole umożliwia także definiowanie własnych list adresów, które nigdy nie mają być blokowane. Taki sposób działania narzędzia wyłącza w ogóle z ruchu treści niechciane, a nie jak np. adblockery blokujące wyświetlanie treści już po dotarciu np. do przeglądarki. Jest to szczególnie ważne, gdy mamy łącze limitowane co do ilości danych. Poza tym przy użyciu Pi-Hole strony znacznie szybciej się wczytują, ponieważ nie musimy czekać na dostarczenie treści przez serwery reklam, bo te nie są w ogóle odpytywane. Nie mniej ważną zaletą tego rozwiązania jest możliwość prostego zablokowania stron, których nie powinni np. w pracy odwiedzać pracownicy, np. wszelkich społecznościówek.
Taki serwer DNS nie będzie jednak blokował reklam czy innych treści niechcianych jeżeli pochodzą one z dozwolonej strony. Wówczas najlepszym pomysłem, który sam realizuję będzie instalacja AdNauseam. Jest to nietypowy bloker niechcianych treści działający także na YouTube – nie powodując zauważalnych przerw w oglądaniu filmu. Ponadto „klika” we wszystkie reklamy powodując zatruwanie zbieranych danych, przez co stają się bezużyteczne.
Ponadto Pi-Hole zawiera funkcje:
- lokalnego serwera DNS
- definicji grup użytkowników z możliwością filtrowania treści dla nich przez Pi-Hole podług niemal dowolnych reguł włącznie z niefiltrowaniem treści w ogóle
- blokowanie niepożądanych treści z uwagi na dzieci lub inne przypadki
- logowanie wszelkich połączeń i tworzenia z nich kwerend i wykresów
- możliwość wychwytywania i blokowania niechcianych połączeń
Dlaczego Pi-Hole na Ubuntu Server, a nie na standardowym Raspberry Pi OS? Z dwóch względów. Ubuntu Server jest przeznaczony do zastosowań serwerowych, ma architekturę 64 bitową oraz jest wyraźnie szybszy od Raspberry Pi OS.
Niezbędny sprzęt i oprogramowanie
Pi-Hole nie jest wymagającym oprogramowaniem i w przypadku niewielkiej liczby użytkowników może pracować nawet na Raspberry Pi Zero. Jednak w przypadku zastosowania Ubuntu Server w wersji 64 bitowej w praktyce mamy do dyspozycji tylko Raspberry Pi 3B+ lub 4B.
Oprogramowanie to sam Ubuntu Server w najnowszej wersji LTS i serwer DNS Pi-Hole z pakietem dodatków.
Instalacja Ubuntu Server
Instalację przeprowadzamy wg opisu Przygotowanie Raspberry Pi do poważniejszych zadań.
We wspomnianym opisie w części o zmianie nazwy serwera należy nadać nazwę serwerowi np. „ns”, „dns” lub coś kojarzącego się z jego funkcją.
Po wszystkich zaleconych powyżej działaniach powinniśmy otrzymać system w stanie jak poniżej.

Instalacja Pi-Hole na Ubuntu Server 20.04 LTS (instalacja na późniejszych wersjach Ubuntu przebiega identycznie)
Opis ten dotyczy wyłącznie wersji LTS 64-bitowej.
Instalację rozpoczynamy od polecenia w okienku ssh:
sudo curl -sSL https://install.pi-hole.net | bash
Najpierw otrzymujemy „planszę” startową.

Później otrzymamy kilka plansz informacyjnych oraz z zapytaniami.




Przy wyborze i ewentualnych zmianach podstawowego dla naszego serwera DNS, zewnętrznego serwera DNS należy się kierować naszymi preferencjami. Jeżeli wybierzemy np. Google to możemy zapomnieć o prywatności. Wybrany w powyższym przykładzie Quad9 może nie przekierowywać wszystkich domen, będzie je filtrował. Natomiast DNS.WATCH zapewnia prywatność i nie filtruje (cenzuruje) żadnych domen.

Listy możemy wedle potrzeb uzupełnić później.






To było ostatnie pytanie po którym rozpocznie się proces instalacji serwera DNS.

Plansza ta jest o tyle ważna, że bez podanego tam hasła nie będziemy mogli zalogować się poprzez interfejs WEB do naszego serwera.
Gdybyśmy tę planszę przegapili to w konsoli zostanie jeszcze przypomnienie jak poniżej.

Konfigurowanie Pi-Hole
Na konfigurację składają się przede wszystkim, zmiana hasła z ostatniej planszy. Z poziomu terminala czyli przez ssh:
pihole -a -p

Dodatkowe istotne komendy dla Pi-Hole
Mogą być potrzebna lub pomocne w dalszym użytkowaniu, np. potrzebie rekonfiguracji Pi-Hole bez konieczności ponownej instalacji.
pihole -c
Otrzymamy szereg informacji o samym serwerze DNS, konfiguracji sprzętowej i sprzętowej, jak i samego Pi-Hole.
pihole -t
Komenda ta pokazuje co aktualnie jest filtrowane, jakie są i skąd zapytania oraz co się z nimi dzieje.
pihole -u
Ta komenda pozwoli nam na update Pi-Hole. Jest koniecznym uruchamianie go, gdy interfejs webowy sygnalizuje taką potrzebę. Normalny update z repozytoriów Ubuntu nie zadziała, gdyż Pi-Hole został zainstalowany bez ich udziału.
pihole -r
Tryb naprawy. Gdy chcemy zmienić konfigurację lub całkowicie przeinstalować Pi-Hole.
Polskie filtry do Pi-Hole
Na stronie certyfikate.it znajdziemy nie tylko aktualną listę filtrów lecz także zbiory adresów trackerów, rozsiewających malware czy po prostu ingerujących w prywatność.
Podsumowanie
W ten sposób otrzymaliśmy serwer DNS, który dzięki dostępnym w Internecie filtrom jest w stanie nie tylko nie dopuścić do połączeń z serwerami reklam, ale także z serwerami szkodliwego lub śledzącego oprogramowania co znacznie wpłynie na bezpieczeństwo oraz przyspieszenie naszej domowej sieci. Zapraszam do innych moich wypróbowanych opisów.