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 de servidor de pixel e um log de alterações.
A primeira pergunta na mente de todos agora é "por que não usar 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.
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 na sua rede nos quais você não configurará seu ambiente pessoal (por exemplo, "servidores núcleo" ou VMs).
NotaEmbora 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á o suficiente. Na verdade, gosto muito do programa, doei para o desenvolvedor e incentivo todos a fazer isso, para continuar o desenvolvimento.
Como funciona?
Essencialmente isso funciona envenenando deliberadamente nosso DNS para retornar um IP específico para domínios na 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 servir uma imagem de um pixel transparente, 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 hospedeiro MVPS e a lista de domínios Yoyo. Juntos, eles mantêm uma lista muito extensa de sites de anúncios. Ao utilizar 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 foi restaurado para os "padrões de fábrica" ou que as configurações usadas não foram alteradas a partir de suas predefinições "fora da caixa" desde então.
- O computador cliente está usando o roteador como o servidor DNS (esse é o padrão).
- Espaço para JFFS (em caso de dúvida, recomendo usar o mini versão do DD-WRT).
- Supõe-se que sua rede já esteja definida * 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 ao programa do 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 este procedimento, 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 ficar rachando
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 a webGUI, vá para a guia "Serviços". Encontre a seção “Secure shell” e clique no botã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 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 pixels 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, essa explicação, tirada da entrada do wiki do DD-WRT sobre o JFFS, deve esclarecer:
The Journaling Flash File System (JFFS) allows you to have a writable Linux File System on a DD-WRT enabled router. It is used to store user programs like Ipkg and data into otherwise inaccessible flash memory. This allows you to save custom configuration files, host custom Web pages stored on the router and many other things not capable without 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".
Quando a webGUI voltar da reinicialização para a guia "Administração", aguarde mais um minuto e atualize a página.
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 do servidor de pixel (não estamos assumindo crédito, apenas evitando links diretos), o script de bloqueio de anúncios (escrito por você) e o pessoal Lista de domínios criada por “Mithridates Vii Eupator” e I.
É 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 em 22
Nome de 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 que não é necessária)
Protocolo de arquivo: SCP
Selecione Avançar e desmarque a opção "Pesquisar grupos de usuários".
Em seguida, sua janela principal será exibida na foto, e tudo o que você precisa fazer para se conectar ao roteador é clicar duas vezes na entrada.
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"
Quando os arquivos estiverem 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 dos arquivos.
Configurações do roteador
Agora que o estágio 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".
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 captam 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 é importanteComo estamos realmente criando diretivas de configuração, o daemon DNSMasq (o processo que é responsável pelas traduções do nome do DNS para o IP) usará 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 ofensivos a serem bloqueados, você pode usar nosso guia "Localizar as mensagens secretas em cabeçalhos de sites" como uma cartilha. Os passos para encontrar os nomes dos domínios do anúncio são praticamente os mesmos, só que neste 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 alterações.
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:
Quando terminar, clique em "Salvar" na parte inferior da página (ainda não se inscreva).
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. Esse arquivo faz parte do arquivo zip que você fez o download 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 o domínio, isso não mudará o fato de que os sites que o usam fazem o download de um JavaScript que é 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 dificilmente é uma experiência de navegação agradável, e é por isso que qualquer domínio que contenha "google-analytics" e "googleadservices" está * fortemente codificado para a filtragem.
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 desbloqueio, 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. Portanto, 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. Isso é por causa de 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 retorne.
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 é comentado para que você possa restaurá-lo se tiver certeza de que 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.
-
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:
- Fazer mais. Para garantir que nada na 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.
- 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.
- Limpe 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”.
- Feche o navegador. Às vezes, o navegador armazena as informações em cache, portanto, limpar o cache do DNS, conforme mostrado acima, não ajuda.
- 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.
-
Use o 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 alias "clog". * Para ver as mensagens como elas entram, em tempo real, use “tail -f / var / log / messages” ou pelo seu apelido “tlog”.
- Entenda o roteiro. Mesmo que eu tenha 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 que são aplicáveis à forma como a nova e melhorada versão funciona.
Faça o download do pacote de anúncios.