sábado, 1 de junho de 2019

Configurando o PiHole e o PiVPN para privacidade e segurança na era da IoT

0 comentários



Meu painel do PiHole
Ao longo do tempo, venho reunindo dispositivos da Internet das Coisas (IoT) que facilitam muito a configuração de um timer para a lavanderia, assistindo TV e desligando as luzes, mas também compartilham muitos dados sobre meu uso e muito mais. Sendo bastante consciente da privacidade, é a parte "muito mais" que começou a me incomodar, especialmente a política de privacidaderecentemente atualizada da Roku que descreve a coleta do nome da rede Wi-Fi e dados de conexão e informações sobre outros dispositivos conectados à mesma rede . Eu paguei o preço total pelo dispositivo Roku, por isso não estou oferecendo um serviço gratuito onde o usuário é o produto.Mas também não é razoável remover todos os dispositivos de IoT e esse tipo de coleta de dados só vai proliferar com o tempo, então decidi ter mais controle sobre como e quais dados eu compartilho, instalando o PiHole. Eu também instalei o PiVPN para tornar minha rede doméstica mais segura enquanto acessava de fora da minha casa.

Meu Raspberry-Pi e Synology NAS

Equipamentos e Configuração

Este é o equipamento que precisava para trabalhar com a minha configuração -
  • ARRIS BGW210–700 modem + roteador fornecido pela ATT
  • Synology NAS DS918 + que executa o meu Plex Media Server
  • Roku Ultra conectado à TV
  • Google Home Mini
  • Lâmpadas TP-Link
Eu precisava comprar isso para minha nova configuração -
  • Kit de framboesa-Pi com adaptador de energia (eu comprei um por V-Kitsporque eu gostei da capa clara)
  • Cartão SD (eu comprei Samsung 32GB EVO Plus Classe 10 Micro SDHC porque foi recomendado online. Pi precisa de SDHC). Se você não tiver um leitor de cartão SD no seu computador, você também precisará de um adaptador USB .
Vamos cavar a configuração. Instalei o PiHole para bloquear anúncios e rastreadores em todos os dispositivos em toda a minha rede doméstica. Configurei o PiVPN porque meu roteador Arris não fornece uma interface de encaminhamento de porta muito fácil de usar, por isso é mais fácil simplesmente redirecionar uma porta necessária para VPN e acessar todos os meus dispositivos domésticos por meio da VPN quando em redes externas. Isso também impede que meus dispositivos sejam acessados ​​diretamente da Internet, adicionando outra camada de segurança. Se você não se importa em acessar seus dispositivos de fora da rede, pode pular a instalação do PiVPN.

Instalando o PiHole

Os desenvolvedores do PiHole tornaram sua configuração realmente fácil, mas começar com um Pi em branco leva alguns passos iniciais - instalar um SO no seu Pi como o Raspbian-lite, certificando-se de que o SSH está habilitado para que você não precise conectar um teclado e finalmente instalar o PiHole . Você pode seguir as instruções detalhadas no artigo de Jeff Geerling para isso ou eu forneci as etapas principais abaixo.
  1. Configure o seu kit Pi de acordo com as instruções do kit. Conecte-o ao seu roteador através de um cabo Ethernet.
  2. Se você tiver um Macbook com um leitor de cartão SD, você pode configurar o cartão SD antes de inseri-lo no Pi. 
    Instale o Raspbian-lite (o SO baseado em Linux para o seu Pi) e habilite o SSH usando diskutilcomo mostrado abaixo e descrito por Jeff Geerlingse você tiver MacOS ou um procedimento muito semelhante no Linux (com uma ligeira diferença apenas durante a instalação do Raspbian). Não instale o PiHole agora mesmo. 
    Primeiro baixe Raspbian Lite , em seguida, no Terminal no seu Macbook depois de inserir o cartão SD, use diskutil listpara identificar o disco do cartão SD como /dev/disk2, em seguida, desmonte-o usando unmount/dev/disk2, e escreva a imagem Raspbian baixada de sua localização como Downloadsusar sudo dd if=raspbian-image.img of=/dev/rdisk2 bs=1manotando o r extrano cartão SD diskname. Quando a imagem for gravada com sucesso, você verá o cartão SD no seu Macbook como uma bootunidade. Ative o ssh digitando touch /Volumes/boot/ssh.
  3. Depois de ejetar o cartão SD, insira-o no Pi e ligue o Pi.
  4. Vá para as configurações do roteador e verifique se o Pi recebe um IP estático. Eu também recomendo desabilitar o IPv6 no seu roteador, pois após a minha configuração, notei que algumas das consultas estavam vazando através do IPv6 e já que não é possível corrigir um IPv6 estático para o Pi no meu roteador. Se você desabilitar o IPv6, reinicie o roteador e o Pi antes de continuar.
  5. Prepare o Pi para instalar o PiHole conectando ao seu Pi usando o SSH do seu laptop ssh pi@ip_addressEspecifique o endereço IP estático do seu Pi no arquivo de configuração usando sudo nano /etc/dhcpcd.confe adicionando as seguintes instruções ao final -  Para um roteador ATT semelhante ao meu, o endereço do roteador é e a máscara de sub-rede sobre quais IPs locais estão alocados Reinicie o Pi usando e configure-o usando Reinicialize novamente e reconecte usando ssh.
    interface eth0
    static ip_address=ip_address
    static routers=router_ip
    static domain_name_servers=subnet mask

    192.168.1.254192.168.1.64
    sudo rebootsudo raspi-config
  6. Instale o PiHole usando o processo passo-a-passo depois de invocar o seguinte comando do PiHole GitHub  - 
    curl -sSL https://install.pi-hole.net | bash
  7. Após a conclusão da configuração, o PiHole precisa ser ativado em todos os dispositivos para que eles usem o PiHole DNS para consultas na Web. Se você tem um roteador como o meu que não permite que você mude o DNS, então você tem que usar a abordagem DHCP para ativar o PiHole na sua rede. Conecte-se ao painel da Web do PiHole a partir do seu laptop, http://192.x.x.x/admin/substituindo o endereço pelo seu PiHole IP. Em Configurações → DHCP, ative o servidor DHCP, forneça o mesmo intervalo que o DHCP do roteador e o endereço IP do roteador. Em seguida, vá para as configurações do roteador e desative o DHCP lá. Se você desativou o IPv6 no roteador, desative também o IPv6 nas configurações DHCP do PiHole.
  8. Reinicie seu roteador, Pi e todos os dispositivos conectados nessa ordem.
  9. Todos os seus dispositivos devem estar recebendo suas concessões de DHCP do PiHole. Você pode verificar isso voltando às configurações do PiHole e garantindo que todos os dispositivos sejam exibidos na lista de concessões de DHCP. Se você quiser atribuir IP estático a determinados dispositivos, também pode fazer isso aqui.
  10. Certifique-se de que seus dispositivos com uma opção para alterar o DNS estejam usando o DNS padrão ou configurem seu DNS para o endereço IP do Pi. Todo o seu tráfego deve agora ser roteado através do PiHole, que está bloqueando todos os domínios em sua lista negra.
  11. Se você quiser ir além dos domínios padrão da lista de bloqueio, poderá adicionar mais listas em Configurações → Bloquear listas no painel do PiHole. O WaLLy3k tem um bom repositório de listas de bloqueio. Depois de modificar as listas de bloqueio, use a opção Salvar e Atualizar ou vá para Ferramentas → Atualizar Gravidade para ativar as listas.
  12. PiHole web dashboard é seu amigo! Divirta-se explorando todos os domínios bloqueados que recebem ping a cada poucos segundos em dispositivos que você achava que não estavam ativos.

Minhas configurações de DHCP no painel do PiHole

Instalando o PiVPN

Os desenvolvedores do PiVPN foram inspirados pelo PiHole para criar uma instalação fácil passo a passo do servidor OpenVPN no seu Pi. Uma VPN permitiria que você se conectasse a dispositivos locais em sua rede doméstica a partir de redes externas, mantendo seus dispositivos ocultos da Internet. Para configurar o PiVPN no mesmo Pi que o PiHole -
  1. Configure o encaminhamento de porta para uma porta que será usada para a conexão VPN em seu roteador. A porta padrão do OpenVPN é 1194 UDP, mas para maior segurança, é recomendado encaminhar uma porta UDP não padrão.
  2. Eu encontrei o artigo de Gus em PiMyLifeUp para ser o mais útil na criação de um servidor OpenVPN através PiVPN no meu Pi. Certifique-se de usar a mesma porta durante a configuração selecionada na etapa anterior. 
    Depois de conectado ao Pi através do ssh, digite o seguinte comando e siga os passos de instalação -  Durante a configuração, para usar o DNS eu configurei usando o PiHole quando conectado à VPN, usei a opção CustomDNS e inseri o endereço IP local do meu pi. Eu tentei usar
    curl -L https://install.pivpn.io | bash
    127.0.0.1como o DNS, então eu não teria que alterar as configurações do OpenVPN se o endereço IP do meu Pi fosse alterado, mas isso não funcionou. Se você não quiser usar o PiHole quando estiver conectado ao servidor VPN, poderá selecionar um dos outros provedores de DNS na lista. Você ainda poderá se conectar a dispositivos locais, mas o tráfego da Internet será roteado pelo DNS selecionado.
  3. Depois que o servidor OpenVPN estiver configurado no seu Pi, você precisará criar clientes VPN para usar em dispositivos que você usaria para se conectar ao servidor VPN. 
    Eu criei um cliente para o meu Macbook usando sudo pivpn addPara baixar o cliente em nosso Macbook, conecte-se ao Pi usando o sftp e obtenha o *.ovpnarquivo que você criou. No meu MacBook, usei Viscosity para adicionar a conexão ovpn, mas você pode usar qualquer cliente OpenVPN de sua escolha.
    sftp pi@ip.add.re.ss
    get /home/pi/ovpns/yourClientName.ovpn
  4. Depois de configurar uma conexão com seu cliente a partir de uma rede externa, você poderá acessar seus dispositivos locais, como o NAS, o disco de backup, o painel da Web do PiHole ou o Pi usando o SSH. No entanto, se você acessar a Internet, você notará que as consultas não estão registradas no PiHole, o que significa que a conexão VPN não está usando o PiHole para DNS, mesmo se você selecionou o DNS do PiHole para verificar a configuração. Se você não se importa em usar o PiHole para DNS, está pronto, mas se quiser usar o PiHole, siga os passos da próxima seção.

Roteando seu tráfego de VPN através do PiHole

Quando conectado à VPN, se você gostaria de usar seu PiHole para DNS, você precisa seguir alguns passos extras -
  1. Você deve ter configurado seu provedor de DNS como o endereço IP do PiHole durante a configuração da VPN. Se não o fez, você pode alterá-lo na próxima etapa.
  2. Eu tive que combinar informações de vários links para fazê-lo funcionar com sucesso. A maioria das instruções veio da última seção do artigo de Marc Stan, obrigando-me a modificar /etc/pihole/setupVars.confe adicionar /etc/dnsmasq.d/02-ovpn.confEm 02-ovpn.conf, eu adicionei duas linhas ao contrário das instruções originais Sem a modificação acima, eu estava completamente incapaz de se conectar à internet na minha rede local ou a quaisquer outros dispositivos, embora a conexão através da VPN estava funcionando bem. Finalmente, se você não alterou o DNS durante a instalação, modifique-o conforme descrito no artigo de Marc.
    interface=eth0
    interface=tun0


    /etc/openvpn/server.conf
  3. Alguns links referem-se ao FAQ oficial da PIVPN para configurar o PiVPN com o PiHole. No entanto, quando implementei isso, não consegui obter o tráfego da VPN roteado pelo PiHole e estava recebendo vazamentos de consulta mesmo quando conectado na rede local. Eu recomendaria não mudar o /etc/dnsmasq.conf sugerido no FAQ.
Para testar se tudo está funcionando conforme o esperado, procure consultas de seus dispositivos conectados no painel da web PiHole quando conectado na rede local ou dos clientes VPN (geralmente mostrados como 10.0.8.x) quando conectado ao servidor OpenVPN a partir de uma rede externa.
Após essa configuração, consegui desligar minhas portas anteriormente encaminhadas que estava usando para conectar-me ao meu NAS e acessar o Plex porque só preciso encaminhar minha porta VPN e conectar-me à VPN para ter acesso total a qualquer um dos dispositivos locais de qualquer lugar do mundo!

Nota lateral se você tiver lâmpadas TP-Link com uma Página inicial do Google

Percebi que consegui fazer com devs.tplinkcloud.comque as minhas lâmpadas TP-Link tivessem ping a cada poucos segundos, exceto se eu desconectei minhas lâmpadas e as reconectei, não consegui controlá-las pelo Google Home, embora eu ainda pudesse controlá-las a partir do Kasa. aplicativo. Para corrigir isso, desativei o PiHole de seu painel da web por alguns segundos e desconectei e reconectei as lâmpadas. Quando o bulbo é reiniciado, ele envia algumas consultas que não estão bloqueadas no PiHole desativado. Depois de ver essas consultas, você pode reativar o PiHole, pois esse registro só precisa acontecer uma vez após a reinicialização da lâmpada.

Depois que minha configuração do PiHole foi concluída, comecei a perceber a extensão das consultas sendo enviadas pelos meus dispositivos domésticos. Ao usar o Roku, ele envia mais de 7000 consultas em 2 horas, aproximadamente uma consulta a cada segundo. Cada uma das lâmpadas TP-link consulta a cada poucos minutos. Se os aplicativos estiverem sendo executados em segundo plano no Android, eles continuarão enviando consultas frequentes mesmo depois de eu ter parado de usá-los. Espero que à medida que a discórdia em torno da privacidade aumentar, as empresas passem a oferecer aos usuários mais controle sobre como eles compartilham seus dados, mas até lá ficamos felizes que os desenvolvedores tenham desenvolvido ferramentas como PiHole e PiVPN para capacitar o usuário diário a controlar como e o quê. os dados são coletados.

Fonte: https://medium.com/@timebarrier/setting-up-pihole-and-pivpn-for-privacy-and-security-in-the-iot-era-613dbbb29584

Leave a Reply