jueves, 25 de abril de 2013

6in4 en 4 patadas

Un túnel 6in4, es una de las tantas tecnologías transicionales. Dicen que es malísimo y vulnerable pro yo creo que no es nada que un buen y sencillo cortafuegos no pueda resolver.

Para que tena una idea de la teoría: Encapsulamos paquetes ipv en una 4, localizamos el destino, si es alncanzable por cuatro, el mandamos un 4 encapsulado, si no, le mandamos el paquete a un túnel cualquiera que se tengamos cerca y este se encarga de meterlo en la red ipv6 nativa. Osea, levantaremos una interfaz visual que con una ruta especial se encargará de todos estos menesteres. Primero y principioso, crear el tunel:

Pero eso lleva muchos pasos. Necesitaremos una ipv4 pública. Supongamos que nuestra ip es 10.0.0.1 A partir de esa ip, generaremos una "subnet" ipv6 que sera todita nuestra. Osea, a partir de una ipv4, tendremos todo un rango ipv6 para asignarle un ip a cada partícula de polvo en nuestra empresa.

ipv6calc --quiet --action conv6to4 10.0.0.1

y nos devuelve nuestro prefijo: 2002:a00:1::

Ese será nuestro rango ipv6. Pero qué hacer con el? Pues crear ipevesieses y asignarla a cuanta interfaz nos venga en gana; pero antes, hay que terminar el túnel y asignarle una. Con este pase mágico, lo hacemos:

ip tunnel add tun6to4 mode sit ttl 255 remote any local 10.0.0.1
ip link set tun6to4 up
ip -6 addr add 2002:a00:1::1/16 dev tun6to4

Pero por razones de seguridad, no le podremos aún el toque mágico que lo hecha a andar. Aseguremos primero el cortafuegos. Algo sencillo, permitirá todas las conexiones apara afuera pero nada para adentro.


ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -j DROP

y permitiremos que se haga forward de nuestra LAN, osea que nuestra LAN acceda a la ip6 pero que nadie acceda a nuestra LAN

ip6tables -A FORWARD --state RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -j DROP
sysctl net.ipv6.conf.all.forwarding=1

Sin complicaciones. Ahora que estamos asegurados, levantamos el túnel poniendo la guinda en la punta del pastel. En debian, este tabaco hace que se redireccione todo como expliqué arriba. Abra cadabra:

ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1

...y al carajo albañiles que se acabó la mezcla! Te pones otra ip como esa en una interfaz real que de a la lan, por ejemplo, eth0

ip -6 addr add 2002:a00:1::cafe/64 dev eth0

y configuras las máquina de tu LAN asignándoles una ipv6 de ese rango y a 2002:a00:1::cafe como su puerta de enlace. OJO, las direcciones asignadas a interfaces reales son /64

Un ejemplo decomo quedaría el fichero /etc/network/interfaces


iface eth1 inet6 static
        address 2002:a00:1:21c:c0ff:feb2:91c2
        netmask 64
        gateway 2002:a00:1::cafe



Bienvenido al sixbone! Agáchate que viene la galleta, el hacker está a 2x1 con descuento para los 6in4.




iptables con psd para evitar escaneos

Sencillo pero eficiente. El módulo psd para en seco los escaneos de puertos. Cómo lo hace? Pues ni puta idea; lo hace y lo hace MUY bien. Pero el ritual ha llevar a cabo es particularmente complejo ya que hay que crear un modulo... instalamos lo necesario; los paquetes son: iptables-dev iptables-persistent xtables-addons-common module-assistant

Con esto se compila le módulo:

 module-assistant auto-install xtables-addons-source 

 y andando se quita el frio:

iptables -A INPUT -m psd -j DROP