FernandezSanSalvador

Desarrollo web, frameworks, wordpress, linux y mas.

Sistemas y redes

Bloquear publicidad con el router y dd-wrt

Bloquear publicidad con el router y dd-wrt
4 (80%) 4 votos

Si poseemos un router Linksys WRT54 y este tiene la versión adecuada de firmware, es posible cambiarlo por el dd-wrt, que nos permite ampliar las funcionalidades del router. En este caso, vamos a hacer que el propio router nos filtre los banners de publicidad de las paginas web.

El funcionamiento es simple, se basa en programar una tarea en el cron del router, que cada x tiempo nos descargue un fichero con filtros para la publicidad, y los incluya en el ficheros hosts del router.

Al activar la cache de dns, nos permitirá que todos los anuncios que cumplan los criterios de los filtros no se muestren. Vamos a verlo paso a paso.

Configurando el router

Accedemos al router que tiene instalado dd-wrt desde el navegador indicando su ip (por ejemplo 192.168.1.1). Después de introducir nuestro nombre de usuario y clave, accedemos al panel de control del router.

Pestaña “servicios“, “administración de servicios“, debemos activar el acceso ssh para poder acceder de forma remota: Bloquear publicidad con el router y dd-wrt 1 Y necesitamos activar el “DNSMasq” y tambien “DNS Local“: Bloquear publicidad con el router y dd-wrt 2

Accediendo al router mediante ssh

Si utilizamos linux, abrimos un terminal y escribimos “ssh 192.168.1.1“, y desde windows, podemos utilizar putty. Una vez hemos accedido al router, vamos a crear los ficheros necesarios y a configurar la actualización automática de los filtros de publicidad. Creamos el fichero publicidad.sh con el siguiente contenido (tecleamos “vi /tmp/publicidad.sh“):

#!/bin/sh
wget -O - http://www.mvps.org/winhelp2002/hosts.txt | grep www.fernandezsansalvador.es | sed -e '2,$s/www.fernandezsansalvador.es/0.0.0.0/g' -e 's/[[:space:]]*#.*$//' > /etc/hosts
stopservice dnsmasq
startservice dnsmasq

Cambiamos los permisos del fichero

chmod 755 /tmp/publicidad.sh

Añadimos la tarea al cron para que se actualice dos veces al día:

vi crontab

Y añadimos:

12     10,22   *       *       *      root /tmp/publicidad.sh

Por ultimo, reiniciamos el cron:

stopservice cron && startservice cron 

Con esto nos filtrara la publicidad en todos los ordenadores que se conecten al router, independientemente del navegador utilizado. Por ultimo podemos desactivar el servicio ssh si no tenemos pensado volver a utilizarlo para evitar futuros problemas.

Deja un comentario