De nieuwste release van het Pi-hole project is gepresenteerd, dat een systeem ontwikkelt voor het centraal blokkeren van advertenties binnen lokale netwerken, waardoor het gebruik van adblockers in browsers en op eindapparaten van gebruikers niet nodig is. Het voorgestelde schema is relevant voor het bestrijden van advertenties op apparaten in huishoudelijke netwerken, zoals smart-tv's en media-centers, evenals voor het blokkeren van advertenties in mobiele apps op smartphones. Blokkering in Pi-hole wordt gerealiseerd op het niveau van DNS - het systeem past een zwarte lijst toe van domeinen die gebruikt worden om advertenties weer te geven en leidt verzoeken naar deze domeinen via DNS om naar het adres 0.0.0.0. De bevindingen van het project worden verspreid onder de EUPL 1.2 (European Union Public License).
Voor de installatie van Pi-hole is het voldoende om een shell-script te starten, dat de download en installatie van de benodigde componenten automatiseert. De installatie wordt ondersteund in Debian, Ubuntu, Fedora, Raspberry Pi OS (Raspbian), Armbian en CentOS Stream voor de architecturen x86_64, i386, ARM64, ARMv6, ARMv7 en RISC-V. Het is bedoeld dat Pi-hole kan worden geïnstalleerd op borden zoals de Raspberry Pi (de prestaties van een Raspberry Pi Zero zijn voldoende). Daarnaast wordt een voorgeconfigureerd containerbeeld aangeboden, met een werkende omgeving op basis van Pi-hole.
Pi-hole start DHCP- en DNS-servers, gebaseerd op een gewijzigde versie van dnsmasq. De DHCP-server wordt gebruikt voor het automatisch doorgeven van de instellingen van de DNS-server die voor blokkering wordt gebruikt. Voor het beheer van de DNS-server en de verzameling van statistieken wordt een achtergrondproces genaamd FTLDNS (pihole-FTL) toegepast. Het beheer van FTLDNS kan plaatsvinden via Web API, telnet of de commandoregeltool pihole. FTLDNS accumuleert statistieken over het aantal geblokkeerde en aangevraagde domeinenDNS-verzoeken, blokkering van domeinen van advertentienetwerken, gecachede en omgeleide DNS-verzoeken, en het aantal klanten. Statistieken worden bewaard met behulp van SQLite.
Bovenop de API die door FTLDNS wordt aangeboden, is er een webinterface voor het monitoren en beheren van blokkeringen, gebaseerd op de code van AdminLTE. De webinterface is aangepast voor gebruik op zowel computers met grote schermen als mobiele apparaten. Toegang tot gedetailleerde logs, samenvattende gegevens (zoals de meest populaire klanten en domeinen), visuele weergave in grafieken en diagrammen, selectie van de geschiedenis over een bepaalde periode, filtering van logs, het bijhouden van aparte witte en zwarte lijsten, blokkering op basis van reguliere expressies, en beheer van DHCP- en DNS-instellingen wordt ondersteund.

In de nieuwe release:
- In het achtergrondproces pihole-FTL is een http-server ingebouwd en is er een REST API gerealiseerd. De ingebouwde HTTP-server is gebaseerd op de CivetWeb bibliotheek. Eerder werd een HTTP-server lighttpd gestart om de webinterface te laten functioneren. De serverhandlers van de webinterface zijn herschreven van PHP naar Lua (CivetWeb biedt ingebouwde ondersteuning voor Lua, waardoor PHP niet langer een afhankelijkheid is).
- De filtermogelijkheden voor domeinen zijn uitgebreid en er is ondersteuning toegevoegd voor het aansluiten van externe witte lijsten die bepalen welke domeinen toegankelijk zijn, ongeacht of ze op zwarte lijsten staan.
- Verspreide configuratiebestanden zijn samengevoegd in één bestand in het toml-formaat (\/etc\/pihole\/pihole.toml). Voor het wijzigen van de configuratie kan de toml-bestand direct worden bewerkt, de opdracht “pihole-FTL —config” worden gebruikt, parameters via omgevingsvariabelen worden overschreven, de API worden geraadpleegd, of instellingen via de webinterface worden gewijzigd.
- De opmaak van de webinterface is volledig veranderd, met een scheiding tussen de gewone en de expertmodus.
- Ondersteuning voor HTTPS is toegevoegd met de mogelijkheid om zowel een eigen TLS-certificaat, als een automatische certificaatgeneratie te bieden.
- Het containerbeeld voor Docker is omgezet naar het gebruik van Alpine Linux in plaats van Debian, wat heeft geleid tot een aanzienlijke vermindering van de grootte.
Bron: opennet.ru
