OpenWrt: Bloqueando la publicidad desde el fichero hosts

Casi todo el mundo lo primero en lo que piensa a la hora de bloquear la publicidad en sus dispositivos que se conectan a internet es en la instalación de algún tipo de complemento tipo Adblock en su navegador, el inconveniente es que debes de ir instalando ese tipo de complementos en cada navegador y dispositivo de tu red, sin embargo existe una manera muy fácil de bloquear la publicidad de una forma transparente para todos los dispositivos de tu red simplemente utilizando el fichero /etc/hosts de tu router.

Existen multitud de sitios donde se van recopilando listas de hosts maliciosos

  • https://adaway.org/hosts.txt
  • http://someonewhocares.org/hosts/zero/
  • https://github.com/StevenBlack/hosts

Yo voy a usar las listas de StevenBlack, concretamente Unified hosts + fakenews

Antes de hacer nada, lo primero es hacer una copia de seguridad del fichero /etc/hosts:

sudo cp /etc/hosts /etc/hosts.bkp

Ahora descargamos la lista de ficheros hosts maliciosos y lo volcamos en el fichero /etc/hosts

sudo wget -O /etc/hosts https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews/hosts

Añadimos el contenido de nuestro fichero hosts original al nuevo fichero hosts

sudo cat /etc/hosts.bkp >> /etc/hosts

Como las listas del sitio StevenBlack se van actualizando constantemente, usaremos cron para ir actualizando también nuestro fichero hosts

sudo crontab -e

Cuando ejecutas el comando crontab -e entras en modo editor, que por defecto es VIM, basicamene necesitas saber:

  • Tecla I o la tecla Insert para modo edición y comenzar a escribir
  • Tecla ESC para salir del modo edición
  • Tecla ESC si estamos en modo de edición y escribimos :w, o sea, dos puntos y una W. para guardar.
  • Tecla ESC y escribimos :q es decir dos puntos y la Q saldremos del editor.
  • Si lo que queremos es guardar y cerrar, escribimos :wq! es decir dos puntos la W la Q y el signo de cierre de admiración

Ahora que sabemos manejarnos con VIM añdimos el siguiente código

0 */12 * * * wget -O /etc/hosts https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews/hosts; cat /etc/hosts.bkp >> /etc/hosts

Para ver el crontab del usuario ejecuta

 contrab -l

Como puedes ver, teniendo actualizada la lista de nuestro fichero /etc/hosts podemos mantener limpios de publicidad los dispositivos conectados a nuestra red de una manera muy sencilla.

Referencia:

comentario powered by Disqus