Została zaprezentowana wersja projektu Pi-hole 6, rozwijającego system do centralnego blokowania reklam w sieci lokalnej, umożliwiającego obejście bez instalacji blokad w przeglądarkach i na urządzeniach końcowych użytkowników. Proponowany schemat jest aktualny w walce z reklamami na urządzeniach w sieciach domowych, na przykład na inteligentnych telewizorach i centrach multimedialnych, a także do blokowania reklam w aplikacjach mobilnych na smartfonach. Blokada w Pi-hole realizowana jest na poziomie DNS — system stosuje czarną listę domen używanych podczas wyświetlania reklam i na poziomie DNS przekierowuje zapytania do tych domen na adres 0.0.0.0. Osiągnięcia projektu są rozpowszechniane na licencji EUPL 1.2 (European Union Public License).
Aby zainstalować Pi-hole, wystarczy uruchomić skrypt shellowy, który automatyzuje pobieranie i instalację niezbędnych komponentów. Instalacja jest wspierana w Debianie, Ubuntu, Fedorze, Raspberry Pi OS (Raspbian), Armbianie i CentOS Stream dla architektur x86_64, i386, ARM64, ARMv6, ARMv7 oraz RISC-V. Zakłada się, że Pi-hole można zainstalować na płytach takich jak Raspberry Pi (do pracy wystarczy wydajność Raspberry Pi Zero). Dodatkowo dostępny jest wstępnie skonfigurowany obraz kontenera, który zawiera gotowe do pracy środowisko oparte na Pi-hole.
Pi-hole uruchamia serwery DHCP i DNS, oparte na zmodyfikowanej wersji dnsmasq. Serwer DHCP jest używany do automatycznego przesyłania ustawień serwera DNS, zaangażowanego w blokowanie. Do zarządzania serwerem DNS i zbierania statystyk stosowany jest proces w tle FTLDNS (pihole-FTL). Zarządzanie FTLDNS można przeprowadzać przez Web API, telnet lub narzędzie wiersza poleceń pihole. FTLDNS gromadzi statystyki o liczbie zablokowanych i zgłoszonych domenów, przychodzących zapytaniach DNS, blokadzie domen sieci reklamowych, skonfigurowanych i przekierowanych zapytaniach DNS, liczbie klientów. Statystyki są przechowywane za pomocą SQLite.
Na API dostarczanym przez FTLDNS zrealizowano interfejs webowy do monitorowania i zarządzania blokadami, oparty na kodzie AdminLTE. Interfejs webowy jest dostosowany do pracy zarówno na komputerach z dużymi ekranami, jak i urządzeniach mobilnych. Obsługiwany jest dostęp do szczegółowych logów, zestawienia danych (np. najpopularniejsi klienci i domeny), wizualizacja w postaci wykresów i diagramów, wybór historii z określonego okresu, filtrowanie logów, prowadzenie oddzielnych list białych i czarnych, blokowanie na podstawie wyrażeń regularnych oraz zarządzanie ustawieniami DHCP i DNS.

W nowym wydaniu:
- W tle procesu pihole-FTL wbudowany jest serwer http i zrealizowane jest REST API. Wbudowana realizacja serwera HTTP oparta jest na bibliotece CivetWeb. Wcześniej do organizacji pracy interfejsu webowego uruchamiano serwer HTTP lighttpd. Serwerowe procesory interfejsu webowego zostały przepisane z PHP na Lua (CivetWeb zapewnia wbudowaną obsługę Lua, co pozwoliło wyeliminować PHP z zależności).
- Rozszerzono możliwości filtrowania domen oraz dodano wsparcie dla podłączenia zewnętrznych list białych, definiujących domeny, do których dostęp będzie dozwolony, niezależnie od figurowania na czarnych listach.
- Rozproszone pliki konfiguracyjne zostały połączone w jeden plik w formacie toml (/etc/pihole/pihole.toml). Aby zmienić konfigurację, można bezpośrednio edytować plik toml, użyć komendy „pihole-FTL —config”, nadpisać parametry przez zmienne środowiskowe, korzystać z API lub zmieniać ustawienia przez interfejs webowy.
- Całkowicie zmieniono wygląd interfejsu webowego, wprowadzając podział na tryb zwykły i tryb ekspercki.
- Dodano wsparcie dla HTTPS z możliwością dostarczania zarówno własnego certyfikatu TLS, jak i automatycznego generowania certyfikatu.
- Obraz kontenera dla Dockera przetworzono na użycie Alpine Linux zamiast Debiana, co pozwoliło znacznie zmniejszyć jego rozmiar.
Źródło: opennet.ru
