Foi lançado o projeto Pi-hole 6, que desenvolve um sistema para bloqueio centralizado de anúncios em redes locais, permitindo a dispensa da instalação de bloqueadores em navegadores e em dispositivos finais do usuário. O esquema proposto é relevante para combater anúncios em dispositivos em redes domésticas, como smart TVs e media centers, bem como para bloquear anúncios em aplicativos móveis em smartphones. O bloqueio no Pi-hole é implementado em nível de DNS — o sistema aplica uma lista negra de domínios utilizados para exibição de anúncios e redireciona, em nível de DNS, solicitações a esses domínios para o endereço 0.0.0.0. As inovações do projeto são distribuídas sob a licença EUPL 1.2 (Licença Pública da União Europeia).
Para instalar o Pi-hole, basta executar um script shell que automatiza o download e a instalação dos componentes necessários. A instalação é suportada em Debian, Ubuntu, Fedora, Raspberry Pi OS (Raspbian), Armbian e CentOS Stream para as arquiteturas x86_64, i386, ARM64, ARMv6, ARMv7 e RISC-V. Presume-se que o Pi-hole pode ser instalado em placas como Raspberry Pi (é suficiente o desempenho do Raspberry Pi Zero). Além disso, é oferecida uma imagem de contêiner pré-configurada, contendo um ambiente pronto para uso baseado no Pi-hole.
O Pi-hole executa servidores DHCP e DNS baseados em uma versão alterada do dnsmasq. O servidor DHCP é usado para transmitir automaticamente as configurações do servidor DNS envolvido no bloqueio. Para gerenciar o servidor DNS e coletar estatísticas, utiliza-se um processo em segundo plano chamado FTLDNS (pihole-FTL). O gerenciamento do FTLDNS pode ser feito através da API Web, telnet ou da ferramenta de linha de comando pihole. O FTLDNS acumula estatísticas sobre o número de bloqueios e solicitações, domíniosconsultas DNS bloqueadas, domínios de redes publicitárias bloqueados, consultas DNS em cache e redirecionadas, e o número de clientes. As estatísticas são armazenadas usando SQLite.
Sobre a API fornecida pela FTLDNS, foi implementada uma interface web para monitoramento e gerenciamento de bloqueios, baseada no código AdminLTE. A interface web é adaptada para funcionar tanto em computadores com telas grandes quanto em dispositivos móveis. O acesso a logs detalhados é suportado, além de dados consolidados (por exemplo, clientes e domínios mais populares), visualização gráfica, seleção de histórico por um determinado período, filtragem de logs, manutenção de listas brancas e negras separadas, bloqueio por expressões regulares, e gerenciamento das configurações de DHCP e DNS.

No novo lançamento:
- No processo em segundo plano do pihole-FTL, um servidor HTTP está embutido e uma API REST foi implementada. A implementação embutida do servidor HTTP é baseada na biblioteca CivetWeb. Anteriormente, um servidor HTTP lighttpd era iniciado para a operação da interface web. Os manipuladores do servidor da interface web foram reescritos de PHP para Lua (CivetWeb fornece suporte embutido a Lua, o que permitiu eliminar o PHP das dependências).
- As capacidades de filtragem de domínios foram ampliadas e agora é suportada a conexão de listas brancas externas, que definem domínios que serão permitidos independentemente de estarem nas listas negras.
- Os arquivos de configuração dispersos foram agrupados em um único arquivo no formato toml (\/etc\/pihole\/pihole.toml). Para alterar a configuração, é possível editar diretamente o arquivo toml, usar o comando "pihole-FTL --config", sobrepor parâmetros através de variáveis de ambiente, acessar a API ou mudar as configurações através da interface web.
- O design da interface web foi completamente remodelado, introduzindo uma divisão entre modos normal e avançado.
- Adicionada suporte a HTTPS com a opção de fornecer tanto um certificado TLS, quanto a geração automática de certificados.
- A imagem do contêiner para Docker foi alterada para utilizar Alpine Linux em vez de Debian, o que resultou em uma redução significativa do tamanho.
Fonte: opennet.ru
