Cómo eliminar anuncios con Pixelserv en DD-WRT
Existen numerosas formas de bloquear anuncios en su navegador, pero ¿qué pasaría si pudiera bloquearlos en el enrutador? A continuación, le indicamos cómo usar el firmware DD-WRT y el "envenenamiento de DNS" deliberado para bloquear los anuncios de cada dispositivo en su red..
Visión general
Actualizar: Guía actualizada para reflejar los comentarios proporcionados por los comentaristas y actualizado el paquete anti-ads con el ejecutable más nuevo de pixel-server y un registro de cambios.
La primera pregunta en la mente de todos en este momento es "¿por qué no usar simplemente el bloque de anuncios?"
Para mucha gente, simplemente no hay una razón, especialmente con la nueva capacidad de Chrome para replicar las extensiones que usas en cada computadora en la que ejecutas Chrome.
La respuesta se encuentra en algún lugar entre la reducción de la sobrecarga de no tener que enseñar a todos los usuarios de su red sobre el bloqueo de anuncios (estoy hablando con usted, mamá, hermana, abuela y secretaria de la oficina) y la conveniencia de no ser molestado con eso en cada computadora que configures Eso es suponiendo que habrá algunas computadoras en su red en las que no va a configurar su entorno personal (por ejemplo, "servidores centrales" o VM).
Nota: A pesar de que uso el siguiente método en mi enrutador doméstico, encontré que el bloqueo de anuncios es una excelente adición, y recomiendo usar ambos métodos en conjunto. Además, si no tiene un enrutador DD-WRT con bloque de anuncios, es más que suficiente. De hecho, me gusta mucho el programa, doné a su desarrollador y animo a todos a que lo hagan, para que su desarrollo continúe..
Como funciona?
Esencialmente, esto funciona al envenenar deliberadamente nuestro DNS para devolver una IP específica para dominios en una lista no aprobada. Esta lista no aprobada contendrá nombres de dominio de los sitios que son responsables exclusivamente de la entrega de contenido publicitario, por lo que no los extrañaremos mucho..
Configuraremos un servidor HTTP secundario en el enrutador para servir una imagen de un píxel transparente, como respuesta a cualquier solicitud de URL. Junto con la resolución "incorrecta" del DNS, esto hará que los clientes de la red soliciten el contenido de nuestro servidor interno de píxeles y obtengan una imagen en blanco como respuesta..
Para generar la lista no aprobada, crearemos una lista personal junto con dos listas descargadas dinámicamente. las listas dinámicas son el archivo de host de MVPS y la lista de dominios de Yoyo, juntas contienen una lista muy extensa de sitios de publicidad. Al aprovechar estas listas, nos queda la responsabilidad de simplemente agregar el delta de los sitios que todavía no están en uno de ellos, en nuestra lista personal.
También configuraremos una "lista blanca" para los dominios que no queremos que se bloqueen por ningún motivo.
Prerrequisitos y suposiciones
- Paciencia joven, esta es una lectura larga..
- Este procedimiento fue creado y probado en DD-WRT (v24pre-sp2 10/12/10 mini r15437), como tal, ya debe tener esta versión o posterior instalada en su enrutador para usarla. Más información ha terminado en el sitio DD-WRT.
- Para facilitar las explicaciones, se supone que el enrutador se ha restaurado a sus "valores predeterminados de fábrica" o que la configuración utilizada no ha cambiado desde sus ajustes predeterminados "listos para usar" desde entonces.
- La computadora cliente está utilizando el enrutador como servidor DNS (este es el valor predeterminado).
- Espacio para JFFS (en caso de duda, recomiendo usar el mini versión de DD-WRT).
- Se supone que su red ya está configurada y que es una clase C (una que tiene una subred de 255.255.255.0) como la última IP en esa red de clase C (x.y.z.254) Será asignado para el programa pixel-server.
- La voluntad de instalar winSCP.
* El script no podrá ajustar las listas de bloqueo después de la primera ejecución hasta el próximo ciclo de actualización (3 días).
Creditos
Actualizar: Un agradecimiento especial a "mstombs" por la gran pieza de código C sin su trabajo, todo esto no sería posible, "Oki" por compilar la versión compatible con Atheros y la cita ;-) y "Nate" por ayudar con el control de calidad.
Si bien hubo mucho trabajo para perfeccionar este procedimiento en mi final, la inspiración fue encendida por los chicos en el foro DD-WRT y algunos de los fundamentos de esta guía se pueden encontrar en "bloqueo de anuncios con DD- WRT revisited (simple) "," pixelserv sin Perl, sin jffs / cifs / usb free "y" Flexion.Org Wiki en DNSmasq ", así como otros.
Pongamos manos a la obra
Habilitar SSH para acceso SCP
Al habilitar SSH, a su vez nos brindamos la posibilidad de conectarnos al enrutador mediante el protocolo SCP. con eso habilitado, podemos usar el programa winSCP para navegar visualmente por la estructura de carpetas del enrutador (como veremos más adelante).
Para hacer esto, usando el webGUI, vaya a la pestaña "Servicios". Busque la sección "Secure shell" y haga clic en el botón de radio "Enable" para la configuración de SSHd.
Una vez hecho esto, la webGUI debería verse como a continuación y puede hacer clic en "Guardar" (no hacer aplicar aún).
Habilitar JFFS
Con el fin de hacer esta configuración de una manera que sería estable, reproducible y * sea un "buen ciudadano de Internet", utilizaremos JFFS para almacenar la mayor cantidad de configuraciones posible. Hay otras formas de hacerlo sin habilitar JFFS, si no puede debido a limitaciones de espacio, pero no están cubiertas aquí.
* otros métodos hacen que su enrutador descargue las listas dinámicas y ejecutables del servidor de píxeles cada vez que se ejecuta el script. ya que esto pone una tensión en los servidores que contienen las listas y el ejecutable y esto le cuesta dinero a alguien, este método intenta evitarlo si es posible.
Si aún no sabe qué es JFFS, esta explicación, tomada de la entrada del wiki de DD-WRT sobre JFFS, debería aclarar las cosas:
El Sistema de archivos flash de registro en diario (JFFS) le permite tener un Sistema de archivos de Linux grabable en un enrutador habilitado para DD-WRT. Se utiliza para almacenar programas de usuario como Ipkg y datos en una memoria flash inaccesible. Esto le permite guardar archivos de configuración personalizados, alojar páginas web personalizadas almacenadas en el enrutador y muchas otras cosas que no son capaces sin JFFS.
Para habilitar JFFS en su enrutador, vaya a la pestaña "Administración" y busque la sección JFFS. La imagen de abajo muestra dónde encontraría esta sección dentro de la pestaña "Administración".
En la sección Soporte de JFFS2, haga clic en los botones de radio "Habilitar" para "JFFS2" y (cuando aparezca) la configuración de "Limpiar JFFS2". Una vez seleccionado, haga clic en "Guardar".
Cuando se hayan guardado los ajustes, aún en la pestaña "Administración", reinicie el enrutador utilizando el botón "Reiniciar enrutador". Esto aplicará la configuración y realizará el "formato" necesario de la "partición" JFFS.
Cuando la webGUI vuelva del reinicio a la pestaña "Administración", espere medio minuto adicional y actualice la página.
Si tiene éxito, debería ver que su montura JFFS tiene espacio libre como en la imagen.
Configuración del servidor de píxeles
Descargue y extraiga el paquete anti ads para el archivo zip de dd-wrt que contiene el ejecutable de pixel-server (no estamos tomando el crédito, solo evitamos el "enlace activo"), el script de bloqueo de anuncios (escrito por el suyo de verdad) y el personal lista de dominios creada por "Mithridates Vii Eupator" y yo.
Es hora de colocar los archivos en el montaje JFFS en el enrutador. para hacer esto, instale winSCP (es el tipo de configuración "siguiente -> siguiente -> terminar") y ábralo.
En la ventana principal, complete la información de esta manera:
Nombre de host: la dirección IP de su enrutador (el valor predeterminado es 192.168.1.1)
Número de puerto: dejar sin cambios a las 22.
Nombre de usuario: raíz (incluso si cambiaste el nombre de usuario para webGUI, el usuario de SSH siempre será * root *)
Archivo de clave privada: déjelo en blanco (esto solo es necesario cuando crea una autenticación basada en pares de claves que no tenemos)
Protocolo de archivo: SCP
También debemos deshabilitar el "Grupo de usuarios de búsqueda" como se muestra a continuación (gracias a mstombs por señalarlo) porque winSCP está esperando un Linux completo en el otro lado que los desarrolladores de DD-WRT, a pesar de todo el excelente trabajo, no pudieron proporcionar (principalmente porque simplemente no hay suficiente espacio). Si deja esto marcado, encontrará mensajes de miedo cuando se conecte y guarde los archivos editados..
Seleccione Avanzar, y luego desmarque "Buscar grupos de usuarios".
Si bien es opcional, puede optar por guardar la configuración ahora para su uso posterior. Si elige guardar la configuración que se recomienda, también se recomienda (a pesar de los llantos del asilo de "paranoia de seguridad" que estamos profanando la existencia de SSH) que guarde la contraseña.
Entonces su ventana principal se verá como en la imagen, y todo lo que tendrá que hacer para conectarse al enrutador es hacer doble clic en la entrada.
Como esta es la primera vez que se conectará al enrutador, winSCP le preguntará si está dispuesto a confiar en la huella digital del otro lado. Haga clic en "Sí" para continuar.
Los desarrolladores de DD-WRT han implementado un mensaje de bienvenida de Banner con cierta información sobre el firmware que ha instalado. una vez en rojo, haga clic en la casilla de verificación "No volver a mostrar este banner de nuevo" y "Continuar".
Una vez conectado, navegue hasta la carpeta de nivel superior (raíz AKA "/") y luego vuelva a "/ jffs", ya que es el único lugar de escritura permanente en el sistema de archivos del enrutador ("/ tmp" no sobrevive a los reinicios y el resto son de solo lectura).
Cree una nueva carpeta, presionando F7 o haciendo clic con el botón derecho en un lugar en blanco, coloque el cursor sobre "Nuevo" y haga clic en "Directorio".
Nombre el nuevo directorio "dns". creamos este directorio para mantener las cosas en el directorio jffs organizadas para su uso futuro y porque estamos cambiando la forma en que funciona el servicio DNS.
Copie los archivos “pixelserv” y “disable-adds.sh” del archivo zip anti-ads-pack-for-dd-wrt, seleccionándolos (use la tecla “insertar”), presionando “F5” y luego “Copiar ”.
Nota: Si su enrutador está basado en Atheros (puede verificarlo en la wiki de DD-WRT) deberá usar el pixelserv_AR71xx provisto por Oki e incluido en el paquete y cambiar su nombre a "pixelserv" antes de continuar.
Una vez que los archivos están en el enrutador, debemos hacerlos ejecutables seleccionándolos (nuevamente use "insertar"), haga clic con el botón derecho y luego "propiedades".
En la ventana de propiedades, haga clic en la "X" para la fila "Propietario". Eso le dará a los archivos permisos de ejecución..
Configuración del enrutador
Ahora que el escenario está listo, podemos decirle al enrutador que ejecute el script de bloqueo de anuncios al inicio.
Para hacer esto, en la webGUI vaya a la pestaña "Administración" y luego a la pestaña "Comandos".
En el cuadro de texto "Comandos", escriba la ubicación del script como "/jffs/dns/disable_adds.sh", como en la imagen y luego haga clic en "Guardar inicio".
Si tiene éxito, debería ver que el script se ha convertido en parte del inicio del enrutador como se muestra en la imagen de arriba..
Configuración de la lista de dominios bloqueados personales (Opcional)
Esta lista le permite agregar dominios a las listas no aprobadas, si encuentra que las dos listas dinámicas no detectan algo.
Para hacer esto, hay dos opciones, y funcionan en conjunto, por lo que puede usar ambas de acuerdo con lo que sea más conveniente para usted..
Nota: los la sintaxis es importante, Ya que estamos creando directivas de configuración que el daemon DNSMasq (el proceso que es responsable del nombre de DNS para las traducciones de IP) utilizará directamente. Como tal, la sintaxis incorrecta aquí hará que el servicio se bloquee y el enrutador no pueda resolver las direcciones IP de los nombres de dominio (se le ha advertido).
Para encontrar los nombres de dominio ofensivos para bloquear, puede utilizar nuestra guía "Encontrar los mensajes secretos en los encabezados de sitios web" como guía. Los pasos para encontrar los nombres de los dominios de publicidad son prácticamente los mismos, solo que en este caso está buscando una dirección en lugar de un mensaje..
El primero y ciertamente, una forma más accesible es colocar la lista en el cuadro de configuración "DNSMasq" en wegGUI. Esto se debe a que, para agregar a esta lista, se puede acceder al webGUI en lugar de tener que ir "debajo del capó" para realizar cambios..
Vaya a la pestaña "Servicios", busque la sección "DNSMasq" y allí encuentre el cuadro de texto "Opciones adicionales de DNSMasq".
En este cuadro de texto, ingrese las listas de dominios que desea que se bloqueen con la sintaxis "dirección = / nombre de dominio a bloque / servidor de píxeles-ip" como se muestra en la siguiente imagen:
Donde en este ejemplo, el "192.168.1.254" es la IP que se genera para el servidor de píxeles en función de la "dirección de red" de su LAN. Si su dirección de red es diferente a 192.168.1.x, tendrá que ajustar la dirección para el servidor de píxeles en consecuencia.
Cuando termine, haga clic en "Guardar" en la parte inferior de la página (no aplique todavía).
El segundo La opción es componer la lista de dominios que desea bloquear, al archivo "personal-ads-list.conf" que yo mismo y "Mithridates Vii Eupator" hemos reunido. Este archivo es parte del archivo zip que descargaste anteriormente y es un gran comienzo para ambos métodos.
Para usarlo, si es necesario, use su editor de texto favorito para ajustar la IP del servidor de píxeles (aquí se aplican las mismas restricciones). Luego simplemente cópielo en el directorio "/ jffs / dns" ya que tiene los otros archivos. Una vez que esté allí, puedes usar winSCP para editarlo y agregar dominios.
Configuración de la lista blanca
Esta es la lista de dominios que se omitirán de las listas dinámicas de "hosts" y "dominios".
Esto es necesario porque el simple bloqueo de algunos dominios hace que los sitios que los usan no funcionen correctamente. El ejemplo más notable es "google-analytics.com".
Si bloqueamos su dominio, no cambiará el hecho de que los sitios que lo usan, hagan que su navegador descargue un JavaScript que se ejecute en eventos como dejar una página. Esto significa que para un sitio de este tipo, su navegador intentará "llamar a casa" contactando con el dominio de Google, no entenderá la respuesta y tendrá que esperar hasta que el script se agote para continuar en la página siguiente. Esa no es una experiencia agradable de navegación y es por eso que cualquier dominio que contenga "google-analytics" y "googleadservices" está * exento de forma estricta del filtrado.
Esta lista se crea para usted con los dominios mencionados anteriormente, cuando el script se ejecuta por primera vez, en el directorio "/ jffs / dns".
Para usar la lista blanca, abra el archivo con winSCP y **perpiaño a la lista de dominios que desea excluir, teniendo cuidado de no dejar líneas en blanco (al dejar una línea en blanco se eliminarán todos los dominios de todas las listas).
* Mientras que el script crea la lista blanca con los dominios dentro de ella en la primera ejecución, NO insiste en sus presentes para futuras ejecuciones. así que si cree que Google debería estar bloqueado a pesar de los problemas mencionados anteriormente, puede eliminar los dominios de la lista blanca.
** Debe ingresar los nuevos dominios que desea al comienzo de la lista. Esto se debe a un error con la forma en que bash interpreta las nuevas líneas ... lo siento, todavía no tengo trabajo para eso.
Ejecución
Esto es, finalmente es tiempo de invocar el script y ver los resultados simplemente reiniciando el enrutador.
Para hacer esto desde la webGUI, en la pestaña "Administración", vuelva a "Administración", en la parte inferior de la página, haga clic en "Reiniciar enrutador" y espere a que el enrutador vuelva a funcionar..
El guión puede tardar un par de minutos en realizar sus tareas por primera vez..
En el tipo de enrutadores WRT54Gx, sabrá cuándo el script ha terminado de ejecutarse porque parpadeará el LED naranja de Cisco en la parte frontal del enrutador (los demás enrutadores deben tener un signo similar de "indicar la cola").
Actualización: esta parte se * quitó después de que se descubrió que era una característica independiente del hardware.
Como estamos tratando de ver la ausencia de elementos en la web, recomiendo simplemente navegar a un par de sitios para ver el efecto..
Sin embargo, si desea asegurarse de que el procedimiento fue exitoso, el primer paso de depuración en la sección de resolución de problemas es un buen lugar para comenzar.
* En realidad está comentado para que puedas restaurarlo si estás seguro de que no causará problemas en tu configuración.
Disfrutar!
Solución de problemas
Si tiene problemas, hay un par de cosas que puede hacer para verificar qué salió mal..
- Prueba de que el dominio de publicidad se resuelve a la IP pixelserv.
Puede hacerlo emitiendo el comando nslookup contra el dominio "ofensivo". Por ejemplo, "ad-emea.dubleclick.com" es parte de los hosts bloqueados de la lista personal. Al emitir "nslookup ad-emea.dubleclick.com" en el símbolo del sistema, el resultado debería ser:
Donde se vería una respuesta normal desbloqueada: - Rehacer.
Para asegurarse de que la configuración de su enrutador no coincida con la configuración del bloque de anuncios, restaure el valor predeterminado de fábrica del enrutador e intente nuevamente. Una vez que tenga éxito, agregue sus cambios personalizados con la esperanza de que no vuelvan a chocar.. - Asegúrese de que su cliente esté utilizando el enrutador como DNS.
Especialmente cuando se utiliza una red privada virtual (VPN) o una red que es más compleja que la configuración normal del enrutador a la computadora, es posible que su computadora cliente simplemente no use el enrutador como su DNS. Es muy fácil ver en el comando anterior qué es el servidor DNS que usa el cliente. Si la IP no es la misma que el enrutador, ha encontrado el problema.. - Borra tus máquinas personales DNS caché.
Esto se debe a que, de lo contrario, es posible que siga viendo los anuncios en el sitio con el que realiza las pruebas, simplemente porque su computadora ya sabe cómo obtener el contenido del anuncio por su cuenta sin consultar el DNS. En Windows, esto sería "ipconfig / flushdns". - Cierra el navegador.
A veces, el navegador guarda la información almacenada en la memoria caché, por lo que limpiar el caché de DNS como se muestra arriba no ayuda. - En caso de duda reiniciar.
A veces, los cachés pueden persistir y la mejor manera de deshacerse de ellos es reiniciar. Comience con el enrutador y, si el problema persiste, la computadora cliente. - Usar syslog.
Puede activar el daemon syslog del enrutador y luego mirar los mensajes para ver si el script encuentra algún problema, examinando sus mensajes. También la secuencia de comandos agrega algunos alias de comandos para facilitar la depuración.
Para hacer esto, vaya a la pestaña "Servicios" y habilite el demonio syslog como se muestra en la siguiente imagen:
Nota: el "Servidor remoto" se usa cuando tiene un servidor syslog en otra máquina (como con kiwi) Si no tienes uno, simplemente déjalo en blanco..
Una vez habilitado, puede ver los mensajes de depuración mirando el / var / logs / messages archivo en una terminal.
* Para ver TODOS los mensajes de arranque, puede usar “más / var / log / messages”.
* Para ver solo los mensajes del script en el registro, use el alias "obstruir".
* Para ver los mensajes a medida que llegan, en tiempo real, use "tail -f / var / log / messages" o por su alias "tlog". - Entender el guion.
Aunque he hecho este video de YouTube para una versión anterior de esta guía y el guión, todavía contiene muchas verdades y explicaciones que se aplican a cómo funciona la versión nueva y mejorada..