domingo, 12 de mayo de 2019

Túneles VPN sobre Hidden services en TOR con OnionCat

OnionCat es una herramienta cuya finalidad es la de crear túneles VPN sobre los hidden services en TOR. De esta forma, los usuarios podrán acceder de forma remota y anónima a distintos tipos de servicios sin conocer su dirección real. OnionCat es un adaptador VPN que implementa de forma nativa el protocolo IPv6 en la capa de red y se encarga de calcular y asignar direcciones IPv6 únicas a los endpoints correspondientes, que son los clientes y el hidden Service en cuestión.
Los hidden services de TOR utilizan direcciones “ *.onion” que solamente tienen un valor dentro de la red de TOR, la cual se encarga de localizar el servicio de forma correcta. La resolución de dichos servicios se realiza en TOR en la capa de transporte y estas direcciones tienen un espacio de dirección reservado de 80 bits; un valor muy superior al espacio disponible en las direcciones IPv4 tradicionales.
Por otro lado, el túnel VPN creado por OnionCat se crea en la capa de enlace dando lugar a un problema de discrepancia en el espacio en la capa tres y cuatro, dado que cada una utiliza un espacio distinto.
Este es el principal motivo por el cual se utiliza IPv6 ya que el espacio de direcciones es de 128 bits, espacio lo suficientemente amplio para realizar transformaciones de direcciones “*.onion” a IPv6 y viceversa. De esta forma si llega un paquete IPv6 por la interfaz del túnel VPN, OnionCat intentará extraer los primeros 80 bits de la dirección del destino y los traducirá a una URL “*.onion", posteriormente solicitará a TOR abrir un nuevo circuito virtual hacia el destino indicado en el paquete.

 

Instalación, configuración y uso de OnionCat

 

Antes de comenzar a configurar OnionCat, es necesario configurar el hidden service de TOR que será el endpoint de OnionCat, dicho Hidden Service apuntará al puerto donde se encontrará en ejecución OnionCat, que por defecto es el “8060”.
La configuración de dicho hidden service se debe establecer en el fichero torrc que se ha utilizado para arrancar el proceso de TOR.
HiddenServiceDir /home/adastra/hidden_service_onioncat/
HiddenServicePort 8060 127.0.0.1:8060
El directorio definido en la propiedad “HiddenServiceDir” debe existir en el sistema de archivos para que TOR arranque correctamente, además, como ocurre con cualquier hidden service definido en TOR, en dicho directorio se generaran dos ficheros que contienen el dominio “ *.onion” que podrá ser utilizado por cualquier cliente en la deep web de TOR para acceder al servidor y la clave privada que se ha generado para dicho servicio.
En el fichero “hostname” se encuentra el dominio “*.onion” designado y que será utilizado posteriormente por OnionCat.
>cat /home/adastra/hidden_service_onioncat/hostname
p52xdvajn4ozpswa.onion
Se debe descargar la última versión de la herramienta que se encuentra disponible en el siguiente enlace: https://www.onioncat.org/download/ y el procedimiento de compilación e instalación, consiste simplemente en ejecutar los siguientes comandos.
. / configure
make
make install
Con los comandos anteriores, OnionCat quedará instalado en el sistema. Si solamente se ejecutan los dos primeros comandos, el fichero ejecutable será generado en el directorio “<ONIONCAT_ INSTALL>/src". Las opciones disponibles en OnionCat se pueden apreciar al ejecutar el comando ocat.
Además de las opciones disponibles que funcionan para TOR, también es posible utilizar la herramienta en modo Garlicat y de esta forma, OnionCat utilizará la red I2P en lugar de TOR. La opción “-I" es la encargada de cambiar de TOR a I2P.
El dominio “*.onion” consultado anteriormente, puede ser utilizado para generar el endpoint con una dirección IPv6 por medio de OnionCat.
/opt/onioncat/src# ./ocat -i v53xdvxjn4ozpswn.onion
fd87:d87e:eb43:af77:71d6:e96f:ld97:cacd
Posteriormente se puede ejecutar OnionCat con la opción “-B” con el fin de iniciar el servicio en la máquina local. Como se ha mencionado anteriormente, se abrirá el puerto “8060”, pero es posible especificar cualquier otro puerto utilizando la opción “-s”. No obstante, el puerto que se utilice con la opción “-s” debe ser también indicado en el fichero de configuración de TOR en la definición del hidden Service.
Por otro lado, OnionCat por defecto intenta conectarse con el puerto “9050” en la máquina local para contactar con el proxy SOCKS de TOR, no obstante, en las versiones más recientes de TOR, el proxy SOCKS arranca en el puerto “9150”, con lo cual es necesario cambiar dicho valor en el fichero de configuración “torrc” o utilizar la opción “-t” de OnionCat para modificar los detalles de conexión con el proxy SOCKS de TOR.
/opt/onioncat/src#sudo ./ocat -B v53xdvxjn4ozpswn.onion -u adastra -t 127.0.0.1:9150
La ejecución del comando anterior ha dado como resultado la creación de una interfaz virtual TUN/ TAP con el nombre de “tun0”. Esta interfaz virtual será utilizada para la conexión con otros hidden services en la red de TOR. Por otro lado, este comando se debe ejecutar con privilegios de “root” para el establecimiento del túnel virtual y además, se debe especificar una cuenta con privilegios limitados para cambiar el usuario del proceso una vez que las operaciones administrativas han finalizado. Se trata de una medida que impide que el proceso se mantenga en ejecución con privilegios de “root” hasta su terminación.
Con los pasos anteriores, OnionCat se encuentra configurado y en ejecución. Para probar su funcionamiento es necesario realizar una conexión a un hidden service en la red de TOR que también utilice OnionCat.

Por Daniel Echeverri Montoya.

No hay comentarios.: