Categorías
Hacking Networking Services - Software

Preservando el Anonimato y Extendiendo su Uso – Administración de I2P, aplicaciones y servicios incluidos – Parte XXIV

Una vez que se ha instalado correctamente I2P, la herramienta principal para administrar todas las conexiones, túneles, aplicaciones, proxies, servicios, etc. Es la interfaz administrativa conocida como “I2P Router Console” esta consola de administración es una interfaz web que puede ser accedida desde cualquier navegador web, normalmente se inicia en el puerto “7657” y desde allí se cuenta con un menú bastante completo con todas las opciones disponibles en I2P, las cuales son:

  • HELP & FAQ: Como su nombre lo indica, se trata de información sobre el uso de la herramienta y FAQ’s.

  • I2P SERVICES: Configuración de los clientes Java disponibles para I2P, los cuales pueden ser arrancados, editados y borrados

  • I2P INTERNALS: Todas las opciones relacionadas con el funcionamiento interno de I2P, navegando por estas opciones se puede comprender mejor los conceptos teóricos de I2P explicados en las entradas anteriores, ya que desde aquí se incluye configuración de túneles, Peers, Perfiles, NetDB, Logs, Estadísticas y una de las aplicaciones de administración más importantes I2PTunnel.

  • GENERAL: En esta opción se incluye información básica muy importante sobre el nodo I2P en ejecución (máquina local) indicando la identidad local (hash almacenado en NetDB), versión de I2P y tiempo en ejecución.

  • NETWORK: Indica el estado general de la red y si existe algún tipo de problema en términos de conectividad, como por ejemplo un Firewall bloqueando las conexiones en determinados puertos.

  • PEERS: El numero total de routers conocidos, activos integrados, rápidos y de alta capacidad a los que tiene acceso una instancia de I2P, corresponden a routers que se encuentran registrados en la NetDB de I2P, no obstante no corresponden con el número total de routers que pueden estar registrados en NetDB ya que este valor depende de la banda ancha total, banda ancha compartida y el trafico localmente generado

  • BANDWIDTH IN/OUT: Indica los limites en bytes por segundo para el ancho de banda entrante y saliente, estos valores pueden ser modificados desde esta opción.

  • TUNNELS: Se enseñan todos los túneles de Inbound y Outbound, así como también los siguiente tipos de usos de dichos túneles:

    • Exploratory: Túneles construidos por la instancia de I2P usados para probar túneles existentes y construcción de nuevos.

    • Client: Túneles construidos por el router el uso de cada cliente de la instancia I2P.

    • Participating: Número túneles en los cuales la instancia en ejecución de I2P actúa como router “paticipant”. Este valor puede variar dependiendo de los valores de banda ancha y el trafico localmente generado. En la opción de BandWidth In/Out se puede configurar el valor del porcentaje compartido, así como también se puede controlar por medio de las opciones avanzadas de configuración de I2P, en concreto utilizando la opción: router.maxParticipatingTunnels=nnn

    • Share Ratio: Se trata de un valor porcentual que es el resultado de dividir el número de túneles en los cuales se esta participando (el valor Participating mencionado antes) sobre el número de todos los túneles Client y los túneles Exploratory. Si este valor es superior a 1.00 significa que se esta contribuyendo a más túneles en la red de los que se están usando.
  • CONGESTION: Enseña algunas indicaciones básicas del router para determinar si esta sobrecargado, estas indicaciones son:

    • Job Lag: Indica por cuanto tiempo las tareas en ejecución se encuentran en estado de espera. Este valor como norma general debe ser 0, si se aprecia que este valor esta constantemente por encima de 500ms, el ordenador es lento o existe un problema con el router.

    • Message Delay: Indica cuanto tiempo permanece un mensaje en el túnel de salida antes de ser enviado al túnel de entrada del destino, normalmente este valor se debe de encontrar por debajo de los 1000ms, si este valor se encuentra constantemente por encima, el ordenador es muy lento o indica que se deben realizar ajustes sobre los limites de banda ancha, esto probablemente ocurre debido a que alguno de los clientes de I2P esta enviando demasiados datos (utilizando una cantidad de banda ancha considerable) esta clase de conflictos normalmente se asocian con algun cliente de BitTorrent

    • Tunnel Lag: Indica el tiempo de ida y vuelta que para la prueba de túneles de exploración y clientes, consiste en el envío de un mensaje de un cliente a un túnel de exploración y viceversa, esta prueba debe dar como resultado un valor igual o menor a 5 segundos, sino el ordenador es muy lento, se deben ajustar los valores de banda ancha o existen problemas de red.

    • Handle Backlog: Este es el número de peticiones pendientes de otros routers para utilizar la instancia de I2P como nodo “participant” en sus túneles, este valor debe ser cercano a 0, pero si se encuentra constantemente alto, el ordenador es muy lento o es necesario ajustar los limites de banda ancha compartida.

  • LOCAL DESTINATION: Desde esta opción se puede apreciar el estado de los servicios y clientes en la instancia local de I2P, enseñando mensajes de estado, túneles servidores (InBound) y túneles cliente (OutBound)

Cuando se instala I2P, se instala también un servidor de aplicaciones J2EE llamado Jetty, este servidor de aplicaciones es el que realmente esta sirviendo la interfaz de administración anteriormente explicada, en este servidor de aplicaciones también es posible alojar contenido personalizado, como páginas estáticas/dinámicas, imágenes, recursos, etc. Cualquier recurso disponible en una aplicación web normal puede ser incluido aquí. Además también es posible incluir páginas JSP y Servlets, dado que el servidor lo soporta íntegramente, lo que permite crear sitios web con soporte a Java y la especificación de Servlet API, estos sitios web son llamados “eepsites” que estarán disponibles en la red de I2P para que sus clientes puedan acceder a dicho contenido sin exponer el anonimato del servicio. Esta es una de las características más interesantes en I2P, sin embargo no es la única, a continuación se procede a indicar los clientes y servicios disponibles en I2P.

CLIENTES EN I2P

Toda la infraestructura de I2P carecería completamente de sentido si no se implementara sobre ella servicios a nivel de aplicación que fueran útiles para los usuarios finales, en I2P existen una serie de servicios que actúan como clientes en una instancia determinada, todos estos servicios pueden ser administrados desde la interfaz web de administración en la opción de LOCAL DESTINATION. Estos “destinos locales” proporcionan conexiones en diferentes puertos para la red I2P, habilitando el uso de correo electrónico, bittorrents, web proxy, eepsites, etc. Para acceder a dichos servicios, la base de datos de I2P (NetDB) proporciona todos los “destinos” conocidos en la red. Los servicios y clientes locales incluidos por defecto en una instalación de I2P son los siguientes:

Streaming Library

No se trata exactamente de un cliente construido sobre la capa de aplicación, es solamente una implementación de una capa TCP anónima y segura, es útil principalmente para la programación y transmisión de mensajes teniendo en cuenta el costo relativamente alto de los mensajes que se intercambian en un proceso de comunicación bidireccional, de esta forma, esta librería permite que cada mensaje individual contenga toda la información que sea posible para que el receptor pueda hacer uso de ella. Por ejemplo una petición HTTP puede finalizar rápidamente en un solo viaje (ida y vuelta) por medio de la Streaming Library, donde una transacción HTTP es iniciada enviando un mensaje incluyendo los paquetes SYN, FIN y el payload correspondiente y posteriormente, la replica contendrá un mensaje incluyendo los mismos SYN, FIN recibidos, pero además incluyendo un paquete ACK con su correspondiente payload de respuesta, de esta forma el mensaje cuando es recibido por el emisor (el proxy HTTP en este caso) el navegador web puede parsear dicha respuesta de forma inmediata. Sin el uso de esta librería, el número de mensajes es directamente proporcional al número de paquetes y payloads asociados a las peticiones y a las respuestas, lo que desde luego, puede llevar a un alto consumo de recursos y tiempo.

Esta librería construida en I2P es algo muy similar a una abstracción de TCP con sus correspondientes algoritmos de control de colisión/congestión y paquetes generales como SYN/ACK/FIN/RST, etc.

I2PTunnel

Se trata de una de las aplicaciones más conocidas y versátiles en el mundo de I2P ya que permite habilitar un proxy genérico para entrar y salir de la red I2P, sin embargo su aplicación practica no termina ahí, ya que soporta cuatro modos distintos de ejecución:

  1. Proxy para recibir conexiones TCP entrantes y redireccionarlas a un destino I2P determinado.
  2. “eepsite” el cual actúa como proxy HTTP y redirecciona las peticiones a un destino apropiado, después de consultar el servicio “addressbook” para la resolución de nombres de dominio (se trata de una implementación distinta de DNS utilizada en I2P para resolución de consultas sobre nombres de dominio en I2P, esto se detallará más adelante).
  3. Proxy para recibir conexiones Streaming I2P (utilizando Streaming Library) en un destino determinado y redireccionarlas a un destino TCP conformado por host+puerto.
  4. Como “HttpServer”, actuando como una capa sobre el servidor de aplicaciones la cual se encarga de parsear las peticiones y las respuestas HTTP para garantizar una operación segura

A efectos prácticos todas estas características permiten que los usuarios puedan ofrecer y consumir servicios en la red de I2P; por ejemplo un usuario puede navegar de forma anónima, enviando y recibiendo peticiones a sitios web dentro de la red I2P utilizando I2PTunnel en modo “client” es decir utilizándolo como proxy HTTP, en el otro extremo de la comunicación se encontrará el servidor web anónimo los cuales finalizan con “.i2p” por ejemplo, el sitio web oficial de I2P dentro de la red es www.i2p2.i2p el cual solamente es “resuelto” si se encuentra conectado a la red de I2P, este “eepsite” es un servicio de I2PTunnel actuando como “server”. Su extensión no se limita a servidores web, es posible crear este tipo de conexiones utilizando I2PTunnel como cliente y servidor para envío de correos electrónicos, chat IRC, desarrollo de software con CVS.

Como puede apreciarse I2PTunnel es una de las principales herramientas en la capa de aplicación que será utilizada por clientes y servidores para proveer acceso a recursos remotos de forma anónima.

Syndie

Se trata de una aplicación que permite creación, agregación y publicación de contenidos con capacidades de Blogging completamente integrada en I2P de tal forma que permite a sus usuarios compartir información y leer posts que resulten de interés para el usuario, soportada por la seguridad y el anonimato que ofrece I2P. El enfoque de Syndie no se basa en construir una red distribución de contenidos independiente, sino que se ejecute sobre las redes existentes, transmitiendo contenido por medio de eepsites, TOR hidden Services, FreeNet FreeSites (próximamente, más información sobre FreeNet), sitios web normales, grupos de noticias, listas de email, RSS Feeds, etc.

Clientes Bittorrent

Existen algunos clientes para Torrents en I2P, algunos de estos son: I2PSnark, PyBit y Robert, algunas de estas herramientas vienen incluidas en el paquete de instalación, otras se instalan de forma independiente, pero todas tienen la característica de estar integradas con la red de I2P permitiendo compartir y transferir ficheros entre distintos destinos de red de forma anónima.

En el caso de PyBit y Robert, es necesario instalar de forma independiente el software e instalarlo, para ello es necesario dirigirse a http://pebcache.i2p/ para PyBit y a http://bob.i2p/Robert.html Mientras que I2PSnark viene incluido en la distribución de I2P.

Clientes Email, File-Sharing y Mensajería.

En el campo de la transferencia de archivos, mensajería y envío de correos electrónicos existen algunas cuantas aplicaciones que pueden ser útiles.

Clientes de correo electrónico: I2PMail, SusiMail, I2P-Bote. En el caso de I2PMail se encuentra incluida en la distribución de I2P, ofreciendo servicio de email interno y externo usando POP3 y SMTP respectivamente utilizando I2PTunnel, permitiendo a los usuarios utilizar cualquier cliente de correo electrónico para enviar y recibir mensajes, contiene muchas características que pueden resultar de interés para el usuario, las cuales se encuentran íntegramente explicadas en el eepsite http://hq.postman.i2p

En el caso de SusiMail, el objetivo principal es mejorar el anonimato y la seguridad a la hora de enviar y recibir mensajes de correo electrónico, dado que otras herramientas como I2PMail en muchas ocasiones “ofrecen” información identificativa que puede dejar al descubierto a un usuario.

Finalmente se encuentra I2P-Bote, la cual es una aplicación recientemente desarrollada que es más robusta y segura que sus antecesoras, implementando un sistema de email seguro con cifrado end-to-end suministrando una interfaz web y un “libro” de direcciones, esta herramienta debe ser instalada como puglin en I2P.

Transferencia de Archivos: Además de los clientes para BitTorrent indicados en anteriores lineas, existen otras herramientas construidas sobre I2P para compartir y transferir ficheros de forma anónima por medio de I2P tales como iMule, la cual esta construida en las bases de aMule para soportar transferencia y file-sharing de archivos ejecutándose completamente dentro de la red I2P.

El objetivo de esta entrada ha sido explicar el funcionamiento de I2P en la capa de aplicación, dado que en entradas anteriores se ha hecho énfasis en el funcionamiento de I2P en la capa de transporte, en las siguientes publicaciones se entrará en detalle sobre el uso de las aplicaciones que se han descrito en esta entrada.

Por Daniel Echeverri

Formador e investigador en temas relacionados con la seguridad informática y hacking. Es el autor del blog thehackerway.com el cual ha sido el ganador del European Cybersecurity Blogger Awards 2021 en la categoría de “Best Technical Content“.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *