Revista Insólito

Introducción Vpn Full Mesh con Tinc y configuración en Raspberry Pi

Publicado el 24 marzo 2014 por Braybaut @braybaut

Introducción Vpn Full Mesh con Tinc y configuración en Raspberry Pi
Con tinc Podemos crear una VPN tipo full mesh(Nodos conectados entre si),  Estableciendo la comunicación de todos los host conectados a cada nodo. Cabe aclarar que cada nodo es el servidor donde esta configurado tinc.
Tinc esta lanzada bajo licencia GPL que en pocas palabras podemos decir que es Software Libre =D, este maravilloso protocolo nos ofrece unas caracteristicas que son:
  • Encryptation, Authenticatión and compressión: Comprime los paquetes antes de enviarlos, encripta los datos para que uestra información viaje segura en este medio tan inseguro como lo es la internet, ofrece la autentificación para que los nodos desconocidos no se puedan conectar a nuestra red.
  • Automatic Full Mesh routing: Sin importar la configuración del demonio, tinc siempre buscara la mejor ruta entre la mesh para no tener que dar saltos o si este es necesario, lograr de que los saltos sean menores.
  •  Easily expand your VPN: tinc se destaca por su facil configuración para que otro nodo ingrese a la mesh, solo se tiene que configurar dos nodos, el primero el nodo que va a ingresar a la mesh y el otro nodo el que ya esta en la mesh conectados con los otros. Ya cuando estos dos nodos esten conectados, el nodo nuevo podra ver a todos los nodos conectados. Es recomendable hacer las conexiones con mas de un nodo ya que si se pierda la conexión con un nodo, este ira por otra conexión o en pocas palabras otra ruta.
Existen diferentes topologias que podemos usar para establecer la conexión entre los nodos, ya es cuestión de comodidad en conexiones y uso de cada usuario.
Introducción Vpn Full Mesh con Tinc y configuración en Raspberry Pi
Tenemos que redireccionar en nuestro router el puerto 655 (TCP y UDP) hacia nuestro raspberry donde estara tinc
Ahora vamos al grano, para instalar tinc en nuestro raspberry Pi, los pasos son sencillos, !Iniciemos!
Antes de instalar tinc, procedemos a activar tun, para poder gestionar la interfaz virtual
modprobe tun 
Rasbian
 sudo apt-get install tinc
Archlinux arm
sudo pacman -S tinc

Configuración

 

Creamos los directorios de configuración:
sudo mkdir /etc/tinc/vpnraspberrysudo mkdir /etc/tinc/vpnraspberry/hosts
Creamos el archivo /etc/tinc/vpnraspberry/tinc.conf:
Name = raspberry
Device = /dev/net/tun

PrivateKeyFile = /etc/tinc/vpnraspberrypi/rsa_key.priv
Interface = rp0 ##Nombre de la interfaz, cada quien es libre de darle un nombre
Creamos el archivo /etc/tinc/vpnraspberry/host/raspberry:

Subnet = 10.0.0.1/32
Address = 1.2.3.4 ## en esta linea ira la ip publica.

Generamos las llaves para el nodo:  sudo tincd -n vpnraspberry -K
Generating 1024 bits keys:
..............++++++ p
..............++++++ q
Done.
Please enter a file to save private RSA key to [/etc/tinc/vpnraspberry/rsa_key.priv]:
Please enter a file to save public RSA key to [/etc/tinc/raspberry/hosts/raspberry]:
Appending key to existing contents.
Make sure only one key is stored in the file.

Configuramos la interfaz rp0, en este caso crearemos un script en "/etc/tinc/vpnraspberry/tinc-up", que usara Tinc para arrancar la interfaz
#!/bin/sh
ifconfig rp0 10.0.0.1 netmask 255.255.0.0

Damos permisos de ejecución
 # chmod +x /etc/tinc/tinc-up
Por ultimo,, creamos un script, que dará de baja la interfaz usada cuando Tinc no este activo, Al igual como el script anterior, le damos permisos de ejecución
#!/bin/sh
ifconfig rp0 down
!!Listo!!  La configuración de tinc en nuestra raspberry ya esta terminada, ahora para arrancar tinc escribimos en nuestra consola
sudo tincd -D -d -n vpnraspberry

Si todo esta a la perfección tinc nos mostrara :


Introducción Vpn Full Mesh con Tinc y configuración en Raspberry Pi
Para que otros nodos tinc  se conecten a nuestro nodo tenemos que compartirle nuestro archivo raspberry alojado en /etc/tinc/vpnraspberry/hosts/ y alojarlo en el directorio hosts de dicho nodo, este Archivo contiene la llave generada anteriormente, adicionalmente ese nodo debe ingresar en el tinc.conf la linea connectTo = raspberry, esa linea especifica que se conectada al nodo raspberry. Para permitir la conexión de ese nodo, debemos tener en nuestro directorio hosts, El archivo donde se encuentra la llave del nodo que desea conectarse con nuestro nodo.
Mas adelante explicare como lograr que otros nodos se conecten a la raspberry logrando la creación de una mesh, también hablare un poco sobre la unión de tinc, con openvpn, pptd y otras herramientas.


Volver a la Portada de Logo Paperblog