Pagina inicial » como » Como remover anúncios com o Pixelserv no DD-WRT

    Como remover anúncios com o Pixelserv no DD-WRT

    Existem várias maneiras de bloquear anúncios em seu navegador, mas e se você pudesse bloqueá-los no roteador? Veja como usar o firmware do DD-WRT e deliberar "envenenamento de DNS" para bloquear anúncios de todos os dispositivos da sua rede.

    visão global

    Atualizar: Guia atualizado para refletir o feedback fornecido pelos comentadores e atualizado o pacote anti-anúncios com o novo executável do servidor de pixels e um log de alterações.

    A primeira pergunta na mente de todos agora é "por que não usar apenas o bloco de anúncios?"

    Para muitas pessoas, simplesmente não há uma razão, especialmente com a nova capacidade do chrome de replicar as extensões que você usa para todos os computadores em que está executando o chrome on.

    A resposta está em algum lugar entre a sobrecarga reduzida de não ter que ensinar todos os usuários em sua rede sobre bloco de anúncios (eu estou falando com você mãe, irmã, avó e secretária) e a conveniência de não ser incomodado com isso cada computador que você configura. Isso significa que haverá alguns computadores em sua rede nos quais você não configurará seu ambiente pessoal (por exemplo, "servidores núcleo" ou VMs)..

    NotaMesmo que eu use o método abaixo em meu roteador doméstico, achei o bloco de anúncios como um excelente acréscimo a ele, e recomendo usar ambos os métodos em conjunto. Além disso, se você não tiver um roteador DD-WRT usando bloco de anúncios, será mais do que suficiente. Na verdade, eu gosto muito do programa, doei para o desenvolvedor e incentivo todos a fazerem isso, para manter o desenvolvimento.

    Como funciona?

    Essencialmente, isso funciona envenenando deliberadamente nosso DNS para retornar um IP específico para domínios em uma lista não aprovada. Esta lista não aprovada conterá nomes de domínio de sites que são responsáveis ​​exclusivamente pela entrega de conteúdo de publicidade, por isso não vamos sentir muita falta deles.

    Vamos configurar um servidor HTTP secundário no roteador para exibir uma imagem transparente de um pixel, como a resposta para qualquer solicitação de URL. Em conjunto com a resolução "errada" do DNS, isso fará com que os clientes da rede solicitem o conteúdo do nosso servidor de pixels interno e obtenham uma imagem em branco em resposta.

    Para gerar a lista não aprovada, criaremos uma lista pessoal em conjunto com duas listas baixadas dinamicamente. as listas dinâmicas são o arquivo host MVPS e a lista de domínios Yoyo. Juntos, eles mantêm uma lista muito extensa de sites de anúncios. Ao aproveitar essas listas, ficamos com a responsabilidade de apenas adicionar o delta de sites que ainda não estão em um deles, em nossa lista pessoal.

    Também configuraremos uma "lista de permissões" para domínios que não queremos bloquear por qualquer motivo.

    Pré-requisitos e suposições

    • Paciência jovem, esta é uma leitura longa.
    • Este procedimento foi criado e testado no DD-WRT (v24pre-sp2 10/12/10 mini r15437), como tal você já deve ter esta versão ou mais tarde instalado no seu roteador para usá-lo. Mais informações sobre o site do DD-WRT.
    • Para facilitar a explicação, presume-se que o roteador tenha sido restaurado para os "padrões de fábrica" ​​ou que as configurações usadas não tenham sido alteradas a partir de suas predefinições "out of the box" desde então.
    • O computador cliente está usando o roteador como o servidor DNS (esse é o padrão).
    • Espaço para JFFS (quando em dúvida, recomendo usar o mini versão do DD-WRT).
    • Supõe-se que sua rede já esteja configurada e que seja uma classe C (uma que tenha uma sub-rede de 255.255.255.0) como o último IP dessa rede de classe C (x.y.z.254) Será atribuído para o programa de servidor de pixels.
    • A vontade de instalar o winSCP.

    * O script não poderá ajustar as listas de bloqueio após a primeira execução até o próximo ciclo de atualização (3 dias).

    Créditos

    Atualizar: Agradecimentos especiais a “mstombs” pela ótima obra de código C sem o seu trabalho, tudo isso não seria possível, “Oki” por compilar a versão e citação compatíveis com Atheros ;-) e “Nate” por ajudar com o QA-ing.

    Embora tenha havido muito trabalho para aperfeiçoar esse procedimento no meu final, a inspiração para isso foi inflamada pelos caras do fórum DD-WRT e algumas das fundações deste guia podem ser encontradas em “ad-blocking with DD- WRT revisitado (simples) ”,“ pixelserv sem Perl, sem qualquer jffs / cifs / usb free ”e“ Flexion.Org Wiki no DNSmasq “assim como outros.

    Vamos começar a rachar

    Ativar SSH para acesso SCP

    Ao habilitar o SSH, nós nos damos a capacidade de nos conectar ao roteador usando o protocolo SCP. com isso ativado, podemos usar o programa winSCP para navegar visualmente na estrutura de pastas do roteador (como veremos mais adiante).

    Para fazer isso, usando o webGUI, vá para a guia "Serviços". Encontre a seção "Secure shell" e clique no botão de opção "Enable" para a configuração SSHd.

    Uma vez feito isso, o webGUI deve olhar como abaixo e você pode clicar em "Salvar" (não faça aplicar ainda).

    Ativar JFFS

    Para fazer essa configuração de uma maneira que seria estável, reproduzível e * ser um “bom cidadão da internet”, usaremos o JFFS para armazenar o máximo possível de configurações. Existem outras maneiras de fazer isso sem habilitar o JFFS, se você não puder devido a limitações de espaço, mas elas não são abordadas aqui.

    * outros métodos fazem com que o seu roteador baixe as listas dinâmicas e executáveis ​​do servidor de pixel toda vez que o script for executado. como isso coloca uma pressão sobre os servidores que mantêm as listas e executável e isso custa dinheiro para alguém, esse método tenta evitá-lo se possível.

    Se você ainda não sabe o que é o JFFS, esta explicação, tirada da entrada wiki do DD-WRT sobre o JFFS, deve esclarecer:

    O Journaling Flash File System (JFFS) permite que você tenha um sistema de arquivos Linux gravável em um roteador habilitado para DD-WRT. Ele é usado para armazenar programas do usuário como o Ipkg e dados em memória flash inacessível. Isso permite que você salve arquivos de configuração personalizados, hospede páginas da Web personalizadas armazenadas no roteador e muitas outras coisas que não são capazes sem o JFFS.

    Para habilitar o JFFS no seu roteador, vá para a aba “Administração” e encontre a seção JFFS. a imagem abaixo mostra onde você encontraria essa seção na guia "Administração".

    Na seção Suporte JFFS2, clique nos botões de opção "Ativar" para "JFFS2" e (quando aparecer) nas configurações "Limpar JFFS2". Uma vez selecionado, clique em "Salvar".

    Quando as configurações tiverem sido salvas, ainda na guia "Administração", reinicialize o roteador usando o botão "Reiniciar roteador". Isto irá aplicar as configurações e executar o "formato" necessário da "partição" JFFS.

    Quando a webGUI voltar da reinicialização para a guia "Administração", aguarde mais um minuto e atualize a página.

    Se bem sucedido, você deve ver que sua montagem JFFS tem algum espaço livre como na imagem.

    Configuração do servidor de pixels

    Faça o download e extraia o pacote anti-anúncios para o arquivo zip dd-wrt que contém o executável pixel-server (não estamos aceitando crédito, apenas evitando links diretos), o script de bloqueio de anúncios (escrito por você) e o pessoal domínio-lista criado por “Mithridates Vii Eupator” e eu.

    É hora de colocar os arquivos na montagem JFFS no roteador. para fazer isso, instale o winSCP (é um tipo de configuração "next -> next -> finish") e abra-o.

    Na janela principal, preencha as informações como esta:

    Nome do host: o IP do seu roteador (o padrão é 192.168.1.1)

    Número da porta: deixe inalterado aos 22

    Nome do usuário: raiz (mesmo se você alterou o nome de usuário para o webGUI, o usuário do SSH será sempre * root *)

    Arquivo de chave privada: deixe em branco (isso é necessário apenas quando você cria uma autenticação baseada em pares de chaves, o que não foi feito)

    Protocolo de arquivo: SCP

    Nós também precisamos desabilitar “Lookup user group” como mostrado abaixo (obrigado mstombs por apontar isto) porque o winSCP está esperando um Linux completo no outro lado que os desenvolvedores do DD-WRT, apesar de todo trabalho excelente, não foram capazes de fornecer (principalmente porque simplesmente não há espaço suficiente). Se você deixar isso marcado, você encontrará mensagens assustadoras quando conectar e salvar arquivos editados.

    Selecione Avançar e desmarque a opção "Pesquisar grupos de usuários".

    Embora seja opcional, você pode optar por salvar as configurações agora para uso posterior. Se você optar por salvar as configurações recomendadas, também é recomendável (apesar dos gritos imediatos do asilo de “segurança paranoica” que estamos profanando a própria existência do SSH) que você salva a senha.

    Então sua janela principal ficará como na foto, e tudo o que você terá que fazer para se conectar ao roteador é clicar duas vezes na entrada..

    Como esta é a primeira vez que você se conectará ao roteador, o winSCP perguntará se você está disposto a confiar na impressão digital do outro lado. Clique em "Sim" para continuar.

    Os desenvolvedores do DD-WRT implementaram uma mensagem de boas-vindas Banner com algumas informações sobre o firmware que você instalou. uma vez vermelho, clique na caixa de seleção "Nunca mostrar esta bandeira novamente" e "Continuar".

    Uma vez conectado, navegue até a pasta de nível superior (AKA root “/”) e depois volte para “/ jffs”, já que é o único lugar permanentemente gravável no sistema de arquivos do roteador (“/ tmp” não se sustenta e o resto são somente leitura).

    Crie uma nova pasta, clicando em F7 ou clicando com o botão direito em um ponto em branco, passe o mouse sobre "Novo" e clique em "Diretório".

    Nomeie o novo diretório “dns”. nós criamos este diretório para manter as coisas no diretório jffs organizadas para uso futuro e porque estamos mudando principalmente como o serviço DNS funciona.

    Copie os arquivos “pixelserv” e “disable-adds.sh” do arquivo zip anti-ads-pack-for-dd-wrt, selecionando-os (use a tecla “insert”), pressionando “F5” e depois “Copiar ".

    Nota: Se o seu roteador é baseado em Atheros (você pode verificar isso no wiki do DD-WRT) você precisará usar o pixelserv_AR71xx fornecido pela Oki e incluído no pacote e renomeá-lo para “pixelserv” antes de continuar.

    Uma vez que os arquivos estão no roteador, precisamos torná-los executáveis ​​selecionando-os (novamente, use “insert”) clique com o botão direito do mouse em “properties”.

    Na janela de propriedades, clique no "X" para a linha "Proprietário". que dará as permissões de execução de arquivos.

    Configurações do roteador

    Agora que o cenário está definido, podemos dizer ao roteador para executar o script de bloqueio de anúncios na inicialização.
    Para fazer isso, na webGUI, vá para a guia "Administração" e, em seguida, na guia "Comandos".

    Na caixa de texto "Comandos" escreva a localização do script como "/jffs/dns/disable_adds.sh", como na imagem e depois clique em "Salvar inicialização".

    Se bem sucedido, você deve ver o script tornou-se parte da inicialização do roteador como na imagem acima.

    Configurando a lista de domínios bloqueados pessoais (opcional)

    Esta lista permite adicionar domínios às listas não aprovadas, se você achar que as duas listas dinâmicas não capturam algo.
    Para fazer isso, existem duas opções, e elas funcionam em conjunto para que você possa usar as duas opções de acordo com o que for mais conveniente para você.

    Nota: o sintaxe é importante, Como estamos, na verdade, criando diretivas de configuração, o daemon DNSMasq (o processo responsável pelas traduções do nome do DNS para o IP) será usado diretamente. Como tal, a sintaxe incorreta aqui fará com que o serviço trave e deixe o roteador incapaz de resolver endereços IP para nomes de domínio (você foi admoestado).

    A fim de encontrar os nomes de domínio infratores para bloquear, você pode querer usar o nosso guia "Encontrar as mensagens secretas em cabeçalhos de sites" como uma cartilha. As etapas para encontrar os nomes dos domínios de anúncio são praticamente as mesmas, apenas que, nesse caso, você está procurando um endereço em vez de uma mensagem..

    O primeiro e a maneira mais acessível é colocar a lista na caixa de configuração “DNSMasq” no wegGUI. Isto porque para adicionar a esta lista pode-se simplesmente acessar a webGUI em vez de ter que ir "sob o capô" para fazer mudanças.

    Vá para a guia "Serviços", encontre a seção "DNSMasq" e encontre a caixa de texto "Additional DNSMasq Options".

    Nessa caixa de texto, insira as listas de domínios que você deseja bloquear com a sintaxe “address = / domain-name-to-block / pixel-server-ip”, como mostra a figura abaixo:

    Onde neste exemplo o “192.168.1.254” é o IP que é gerado para o servidor de pixel baseado no “endereço de rede” da sua LAN. Se o seu endereço de rede é algo diferente de 192.168.1.x você terá que ajustar o endereço do servidor de pixels de acordo.

    Quando terminar, clique em "Salvar" na parte inferior da página (não se aplica ainda).

    O segundo opção é compor a lista de domínios que você quer bloquear, para o arquivo “personal-ads-list.conf” que eu e o “Mithridates Vii Eupator” montamos. Este arquivo é parte do arquivo zip que você baixou anteriormente e é um ótimo começo para os dois métodos.

    Para usá-lo, se necessário, use seu editor de texto favorito para ajustar o IP do servidor de pixels (as mesmas restrições acima se aplicam aqui). Em seguida, basta copiá-lo para o diretório “/ jffs / dns” como você tem os outros arquivos. Quando estiver lá, você pode usar o winSCP para editá-lo e adicionar domínios.

    Configurando a lista de permissões

    Esta é a lista de domínios que serão omitidos das listas dinâmicas de “hosts” e “domínios”.

    Isso é necessário porque o simples bloqueio de alguns domínios faz com que os sites que os usam não funcionem corretamente. o exemplo mais notável é "google-analytics.com".

    Se bloquearmos seu domínio, isso não alterará o fato de que os sites que o utilizam fazem com que o seu navegador baixe um JavaScript que seja executado em eventos como deixar uma página. Isso significa que, para esse site, seu navegador tentará "ligar para casa" entrando em contato com o domínio do Google, não entenderá a resposta e você terá que esperar até que o script expire para continuar na próxima página. Isso não é uma experiência de navegação agradável, e é por isso que qualquer domínio que contenha "google-analytics" e "googleadservices" está * rigidamente codificado para não ser filtrado.

    Esta lista é criada para você com os domínios mencionados acima, quando o script é executado pela primeira vez, sob o diretório “/ jffs / dns”.

    Para usar a lista de permissões, abra o arquivo com o winSCP e **perpend à lista os domínios que você deseja excluir, tomando cuidado para não deixar linhas em branco (deixar uma linha em branco excluirá todos os domínios de todas as listas).

    * Enquanto o script cria a whitelist com os domínios dentro dele na primeira execução, ele NÃO insiste em seus presentes para execuções futuras. Se você acha que o Google deve ser bloqueado, apesar dos problemas mencionados, é possível remover os domínios da lista de permissões..

    ** Você deve inserir os novos domínios que deseja no início da lista. Isto é devido a um bug com a forma como o bash interpreta novas linhas ... desculpe, eu não tenho um trabalho para isso ainda.

    Execução

    É isso, finalmente é hora de invocar o script e ver os resultados simplesmente reiniciando o roteador.

    Para fazer isso a partir da webGUI, na guia "Administração", volte para "Gerenciamento", na parte inferior da página, clique em "Reinicializar roteador" e aguarde até que o roteador volte.

    Pode levar alguns minutos para o script executar suas tarefas pela primeira vez.

    No tipo de roteador WRT54Gx, você saberá quando o script terminar de ser executado, pois ele piscará o LED laranja da Cisco na parte frontal do roteador (outros roteadores devem ter um sinal semelhante "tell tail").

    Atualização: essa parte foi removida após ter sido descoberta como um recurso agnóstico não relacionado a hardware.

    Como estamos tentando ver a ausência de elementos na Web, recomendamos simplesmente navegar em alguns sites para ver o efeito.

    No entanto, se você quiser ter certeza de que o procedimento foi bem-sucedido, a primeira etapa de depuração na seção de solução de problemas é um ótimo local para começar.

    * Na verdade, ele foi comentado para que você possa restaurá-lo se tiver certeza de que ele não causará problemas na sua configuração.

    Apreciar!


    Solução de problemas

    Se você tiver problemas, há algumas coisas que você pode fazer para verificar o que deu errado.

    1. Teste se o domínio do anúncio foi resolvido para o IP do pixelserv.
      Você pode fazer isso emitindo o comando nslookup no domínio "ofensivo". Por exemplo, o “ad-emea.dubleclick.com” faz parte dos hosts bloqueados da lista pessoal. Ao emitir "nslookup ad-emea.dubleclick.com" em um prompt de comando, o resultado deve ser semelhante a:

      Onde uma resposta normal não bloqueada seria:

    2. Fazer mais.
      Para garantir que nada com a configuração do seu roteador esteja em conflito com a configuração do bloco de anúncios, restaure o roteador para "Padrões de fábrica" ​​e tente novamente. Uma vez que seu sucesso adicione suas alterações personalizadas na esperança de que elas não colidam novamente.
    3. Verifique se o seu cliente está usando o roteador como o DNS.
      Especialmente ao usar uma VPN ou uma rede que é mais complexa do que o roteador normal para a configuração do computador, é possível que o seu computador cliente simplesmente não esteja usando o roteador como seu DNS. É muito fácil ver no comando acima qual é o servidor DNS que o cliente está usando, se o IP não é o mesmo que o roteador, você encontrou o problema.
    4. Limpar o cache DNS de suas máquinas pessoais.
      Isso ocorre porque, caso contrário, você ainda poderá ver os anúncios para o site com o seu teste, simplesmente porque o seu computador já sabe como obter o conteúdo do anúncio por conta própria, sem consultar o DNS para ele. No windows isso seria “ipconfig / flushdns”.
    5. Feche o navegador.
      Às vezes, o navegador mantém as informações em cache, portanto, limpar o cache DNS, conforme mostrado acima, não ajuda.
    6. Em caso de dúvida, reinicie.
      Às vezes, os caches podem persistir e a melhor maneira de se livrar deles é reinicializar. Comece com o roteador e, se o problema persistir, o computador cliente.
    7. Use syslog.
      Você pode ativar o daemon syslog do roteador e, em seguida, examinar as mensagens para ver se o script encontra algum problema, examinando suas mensagens. Além disso, o script adiciona alguns aliases de comando para facilitar a depuração.
      Para fazer isso, vá para a aba "Serviços" e ative o daemon syslog como na imagem abaixo:

      Nota: O “Servidor Remoto” é usado quando você tem um servidor syslog em outra máquina (como com kiwi) se você não tiver um, simplesmente deixe em branco.

      Uma vez ativado, você pode ver as mensagens de depuração, olhando para o / var / logs / messages arquivo em um terminal.
      * Para ver todas as mensagens do boot, você pode usar “more / var / log / messages”.
      * Para ver apenas as mensagens do script no log use o apelido "clog".
      * Para ver as mensagens como elas entram, em tempo real, use “tail -f / var / log / messages” ou pelo seu apelido “tlog”.
    8. Entenda o roteiro.
      Apesar de eu ter feito este vídeo do YouTube para uma versão mais antiga deste guia e do script, ele ainda contém muitas verdades e explicações aplicáveis ​​à forma como a nova e melhorada versão funciona.
    Faça o download do pacote de anúncios.

    Que os deuses do roteador estejam a seu favor