viernes, 7 de marzo de 2014

Eliminar publicidad en cualquier navegador mediante Script .

Sucede que a día de hoy hay miles, cientos de miles de sitios de publicidad o marketing en internet, encontramos de todo tipos … AdSense, publicidad de Yahoo, sitios menos intrusivos que venden posts patrocinados, publicidad que encontramos en Facebook y Twitter (de hecho también se pueden incluir los tweets patrocinados que se venden en algunos sitios) … en fin, que internet está minado de publicidad y banners que a muchos no les interesan.

Hace un tiempo atrás les hablé sobre cómo bloquear la publicidad de internet mediante la terminal para cualquier navegador (sin usar plugins), consistía en (de forma manual) agregar sitios de publicidad al /etc/hosts indicando que se encontraban en 127.0.0.1, o sea, que cuando abríamos un sitio el navegador iría a buscar una imagen de Adsense en nuestro ordenador, como obviamente esa imagen no existía bueno, no se nos mostraba nada.

Esto obviamente tenía sus pros y sus contras. Primeramente al ser manual controlábamos los dominios que eran bloqueados, pero también al ser manual habían muchos otros que al no conocerlos no podíamos bloquearlos. En este artículo les traigo un script escrito por mí que automatiza el proceso, o sea, cada X tiempo descarga una base de datos que contiene sitios de spyware y publicidad y agrega esos sitios a nuestro /etc/hosts, de esta forma el navegador busca la publicidad en un servidor web en nuestro ordenador … servidor web que, al no existir (y en caso de existir, no existen las fotos/banners de publicidad) pues bueno, simplemente no veremos esos molestos anuncios.

En fin, aquí los pasos:

1. Descargamos el script y le damos permisos de ejecución:

-cd $HOME
-wget http://ftp.desdelinux.net/anti-ads.sh
-chmod +x anti-ads.sh

2. Luego, editemos nuestro /etc/crontab para que el script se ejecute todos los meses, el día 1ro de cada mes por ejemplo, quedaría así:

-00 00 1 * * root /home/usuario/anti-ads.sh

3. Ahora deben reiniciar su demonio de cron o bien el ordenador, lo que más cómodo les sea.

4. Listo, si quieren pueden esperar a que sea día 1ro o ejecuten ustedes mismos (con privilegios de root) el script.
El contenido del script aquí lo dejo, para explicarlo detalladamente:

#!/bin/bash

wget http://winhelp2002.mvps.org/hosts.txt -O /tmp/hosts.txt

ls /etc/hosts.old &> /dev/null
if [ $? -ne 0 ]; then
cp /etc/hosts /etc/hosts.old
fi

echo "127.0.0.1       localhost.localdomain   localhost" > /etc/hosts
echo "::1             localhost.localdomain   localhost" >> /etc/hosts
cat /tmp/hosts.txt >> /etc/hosts

rm /tmp/hosts.txt

exit

Vamos a explicarlo.

Primero descargamos el archivo que contiene todo el listado de dominios de publicidad y lo ponemos en /tmp/ con el nombre hosts.txt. Luego comprobamos si existe el archivo /etc/hosts.old … si no existe significa que es primera vez que ejecutamos este script, ahí salvamos (hacemos una copia) de nuestro /etc/hosts hacia /etc/hosts.old pues siempre es bueno quedarnos con el original. Luego reemplazamos todo el contenido de nuestro /etc/hosts por dos líneas standards, que indican que 127.0.0.1 es localhost y viceversa. Para terminal con el archivo hosts, copiamos todo el contenido de /tmp/hosts.txt hacia /etc/hosts (sin eliminar las otras dos líneas puestas), de esta forma ya tenemos indicados que los dominios de publicidad se encuentran en 0.0.0.0 … vamos, justo lo que queremos. Luego para finalizar, simplemente borramos /tmp/hosts.txt y listo.

Espero les sirva, hasta una próxima oportunidad.

Dios los bendiga.

Creado por: Maicol Muñoz
correo: maicolgmid@hotmail.com

No hay comentarios:

Publicar un comentario