thiagowfx's avatar

¬ just serendipity 🍀 (not just serendipity)

Bloqueando {websites,ads,malware} no Linux

• 395 words • 2 min • updated

Table of Contents

“For the sake of the productivity”, notas pessoais sobre o bloqueio de websites.

1 - A forma nua e crua: /etc/hosts #

Um arquivo /etc/hosts típico é da forma:

shell
$ cat /etc/hosts
#
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost

Para bloquear um novo site, basta redirecioná-lo localmente para localhost (=127.0.0.1). Por exemplo, para bloquear o Facebook, adicione a esse arquivo as linhas:

127.0.0.1 facebook.com
127.0.0.1 www.facebook.com

1.1 Servidor local “nulo” para localhost #

Mas essa maneira por si só é muito sem graça então, além de redirecionar para localhost, vamos fazer com que o usuário receba uma página “vazia”/“nula” ao tentar acessar esses websites. Mas isso é bastante simples, basta instalar um servidor local como o kwakd ou o pixelserv.

2 - Um pouco mais de estrutura, por favor #

O programa hostsblock é excelente para isso. Veja a página oficial. Como um bônus, você ainda bloqueia malware e ads (na verdade, esse é o objetivo primário dele), isso no sistema inteiro, não apenas no navegador – por exemplo, se você quiser instalar um Adblock, geralmente tem que instalar individualmente para todos os seus navegadores. Estou utilizando-o recentemente, e o achei bastante bom. Ele é bastante elegante (do ponto de vista de simplicidade de código) e extremamente funcional. Ao ser combinado com o dnsmasq, ele fica mais elegante ainda. Ao ser combinado com o cron, você tem uma lista de domínios a ser bloqueados que é atualizada periodicamente.

Se você quiser combiná-lo com o Network Manager e tiver problemas com isso, esse post talvez seja útil. Se você achou todos esses projetos relevantes, considere votá-los no AUR para que eles ganhem mais relevância.

Se você usa o Chromium #

OBS.: Se você utiliza o Chromium ou o Google Chrome, vai descobrir que ele é esperto e tenta contornar os websites que ele não consegue acessar. Depois de bastante pesquisa, descobri a razão para isso:

O problema é que ele fazia DNS prefetching para agilizar o carregamento de algumas páginas (ainda não estou 100% certo disso, mas tudo indica que esse era o problema). Foi difícil descobrir isso principalmente porque a maioria das discussões sobre o assunto se aplica apenas a versões antigas do Chromium (sabe, daquela época que ainda tinham dois botões, em vez de um só).

Happy blocking!