{"id":1980,"date":"2015-04-01T11:31:24","date_gmt":"2015-04-01T09:31:24","guid":{"rendered":"https:\/\/diocesanos.es\/blogs\/equipotic\/?p=1980"},"modified":"2015-03-31T18:20:31","modified_gmt":"2015-03-31T16:20:31","slug":"dnsmasq-eliminando-publicidad-en-las-tablets-del-colegio","status":"publish","type":"post","link":"https:\/\/diocesanos.es\/blogs\/equipotic\/2015\/04\/01\/dnsmasq-eliminando-publicidad-en-las-tablets-del-colegio\/","title":{"rendered":"DNSMASQ: eliminando publicidad en las tablets del Colegio"},"content":{"rendered":"<p>Estos d\u00edas los estoy dedicando a terminar de configurar las tablets que entre el AMPA y el Centro han adquirido para que los chicos las usen en clase. Se han actualizado, instalado un buen conjunto de \u00abapps\u00bb educativas (de las que publicar\u00e9 pr\u00f3ximamente un listado) que cubren los niveles desde guarder\u00eda a 4\u00ba de la ESO, y se han creado usuarios espec\u00edficos de forma que cada nivel est\u00e9 identificado por un color y s\u00f3lo tenga acceso a las \u00abapps\u00bb que le corresponden.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/tablet.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1981\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/tablet-300x250.jpg\" alt=\"tablet\" width=\"300\" height=\"250\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/tablet-300x250.jpg 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/tablet.jpg 600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Entre los criterios de selecci\u00f3n de las \u00abapp\u00bb estaban la disponibilidad de una versi\u00f3n gratuita. Evidentemente, los desarrolladores de estos programas se merecen una compensaci\u00f3n por su trabajo. Pero el m\u00e9todo de aparici\u00f3n indiscriminada de publicidad durante el uso con los ni\u00f1os distrae e impide una correcta ejecuci\u00f3n de las actividades con las tablets. Con el tiempo se ir\u00e1n adquiriendo las mejores aplicaciones. Mientras tanto intentaremos que al realizar los ejercicios de lecto-escritura no nos interrumpan con cursos de cocina&#8230;<\/p>\n<p><!--more--><\/p>\n<p>En un primer momento valor\u00e9 la posibilidad de utilizar alguna aplicaci\u00f3n espec\u00edfica como <a href=\"https:\/\/adblockplus.org\/en\/android-install\" target=\"_blank\"><strong>AdBlock Plus<\/strong><\/a> (que ya utilizamos en los navegadores de los ordenadores) pero ralentiza el acceso a Internet y no filtra todos los mensajes de publicidad emergentes en las aplicaciones.<\/p>\n<p>Incluso me plante\u00e9 \u00ab<strong><a href=\"http:\/\/es.wikipedia.org\/wiki\/Android_rooting\" target=\"_blank\">rootear<\/a><\/strong>\u00bb las tablets e instalar algo como <a href=\"https:\/\/sufficientlysecure.org\/index.php\/adaway\/\" target=\"_blank\"><strong>AdAway<\/strong><\/a>. En cualquier caso tendr\u00eda que instalar una a una todas las tablets, y volver a configurarlas cuando cambiasen las condiciones y los ajustes del filtrado.<\/p>\n<h2>Filtrado por direcciones<\/h2>\n<p>Las aplicaciones que incluyen anuncios hacen uso de servidores de internet \u00abespecializados\u00bb en este tipo de publicidad on-line. S\u00f3lo tenemos que enga\u00f1ar a la tablet para que no encuentre esos servidores.<\/p>\n<p>Ya hemos probado con \u00e9xito soluciones basadas en combinar un \u00abproxy-cach\u00e9\u00bb como <a href=\"http:\/\/www.squid-cache.org\/\" target=\"_blank\"><strong>Squid<\/strong><\/a> + <a href=\"http:\/\/www.squidguard.org\/\" target=\"_blank\"><strong>SquidGuard<\/strong><\/a> junto con una base de datos de direcciones <strong><a href=\"http:\/\/www.squidguard.org\/blacklists.html\" target=\"_blank\">prohibidas<\/a><\/strong> y configuraciones especiales de NAT y cortafuegos. Pero para las tablets propongo algo m\u00e1s sencillo de instalar y mantener: <strong>Dnsmasq<\/strong>.<\/p>\n<p>El escenario descrito en este tutorial utiliza el programa Dnsmasq como mini-servidor para falsificar entradas DNS . Resumiendo, los siguientes pasos describen c\u00f3mo instalar <strong>Dnsmasq<\/strong> y configurarlo para reenviar todas las solicitudes DNS de las tablets a los servidores reales excepto las que corresponden a sitios de publicidad .<\/p>\n<p><em><span style=\"color: #333333;\"><strong>IMPORTANTE:<\/strong> Una vez <strong>Dnsmasq<\/strong> est\u00e9 instalado y en funcionamiento, las tablets deben ser configuradas con la IP de este servidor DNS para resolver direcciones. Esto se puede hacer cambiando la configuraci\u00f3n del servidor DHCP o accediendo a la configuraci\u00f3n avanzada de la conexi\u00f3n WiFi de cada tableta.<\/span><\/em><\/p>\n<p><strong><span style=\"color: #ffffff; background-color: #000000;\">\u00a0[ 1 ]\u00a0<\/span> <span style=\"text-decoration: underline;\">Descarga e instalaci\u00f3n en LINUX<\/span><\/strong><\/p>\n<p>Tenemos a nuestra disposici\u00f3n un equipo con IP fija que monitoriza y gestiona el uso de la red WiFi del Centro, que es la que utilizan las tablets. Ese ser\u00e1 nuestro equipo candidato para la instalaci\u00f3n.<\/p>\n<p>En algunos sistemas (como Ubuntu 14.04), <strong>Dnsmasq<\/strong> ya est\u00e1 instalado y en ejecuci\u00f3n por defecto como un servidor DNS local (como cach\u00e9 ). En caso contrario puedes abrir una consola y ejecutar:<\/p>\n<pre>apt-get install dnsmasq-base<\/pre>\n<p><strong><span style=\"color: #ffffff; background-color: #000000;\">\u00a0[ 2 ]\u00a0<\/span> <span style=\"text-decoration: underline;\">Configurar Dnsmasq<\/span><\/strong><\/p>\n<p><strong>Dnsmasq<\/strong> utiliza el fichero de configuraci\u00f3n \u00ab<em>\/etc\/dnsmasq.conf<\/em>\u00bb que lee al iniciarse.\u00a0 Lo habitual es que ese fichero no existe y que <strong>Dnsmasq<\/strong> inicie con los valores por defecto.<\/p>\n<p><span style=\"color: #333333;\"><em><strong>NOTA<\/strong><\/em>: En el caso particular de Ubuntu 14.04 (que es el sistema que vamos a utilizar) <strong>Dnsmasq<\/strong> forma parte de los subservicios de <strong>NetworkManager<\/strong> que se encarga de iniciarla red.<\/span><\/p>\n<p>Crea\/edita el fichero<em> \/etc\/dnsmasq.conf<\/em> y escribe estas l\u00edneas:<\/p>\n<pre>no-dhcp-interface=\r\nserver=8.8.8.8 \r\nno-hosts\r\naddn-hosts=\/etc\/dnsmasq.hosts<\/pre>\n<p>Estas cuatro l\u00edneas le dicen a Dnsmasq:<\/p>\n<ol>\n<li>Que no inicie el servidor de DHCP (no es necesario para el ejemplo)<\/li>\n<li>Que use el servidor DNS de Google (con IP\u00a0 8.8.8.8) como servidor al que reenviar las peticiones si el Dnsmasq no las resuelve (puedes omitirlo para que utilice los configurados en tu red)<\/li>\n<li>Que no utilice el fichero<em> \/etc\/hosts<\/em> del sistema.<\/li>\n<li>Que cargue las entradas del fichero <em>\/etc\/dnsmasq.hosts<\/em> .<\/li>\n<\/ol>\n<p><strong><span style=\"color: #ffffff; background-color: #000000;\">\u00a0[ 3 ]\u00a0<\/span> <span style=\"text-decoration: underline;\">Prepara la lista negra de direcciones<\/span><\/strong><br \/>\nEste fichero no existe. Puedes crear uno siguiendo el mismo formato que el fichero <em>\/etc\/hosts<\/em>, o partir de alguno que recoja ya cientos\/miles de direcciones de servidores de publicidad a bloquear:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/sufficiently-secure\/ad-away\/wiki\/HostsSources\" target=\"_blank\">https:\/\/github.com\/sufficiently-secure\/ad-away\/wiki\/HostsSources<\/a><\/li>\n<li><a href=\"http:\/\/www.squidguard.org\/blacklists.html\" target=\"_blank\">http:\/\/www.squidguard.org\/blacklists.html<\/a><\/li>\n<li><a href=\"http:\/\/winhelp2002.mvps.org\/hosts.htm\" target=\"_blank\">http:\/\/winhelp2002.mvps.org\/hosts.htm<\/a><\/li>\n<\/ul>\n<p>Cada l\u00ednea contiene una direcci\u00f3n IP y separadas por espacios o tabulares los nombres de dominio asociados. Como ejemplo puedes utilizar estas l\u00edneas:<\/p>\n<pre>127.0.0.1   ad.doubleclick.net\r\n127.0.0.1   ad.yieldmanager.com\r\n127.0.0.1   adadvisor.net\r\n127.0.0.1   adlog.com.com\r\n127.0.0.1   ads.mobilityware.com\r\n127.0.0.1   adservices.google.com\r\n127.0.0.1   advertising.com\r\n127.0.0.1   apps.mobilityware.com\r\n127.0.0.1   b.scorecardresearch.com\r\n127.0.0.1   campaign-tapad.s3.amazonaws.com\r\n127.0.0.1   ctxt.tribalfusion.com\r\n127.0.0.1   google-analytics.com\r\n127.0.0.1   googleadservices.com\r\n127.0.0.1   ib.adnxs.com\r\n127.0.0.1   intellitxt.com\r\n127.0.0.1   media.admob.com\r\n127.0.0.1   media.mobpartner.mobi\r\n127.0.0.1   munchkin.marketo.net\r\n127.0.0.1   origin.collective-media.net\r\n127.0.0.1   pagead2.googlesyndication.com\r\n127.0.0.1   pixel.quantserve.com\r\n127.0.0.1   static.ak.fbcdn.net\r\n127.0.0.1   swappit.tapad.com\r\n127.0.0.1   view.atdmt.com\r\n127.0.0.1   zedo.com<\/pre>\n<p><strong><span style=\"color: #ffffff; background-color: #000000;\">\u00a0[ 4 ]\u00a0<\/span> <span style=\"text-decoration: underline;\">Prueba el servidor<\/span><\/strong><\/p>\n<p>Habiendo creado los dos ficheros anteriores ya puedes arrancar <strong>Dnsmasq<\/strong>. La forma m\u00e1s f\u00e1cil es \u00abmatando\u00bb el servicio y reinici\u00e1ndolo.\u00a0 Para probar su funcionamiento utiliza las opciones <strong>&#8211;no-daemon<\/strong> (modo depuraci\u00f3n, no pasa a segundo plano) y <strong>&#8211;log-queries<\/strong> (la actividad se vuelca al terminal):<\/p>\n<pre>sudo killall -9 dnsmasq\r\nsudo dnsmasq --no-daemon --log-queries<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1984\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d1-300x135.png\" alt=\"d1\" width=\"300\" height=\"135\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d1-300x135.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d1.png 738w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>En la imagen puedes observar como se identifican los DNS de la red y el n\u00ba de direcciones de nuestra lista negra (en mi caso 125258).<\/p>\n<p>Para probar a hacerle peticiones al servicio puedes utilizar la herramienta del sistema <strong>dig<\/strong>:<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1985\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d2-300x148.png\" alt=\"d2\" width=\"300\" height=\"148\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d2-300x148.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d2.png 744w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>En el ejemplo superior le pedimos que utilice como DNS de consulta al equipo donde est\u00e1 configurado Dnsmasq (<em>192.168.1.35<\/em> en mi caso) y que nos de una respuesta corta (opci\u00f3n <strong>+short<\/strong>, no genera comentarios).<\/p>\n<p>Tal como quer\u00edamos, Dnsmasq devuelve la direcci\u00f3n IP <em>127.0.0.1<\/em> para\u00a0 \u201c<em>ad.doubleclick.net<\/em>\u201d y para \u00ab<em>www.zedo.com<\/em>\u00ab, mientras que para \u00ab<em>www.google.com<\/em>\u00bb y \u00ab<em>www.colegiopablovi.es<\/em>\u00bb devuelve las direcciones reales obtenidas de los DNS externos.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-1986\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d3-300x243.png\" alt=\"d3\" width=\"300\" height=\"243\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d3-300x243.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/03\/d3.png 744w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>En el terminal de salida del servicio Dnsmasq se aprecia exactamente eso (ver imagen superior). La primera y tercera petici\u00f3n (<em>query[A]<\/em>) se localizan en el fichero\u00a0 \u00ab\/<em>etc\/dnsmasq.hosts<\/em>\u00ab, mientras que la segunda y la cuarta lo hacen a trav\u00e9s de los DNS reales.<\/p>\n<p>Una vez que nos hemos asegurado que funciona podemos reiniciar el servicio <strong>dnsmasq<\/strong> sin argumentos desde la consola. En el caso de nuestro Ubuntu el servicio <strong>NetworkManager<\/strong> se encargar\u00e1 de iniciarlo por nosotros en cada arranque del sistema.<\/p>\n<p><span style=\"color: #ffffff; background-color: #000000;\"><strong>\u00a0[ 5 ]\u00a0<\/strong><\/span> <span style=\"text-decoration: underline;\"><strong>A\u00f1adiendo nuevos servidores a la lista negra<\/strong><\/span><\/p>\n<p>De nada sirve bajarnos de internet enormes listas de servidores de publicidad si en ellas no est\u00e1n los que utilizan nuestras aplicaciones.\u00a0 Utilizando el m\u00e9todo de prueba descrito en el punto anterior monitorizaremos a que servidores de van conectando las tablets seg\u00fan vayamos ejecutando las aplicaciones con publicidad. Recogeremos los dominios sospechosos no bloqueados ya y los a\u00f1adiremos a nuestro fichero \u00ab<em>\/etc\/dnsmasq.hosts<\/em>\u00bb siguiendo el modelo descrito.<\/p>\n<p><em><strong>NOTAS:<\/strong> <\/em><\/p>\n<ul>\n<li>Hay que recargar el fichero con cada modificaci\u00f3n por lo que tendr\u00e1s que matar y reiniciar el servicio dnsmasq de nuevo.<\/li>\n<li>Puedes utilizar m\u00e1s de un fichero de listas negras a\u00f1adiendo su ruta en una nueva l\u00ednea en el fichero de configuraci\u00f3n de dnsmasq de la forma \u00ab<em>addn-hosts=\/etc\/dnsmasq.publitablets<\/em>\u00bb lo que facilita su gesti\u00f3n.<\/li>\n<li>Si una aplicaci\u00f3n deja de funcionar tras bloquear los servidores de publicidad que utiliza siempre puedes borrar sus direcciones de las listas.<\/li>\n<li>Dependiendo de como configures las tablets o el servidor DHCP el filtrado puede afectar a todos los dispositivos que utilicen tu red.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Estos d\u00edas los estoy dedicando a terminar de configurar las tablets que entre el AMPA y el Centro han adquirido para que los chicos las usen en clase. Se han actualizado, instalado un buen conjunto de \u00abapps\u00bb educativas (de las que publicar\u00e9 pr\u00f3ximamente un listado) que cubren los niveles desde guarder\u00eda a 4\u00ba de la &hellip; <a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2015\/04\/01\/dnsmasq-eliminando-publicidad-en-las-tablets-del-colegio\/\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">DNSMASQ: eliminando publicidad en las tablets del Colegio<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,32,5,72],"tags":[],"class_list":["post-1980","post","type-post","status-publish","format-standard","hentry","category-documentacion","category-equipamiento","category-linux-2","category-tablets-2"],"_links":{"self":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/1980","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/comments?post=1980"}],"version-history":[{"count":0,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/1980\/revisions"}],"wp:attachment":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/media?parent=1980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/categories?post=1980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/tags?post=1980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}