thiagowfx's avatar

¬ just serendipity 🍀 (not just serendipity)

Bloqueando {websites,ads,malware} no Linux

• 395 words • 2 min • updated

⚠️ This post is over one year old. It may no longer be up to date or relevant. Opinions may have changed.
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!