jueves, 29 de noviembre de 2012

Bloquea publicidad, malware, spyware automáticamente

Nivel de dificultad: Bajo.


Aunque en Linux por ahora las amenazas de virus, malware o spyware es casi nula, es cierto que Internet es un mundo en donde existen muchas páginas que intentar seguir nuestros hábitos de navegación, nos bombardean con publicidad, o intentan colarnos malware o spyware que, si usáramos Windows, nos podrían fastidiar bastante.

Podemos minimizar el impacto de toda esta porquería de manera muy sencilla, añadiendo a nuestro archivo /etc/hosts entradas que apunten a 127.0.0.1, es decir, nuestra propia máquina. Así, un archivo hosts con ciertas entradas desviando ciertos (sub)dominios a 127.0.0.1 podría quedar así:



127.0.0.1       localhost
127.0.1.1       mipc

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

#Lista de bloqueos de Ignacio

127.0.0.1       ssl.google-analytics.com 
127.0.0.1       xpcs.ads.yahoo.com 
127.0.0.1       yieldmanager.com
127.0.0.1       pagead.googlesyndication.com
127.0.0.1       adservices.google.com

En este archivo /etc/hosts estoy declarando que dominios como yieldmanager.com o adservices.google.com apunten a 127.0.0.1 y no a su IP, bloqueándolos de manera sencilla.

Existen en Internet varias compilaciones de dominios de dudosa reputación o que bombardean con publicidad que podemos utilizar para modificar nuestro archivo /etc/hosts automáticamente. Una de estas compilaciones la puedes encontrar en http://winhelp2002.mvps.org/

Podemos crear un pequeño script que automáticamente nos descargue el arhivo hosts.txt de mvps.org y añadirlo a nuestro archivo /etc/hosts. Para ello, haz lo siguiente desde un terminal

sudo cp /etc/hosts /etc/hosts.orig

Este primer comando ha creado una copia de seguridad que nos servirá de base para las modificaciones que vamos a efectuar. Ahora ejecuta el siguiente comando para crear un archivo donde pondremos el script que hace la magia:

sudo gedit /usr/local/bin/actualiza_hosts.sh

y copia y pega el contenido siguiente:

#!/bin/bash
# Nuestro directorio de trabajo será /tmp
cd /tmp
# Descargamos el fichero hosts.txt
wget http://winhelp2002.mvps.org/hosts.txt
# Si tenemos el archivo descargado...
if [ -f /tmp/hosts.txt ]; then
        #primero lo convertimos a formato de texto de UNIX
        sed 's/.$//' /tmp/hosts.txt > /tmp/hosts.unix
        #Machacamos nuestro hosts con uno original
        cp /etc/hosts.orig /etc/hosts
        #Añadimos el /tmp/hosts.unix a nuestro /etc/hosts
        cat /tmp/hosts.unix >> /etc/hosts
        #Borramos los archivos temporales
        rm /tmp/hosts.txt /tmp/hosts.unix
        echo "Proceso finalizado correctamente"
else
        echo "No pude descargar el fichero desde Internet. Proceso cancelado."
        exit 1
fi
exit 0

Guarda el archivo, y hazlo ejecutable desde el terminal con el siguiente comando:

sudo chmod 700 /usr/local/bin/actualiza_hosts.sh

Este archivo solo podrá ser ejecutado con credenciales de administrador. A partir de ahora podrás ejecutarlo manualmente con el comando:

sudo actualiza_hosts.sh

o si lo deseas puedes hacerlo automáticamente con una tarea cron. Ejecuta desde un terminal:

sudo su
crontab -e

y añade la siguiente línea al cron del administrador:

20 6 1 * * /usr/local/bin/actualiza_hosts.sh > /dev/null 2>&1

Esta línea permitirá que tu sistema ejectute el script el día 1 de cada mes, a las 6 y 20 minutos de la mañana.

Recuerda, que a partir de ahora, si deseas añadir alguna entrada manualmente a tu /etc/hosts, debes hacerlo a /etc/hosts.orig y ejecutar el script actualiza_hosts.sh manualmente.

No hay comentarios:

Publicar un comentario