15 febrero 2011

Vamos a divertirnos con el güifi...

Estoy a favor de mantener la red WiFi abierta para que los vecinos y los transeúntes puedan usarla, pero sigo pensando que esto es muy divertido... Es mas viejo que la escarapela, de hecho la primera vez que hice algo similar usaba ettercap con el set de filtros que viene de serie y un script en Perl, pero nunca mas pude volver a encontrarlo en mis backups...

¿Tu vecino te roba la conexión a Internet? Ponele todo borroso o patas para arriba!

¿Qué hacer? Pues, este hombre tomó el camino. Él sugiere que en lugar de cerrar el acceso al router, podemos pasar un buen rato. En primer lugar, separar las redes en segmentos confiables y no confiables. A continuación, enviar todo el tráfico en el segmento de no confianza a BuenosAiresLibre, o quizas mejor solo a ver gatitos. O mejor aún, crear un proxy squid que toma todas las imágenes que llegan a la serie de sesiones no sean de confianza y se vuelve al revés antes de servir para arriba. O simplemente hacer que todas las imágenes borrosas. Para crear un efecto "borroso de la red".

Consiste en darles la informacion convertida... Obvio que se puede hacer lo mismo cuando tratan de acceder a cierto sitios... Je je, creo que voy a divertirme un rato en casa con esto de nuevo ;)

Dividir la red
Para empezar, divido la red en dos partes: una de confianza y otra que no lo es. La parte de confianza tiene un bloque de red, y la otra, otro diferente. Usamos el servidor DHCP para identificar las direcciones MAC y asignar las direcciones correspondientes.

/etc/dhcpd.conf
ddns-updates off;
ddns-update-style interim;
authoritative;

shared-network local {

        subnet *.*.*.* netmask 255.255.255.0 {
                range *.*.*.* *.*.*.*;
                option routers *.*.*.*;
                option subnet-mask 255.255.255.0;
                option domain-name "XXXXX";
                option domain-name-servers *.*.*.*;
                deny unknown-clients;

                host trusted1 {
                        hardware ethernet *:*:*:*:*:*;
                        fixed-address *.*.*.*;
                }
		}

        subnet 192.168.0.0 netmask 255.255.255.0 {
                range 192.168.0.2 192.168.0.10;
                option routers 192.168.0.1;
                option subnet-mask 255.255.255.0;
                option domain-name-servers 192.168.0.1;
                allow unknown-clients;

        }
}



¡IPtables es divertido!
¡De repente todo son gatitos! Es una red para gatitos.

/sbin/iptables -A PREROUTING -s 192.168.0.0/255.255.255.0 -p tcp -j DNAT --to-destination 64.111.96.38


Para quienes no estén familiarizados con el tema, esto redirige todo el tráfico a kittenwar.

Para mayor diversión, configuramos iptables para que reenvíe todo a un proxy squid transparente que se ejecuta en el puerto 80 de la máquina.

/sbin/iptables -A PREROUTING -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1


Esa máquina ejecuta Squid con un redireccionador sencillo que descarga imágenes, usa Mogrify para invertirlas y las sirve desde su servidor web local.

El script de redirección

#!/usr/bin/perl
$|=1;
$count = 0;
$pid = $$;
while (<>) {
        chomp $_;
        if ($_ =~ /(.*\.jpg)/i) {
                $url = $1;
                system("/usr/bin/wget", "-q", "-O","/space/WebPages/images/$pid-$count.jpg", "$url");
                system("/usr/bin/mogrify", "-flip","/space/WebPages/images/$pid-$count.jpg");
                print "http://127.0.0.1/images/$pid-$count.jpg\n";
        }
        elsif ($_ =~ /(.*\.gif)/i) {
                $url = $1;
                system("/usr/bin/wget", "-q", "-O","/space/WebPages/images/$pid-$count.gif", "$url");
                system("/usr/bin/mogrify", "-flip","/space/WebPages/images/$pid-$count.gif");
                print "http://127.0.0.1/images/$pid-$count.gif\n";

        }
        else {
                print "$_\n";;
        }
        $count++;
}


¡Entonces internet se ve así!


Y si reemplazas flip con -blur 4 obtienes blurry-net



gotmi1k (http://g0tmi1k.blogspot.com/) rediseñó esta página para la era Web 2.0 y convirtió toda la explicación técnica en un video (http://g0tmi1k.blogspot.com/2011/04/video-playing-with-traffic-squid.html). También escribió algunos scripts adicionales para manipular las imágenes, y debo confesar que el filtro asciiart y las opciones de máquina del tiempo son particularmente ingeniosas.

Hasta en kernel.org pueden pasar estas cosas...

Solo hay algo mas doloroso que aprender de la experiencia y es no aprender de ella.

Post relacionados:


Que te diviertas!

No hay comentarios:

Publicar un comentario