Como bloquear propagandas usando o OpenWrt

Comecei a utilizar o OpenWrt no lugar do firmware original do meu roteador TP-Link TL-WDR4300 há alguns anos. De lá para cá, venho “apanhando” e aprendendo bastante. Não é fácil, mas é gratificante.

Para quem não sabe, o OpenWrt nada mais é que uma distribuição Linux, que tem por objetivo substituir o firmware de fábrica de vários roteadores. Ele é gratuito, open-source e possui uma vasta documentação, além de uma comunidade sempre disposta a ajudar os usuários. O OpenWrt está em constante desenvolvimento, incorporando novas funções e tecnologias, tendo o código aprimorado, bem como bugs corrigidos.

Hoje em dia, o firmware de fábrica dos roteadores das maiores marcas do mercado (TP-Link, Asus, D-Link, Netgear etc.) atende e é suficiente para a grande maioria dos usuários. Entretanto, muitos desses equipamentos vêm de fábrica “capados” e com algumas limitações em seus recursos, muitas vezes impostas de maneira proposital pelas próprias fabricantes.

É aí que entra o OpenWrt. Com ele, é possível ter acesso a recursos não disponíveis nos firmwares de fábrica, como instalar pacotes, ler logs gerais do sistema, ter acesso a gráficos de uso de CPU/memória/transferência de dados pela rede interna/externa, acesso SSH, servidor FTP/proxy/web, controle de banda, DNS dinâmico, múltiplos SSIDs, DLNA, NAS/USB etc., etc., etc. Na prática, o roteador é um equipamento que na maioria das casas fica ligado 24 horas por dia. Com o OpenWrt, o roteador transforma-se num minisservidor. As possibilidades são infinitas.

Neste post, não farei um tutorial do processo de instalação do OpenWrt, já que há inúmeros guias espalhados internet afora. Focarei especificamente em como bloquear propagandas usando o OpenWrt.

Existem várias formas de se bloquear propagandas na internet: indicar domínios indesejados no arquivo hosts do sistema, servidor de proxy com filtro/blacklist de termos e domínios e, a mais popular atualmente, instalação de extensões de adblock em navegadores. Cada alternativa apresenta vantagens e desvantagens.

A desvantagem de se utilizar o arquivo hosts é que ele só é válido para o sistema do dispositivo em questão. Numa casa ou empresa com vários dispositivos (computador, notebook, tablet, smartphone, TV etc.), é no mínimo contraprodutivo fazer atualizações periódicas de domínios em cada um dos equipamentos.

Quanto ao servidor de proxy, as desvantagens ficam por conta da dificuldade de configuração e, em alguns casos, do consumo excessivo de processamento e de memória. O mesmo vale para as extensões de navegadores, sobretudo em máquinas com configurações mais modestas. Em última análise, mesmo com a extensão ativada, as propagandas são carregadas nos navegadores – apenas não são mostradas.

Para todos os efeitos deste guia, estou utilizando a versão estável mais recente do OpenWrt, a Chaos Calmer 15.05.1 (SVN r48532), lançada no mês passado. Vamos começar com a instalação.

 

Método de instalação 1: Linha de comando

Utilizando o PuTTY ou outro cliente SSH de sua preferência, entre com suas credenciais de acesso.

ss1

Após a apresentação do banner do OpenWrt, digite os seguintes comandos:

# wget -O /tmp/adblock.ipk http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/packages/adblock_1.0.3-1_all.ipk
# wget -O /tmp/luci-app-adblock.ipk http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/luci/luci-app-adblock_git-16.108.33174-51a7f96-1_all.ipk
# opkg install /tmp/adblock.ipk /tmp/luci-app-adblock.ipk

A instalação do pacote luci-app-adblock é opcional, mas é recomendada para quem deseja realizar as configurações do Adblock através do LuCI, a interface web nativa do OpenWrt.

Update (27/04/2016): como são pacotes das versões em desenvolvimento (trunk), praticamente todos os dias há atualizações nos repositórios, envolvendo alterações nos códigos e até nos nomes dos arquivos. Por exemplo, o link acima do pacote luci-app-adblock já está quebrado. Para pegar o novo link do pacote, basta buscar o novo nome do pacote luci-app-adblock* na listagem do repositório. O mesmo vale para o pacote adblock*.

 

Método de instalação 2: Interface web (LuCI)

Por padrão, o acesso à interface web do OpenWrt se dá através do endereço http://192.168.1.1/.

ss2

Efetuado o login, vá no menu System > Software. Como os pacotes não se encontram no repositório das versões estáveis, não será possível encontrá-los em “Available packages”. Portanto, basta inserir manualmente os mesmos links no campo “Download and install package:”, um de cada vez, e clicar em OK:

adblock: http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/packages/adblock_1.0.3-1_all.ipk

luci-app-adblock: http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/packages/luci/luci-app-adblock_git-16.108.33174-51a7f96-1_all.ipk

ss3

 

Ativando o Adblock

Após a instalação dos dois pacotes, um novo menu aparecerá na interface web. Vá em Services > Adblock.

ss4

Ative a opção “Enable adblock”, salve e aplique as novas configurações. Pronto!

Também é possível escolher quais fontes serão usadas para a definição dos domínios a serem bloqueados. Nas próximas versões do pacote, o desenvolvedor prometeu que implementará a possibilidade do usuário adicionar novas fontes de blacklist, além das que já vêm por padrão.

ss5

 

Testando o Adblock

Para garantir que o Adblock comece a operar, é recomendável que o roteador seja reiniciado. Após o reboot, dê um ping em algum domínio que esteja nas blacklists acima. Por exemplo, googlesyndication.com, domínio famoso por estar relacionado às propagandas do Google AdWords.

ss6

Podemos constatar que o domínio não está resolvendo como deveria – ele é redirecionado para um IP da rede interna. Ou seja, nenhuma propaganda que esteja relacionada aos domínios das blacklists selecionadas será exibida a partir de agora. E isso vale para todos os dispositivos da rede.

ss7