• Kernel Panic

    Clique para ler tudo sobre a nova reforma ao Kernel Panic!

  • Modelação 3D

    Clica para ver as postagens relacionadas com modelação 3D

  • Informática

    Clica para ler todos os meus posts relacionados com Informática

  • Tutoriais

    Tutoriais vários relacionados com inúmeras tecnologias informáticas!

Instalar o pi-hole em 2022

Dear future Kenny,

Um dos grandes problemas de navegar pela Internet neste século é a quantidade ridícula de publicidade em _todo_ o lado. 

Há inúmeras formas de contornar este problema. Firefox + Adblock Origin funciona particularmente bem, mas há uma forma ainda mais eficiente: bloquear pedidos DNS a tudo o que seja publicidade. 

Simplificando a coisa, sempre que é detectado que o browser faz um pedido a um domínio que seja usado apenas para publicidade, tipo publicidade.exemplo.pt, o pedido DNS é bloqueado, e a publicidade não é carregada pelo browser. Podemos na mesma navegar pelo site, visto que exemplo.pt não é bloqueado, só tudo o resto. Não sendo sequer carregada a publicidade, a página até carrega mais depressa, e em ligações com limitação de dados é particularmente útil. 

Estes "sites" de publicidade normalmente residem em domínios próprios (muitas vezes partilhados) o que faz com que seja relativamente simples criar listas destes domínios para bloquear em massa. 

A aplicação pi-hole faz tudo isso por nós. Desenvolvida inicialmente para correr num Raspberry Pi (RPI), foi entretanto portada para containers (mas neste caso têm de correr em host mode) sendo possível instalar em qualquer lado. A ideia é usar o pi-hole para substituir o DNS server da rede (normalmente é usado o do ISP) e bloquear tudo o que seja publicidade. 

A instalação num RPI é super simples, num terminal com um user com acesso sudo ou mesmo com o root:

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

(instalar algo directamente, principalmente um script, via pipe para bash é um tópico quente, visto que não é seguro, alternativas de instalação aqui)

A ferramenta de instalação é bastante simples e intuitiva. É necessário ter um IP estático para o RPI (configurável no DHCP server -normalmente o ISP router- ou no próprio RPI). 

Após instalar, é só configurar na ligação de rede o RPI como servidor DNS. Isto pode ser feito de inúmeras formas, a mais simples é definir no DHCP server que o DNS server é o IP do RPI (os routers de alguns ISP - tipo o meu - não deixam fazer isto, a solução é usar o RPI como DHCP, algo facilmente configurável na interface web do pi-hole). 

Para aceder à intuitiva interface do pi-hole é só aceder via browser a pi.hole ou directamente ao IP do RPI. A password foi partilhada no final do processo de instalação. Esta pode ser mudada via:

pihole -a -p

O Pihole pode depois ser usado como DHCP e DNS (sendo que é preciso seleccionar um DNS upstream, é uma boa ideia usar o OpenDNS, mas whatever suits you... A melhor solução ainda é instalar também o Unbound para ter o máximo de privacidade (a solução que tenho a correr num Raspberry Pi 2 sem nunca ter tido problemas).

Há um pequeno caveat. Pelo menos no meu ISP, ter Pi-hole a funcionar para toda a rede (graças ao DHCP) fez com que a TV box não colaborasse. A solução é excluir estes equipamentos do DHCP.


Past Kenny is awesome,
Kenny.


Endereços MAC dinâmicos no wlan0 de um Raspberry Pi

Instalei o Cockpit nos Raspberry Pi cá de casa, isto permite gerir de forma relativamente simples múltiplos dispositivos pelo browser. 

O problema é que instala o Network Manager, que por defeito vai mudando o MAC Address da interface Wifi (wlan0) quando a interface sobe. Como uso os endereços MAC para associar IPs fixos, isto era problemático, pois os Raspberry Pi ligavam-se à VLAN pública cá do burgo e essa não é a mais segura. :P 

Para resolver, é só editar o ficheiro:

/etc/NetworkManager/NetworkManager.conf

Adicionando:

[device]
wifi.scan-rand-mac-address=no

E dar reboot. O MAC address volta ao original (é hardcoded no equipamento). 

(colocando a variável a yes podemos voltar a activar esta característica, muito fixe quando nos ligamos a redes públicas).

Dumping random data,
Kenny.

Adicionar git-bash ao Windows Terminal

Sim, estou a usar o blog como repositório de procedimentos que repito várias vezes. :)

Arranjar um GUID aqui.

Procurar a pasta onde está instalado o git-bash, para mim seria:

E:\Apps\Git\bin

Mas por default é:

C:\Program Files\Git\bin\bash.exe

No Windows Terminal, clicar no drop-down menu, ir às Configurações/Settings. Nas novas versões é possível adicionar um novo terminal facilmente sabendo ler. :P No meu caso, porque gosto de simplesmente fazer copy/paste a configurações, vou clicar em "Abrir o arquivo JSON" no canto inferior esquerdo.

Depois navego o JSON até "profiles" > "list" e adiciono um novo grupo:

{
     // Git-Bash profile
    "guid": "{ab13180e-84a8-4389-a053-b707afd4ac67}",
    "name": "Git-Bash",
    "commandline": "C:\\Program Files\\Git\\bin\\bash.exe"
},

Copy/Paste, Save, e é isso. :)

O Windows Terminal permite muito mais configurações (icon para adicionar um ícone, por exemplo). Check here.

Fun stuff,
Kenny.

Unraid - versão Docker como "not available"

Desde a última vez que aqui escrevi que muita coisa mudou, principalmente em termos de tecnologia. Vamos ver que bits and pieces posso espetar aqui que não me façam perder anos de vida. :) 

Tenho o Unraid instalado num dos muitos servidores que arranjei e há relativamente pouco tempo, na aba que gere os containers aparece na versão de todos os containers a string "not available", indicando que provavelmente o serviço que gere isto não está a conseguir interagir com a API, porque algo mudou. 

Isto acontece com a versão 6.8.3 e pode ser supostamente corrigido com a nova versão. No entanto sou uma pessoa coerente e só actualizo quando as restantes cobaias deixam de reportar bugs, implicando que o Unraid está pronto para consumo. :) 

Para resolver este problema, é só seguir estes passos:

  1. ssh para a máquina: ssh root@tower (literalmente o hostname default do Unraid, your mileage may vary);
  2. vi /usr/local/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php +457
  3. Confirmar que estão na linha 457. :p
    1. Teclar i para entrar em insert mode
    2. Trocar @Docker-Content-Digest:\s*(.*)@
    3. Por @Docker-Content-Digest:\s*(.*)@i
    4. Carregar em Esc, e inserir :wq para salvar e sair. 
  4. No GUI do Unraid, na aba "Docker" clicar em "Check for Updates". E voilá, está resolvido. 

Importa referir que caso façam reboot à máquina é preciso voltar a correr isto, mas como esta máquina é um server nunca é desligada. :D

Good times!
Kenny.
 
Kernel Panic © 2003-2011 | Designed by Trucks, in collaboration with MW3, Broadway Tickets, and Distubed Tour