EdgeMAX - Ad-blocking (filtrado de contenidos) con EdgeRouter

Resumen


Los lectores aprenderán cómo activar el bloqueo de anuncios en un EdgeRouter. Esta guía está inspirada en frambuesa pi a un punto de acceso adblocking. aquí son sólo algunas de las ventajas de bloqueo de anuncios en el router:

  • Se puede aplicar adblocking a todos tus clientes sin necesidad de instalar ningún navegador addons
  • Puede bloquear anuncios en teléfono/tablet aplicaciones (ahorro en batería y caché de aplicaciones)
  • Su otro significativo estará expuesto a menos publicidad sin ni siquiera darse cuenta (dando por resultado reducido consumo) Smiley Very Happy

El enfoque sustituye los servidores DNS de servidores de anuncios bien conocidos. En mi script de abajo, estoy usando una lista 'segura' que se sabe no para bloquear la navegación normal.

El enfoque no bloquea todos los anuncios se basa sólo en bloqueo de servidores de anuncios y anuncios no sirve por los sitios, aunque funciona sorprendentemente bien.

Pasos


Los siguientes pasos deben ejecutarse como administrador o usando sudo.

Paso 1: Crear el archivo /config/user-data/update-adblock-dnsmasq.sh y agregue las siguientes líneas (también puede descargar el archivo adjunto a este post y copiar en el directorio /config/user-data de tu router)

#!/bin/bash

ad_list_url="http://pgl.yoyo.org/adservers/serverlist.php?hostformat=dnsmasq&showintro=0&mimetype=plaintext"
#The IP address below should point to the IP of your router or to 0.0.0.0
pixelserv_ip="0.0.0.0"
ad_file="/etc/dnsmasq.d/dnsmasq.adlist.conf"
temp_ad_file="/etc/dnsmasq.d/dnsmasq.adlist.conf.tmp"

curl -s $ad_list_url | sed "s/127\.0\.0\.1/$pixelserv_ip/" > $temp_ad_file

if [ -f "$temp_ad_file" ]
then
        #sed -i -e '/www\.favoritesite\.com/d' $temp_ad_file
        mv $temp_ad_file $ad_file
else
        echo "Error building the ad list, please try again."
        exit
fi

/etc/init.d/dnsmasq force-reload

En el script anterior hay una línea a partir de "#sed". Puede descomentar y modificarlo para eliminar tus sitios favoritos de la lista bloqueo de anuncios para que pueda seguir apoyarlos. Se puede añadir como muchas de esas líneas como te gustaría. Un ejemplo sería:

sed -i -e ' / ads\.stackoverflow\.com/d' $temp_ad_file

Paso 2: Ejecutar chmod + x /config/user-data/update-adblock-dnsmasq.sh para hacer el script ejecutable
paso 3: prueba ejecutando /config/user-data/update-adblock-dnsmasq.sh
This creará el archivo /etc/dnsmasq.d/dnsmasq.adlist.conf que se leerá cada vez que dnsmasq inicia. Un fragmento de muestra del archivo es como sigue:

address=/mbn.com.ua/0.0.0.0
address=/mbs.megaroticlive.com/0.0.0.0
address=/mbuyu.nl/0.0.0.0
address=/mdotm.com/0.0.0.0
address=/measuremap.com/0.0.0.0
address=/media-adrunner.mycomputer.com/0.0.0.0

 Paso 4: Comprobar si adblocking funciona ejecutando ' dig @localhost measuremap.com'
Nota: utilizar 'cavar' es necesario instalar dnsutils usando el comando "apt-get install dnsutils". También puede utilizar el comando "host localhost de measuremap.com"

# dig @localhost measuremap.com

; <<>> DiG 9.7.3 <<>> @localhost measuremap.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57475
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;measuremap.com.                        IN      A

;; ANSWER SECTION:
measuremap.com.         0       IN      A       0.0.0.0

;; Query time: 3 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Nov 11 23:57:28 2013
;; MSG SIZE  rcvd: 48

Si obtienes el valor especificado en la secuencia de comandos para la variable pixelserv_ip (es decir, 0.0.0.0 en el ejemplo anterior) esto significa que su dnsmasq ahora bloqueando servidores de anuncios
paso 5 (opcional): para actualizar sus listas de servidores de ad sobre una base regular puede ejecutar 'crontab -e' y agregue lo siguiente para la actualización automática.
56 4 ** 6 /config/user-data/update-adblock-mdns.sh

El ejemplo actualiza cada domingo a las 4:56
paso 6: prueba a través de su teléfono o tableta o navegador. Aunque no establece un servidor de pixelserv, páginas web todavía procesar correctamente sin ningún problema.
Nota: he intentado y logrado ejecutar un servidor pixelserv en el router pero Tuve que jugar con la configuración estándar de lighthttpd que no escucha en el puerto 80 (lo hace sólo para redirigir los navegadores al puerto https configurado). No dude en probar y recordar cambiar la secuencia de comandos para que utiliza la dirección IP de su router. También recomiendo aumentar la opción de escuchar a más de la estándar 30, caso contrario se ahoga y muere silenciosamente en el EdgeMAX.

PD: no recuerdo si tuve que instalar curl, sed u otra cosa. Actualizaré el post con la respuesta que recibirá.