PAGE IN ENGLISH
-
Es una plataforma P2P de intercambio de información de forma anónima entre nodos basado en los algoritmos de comunicación que podríamos denominar: "Orden y Caos" los cuales se dan en organizaciones sociales masivas como las marabuntas de hormigas.
-
El proyecto nace en el seno de la Universidad de Zaragoza , desarrollado y promovido por los alumnos de la facultad de Ingeniería Informática, aunque desde el primer momento grupos de desarrollo y usuarios de otros muchos lugares se mostraron interesados debido a la importancia y a la finalidad del proyecto.
-
Finalidad: Asegurar la libertad de expresión y la privacidad de los usuarios de cada una de las Redes que conforman el entramado de Internet.
-
EVITAR LA CENSURA
Permite la comunicación entre personas sin el uso de servidores centrales, lo que la hace inmune a los ataques de censura, los cuales a día de hoy son practicados por multitud de gobiernos y corporaciones controladoras de las comunicaciones.
-
ANONIMATO
Permite la comunicación anónima, por lo que podemos conocer los contenidos de los mensajes sin conocer el origen de los mismos.
-
MOTIVACIÓN Y DESARROLLO
Marabunta es el primer proyecto de este tipo desarrollado en España, como ya hemos comentado se fundó en Aragón, pero Marabunta es un proyecto pensado para ser usado en todo el mundo, especialmente en los países donde la gente se ve privada de su derecho a la libertad de expresión, debido a la fragilidad de los modelos de red centralizados.
Marabunta rompe con todo eso y propone una nueva forma de comunicación: anónima, descentralizada , sin servidores y que no es sensible a la censura.
-
CARACTERÍSTICAS
-
Su primer servicio es el intercambio de mensajes de texto. Podría entenderse como una plataforma de distribución de "telegramas" , donde cada máquina que forma parte de la red participa como Cliente y como Servidor.
-
Como Cliente:
Se encarga de enviar sus mensajes, buscar nodos activos por la red ...
-
Como Servidor:
Se ecarga de enrutar las peticiones del resto de los nodos "hermanos", tanto para el envío de mensajes como a la hora de ayudar a otros nodos a aumentar el número de nodos conocidos, haciendo "forwarding" de peticiones ...
-
Tiene 4 Listas de Distribución de Mensajes, de forma que solo recivimos los mensajes enviados a las listas que nos interesen
-
General, Tecnología , Filosofía ,Política
-
Permite filtrar contenido de forma que solo se muestren los mensajes que contienen ciertos patrones, los cuales estamos buscando.
Esto es especialmente útil cuando buscamos un tipo de información específica ya que Marabunta se encarga de seleccionar solo los mensajes potencialmente interesantes.
-
Conexiones:
Todo el tráfico genrado es UDP/IP lo que hace que al no establecerse conexión entre los nodos el tráfico de la red sea más fluido y se aprovechan las capacidades de redundancia operacional de cada uno de los nodos. Además el tráfico UDP incrementa el anonimato en la red dado que no es necesario validar la existencia del host origen a la hora de la recepción de un datagrama.
-
Marabunta está programado sobre las librerías QT4, . debido a que estas permiten la compilación de los programas en los 3 entornos principales: GNU Linux, Mac, Windows
-
El código fuente está liberado bajo la Licencia GNU/GPL.
-
LISTA DE CORREO:
Todo el desarrollo de Marabunta, usabilidad, comunidad de usuarios ... se comunica a través de una lista de correo pública. Si estás interesad@ en participar en el proyecto como usuario , desarrollador ... o simplemente te interesan los temas relacionados sobre Redes Libres o la liberta de expresión en la red, puedes inscribirte en la Lista de Correo:
-
DOCUMENTACIÓN:
-
Fin y Funcionamiento:
David Gascón
david@laotracara.com
Esta presentación intenta exponer de forma general la finalidad de la aplicación así como las líneas principales de funcionamiento del protocolo de distribución de las conexiones por la red y el envío de mensajes.

-- Descargar PDF --

-
Redes Libres:
Si quereis información más a fondo sobre como funcionan los modelos de Redes Libes podeis echar un ojo a algunos de los documentos explicativos que utilizamos para el estudio de las plataformas existentes antes de realizar la implementación del protocolo de Marabunta.

-- Perspectiva General de las Redes Libres --
-- Libertad en la Red (Artículo Publicado en Linux Magazine) --
-
DESCARGAR:

--
Código Fuente --
--
Paquete Debian (.deb) --
--
Binarios GNU Linux (Arch i386)
--
--
Binarios Windows
--
--
Repositorio Subversion
--
-
INSTALACIÓN, COMPILACIÓN, EJECUCIÓN ...:
-
Consideraciones Previas:
Port-Forwarding en NATS
Las conexiones que se realizan son todas mediante el protocolo UDP/IP, por lo que los nodos que se encuentren detrás de un NAT con una IP privada (normalmente de la forma 192.168.254.x, 192.168.0.x, ...), han de establecer una ruta de "port-forwarding", de forma que el router sepa a que puerto de que nodo de los de la Red interna ha de rederigir el datagrama que le llega. Para saber cual es la ip que estás usando puedes ir a la consola del sistema y teclear: #ifconfig en caso de GNU/Linux o #ipconfig en caso de que uses un sistema Windows. Para saber si tu IP es interna o externa simplemente ve a Marabunta y presiona sobre el botón "¿ Cuál es mi IP ?", si coincide con la que has extraido de la consola entonces puedes trabajar sin problemas siempre que no tengas activado algún firewall especial en el router que corte las conexiones UDP/IP entrantes.
En caso de que sean distintas tienes que añadir unas reglas de Port Forwarding en el router.

Estas reglas se quedan memorizadas en el router. Necesitamos especificar una ruta de ida para cada una de las conexiones que lleguen de forma que el router sepa donde redirigirlas. Si quremos que el nodo 192.168.254.1 use Marabunta en el puerto 6666 lo que hacemos es añadir una regla como la que podemos ver en la imagen siguiente. Lo que decimos es : todo lo que llegue a la IP pública 155.210.229.244 por el puerto UDP/6666 lo rediriges a la IP interna 192.168.254.1 al puerto UDP/6666. De esta forma podremos recibir conexiones entrantes desde la Red Marabunta.
Para configurar vuestro modelo de router echar un ojo a alguna de estas webs: ADSLZONE.NET (castellano), PORTFORWARD.COM (inglés). Si no lo encuentras puedes buscar en Google con los parámetros:

Siguiendo con el ejemplo propuesto hemos estabecido 2 rutas de Port Forwarding de forma que cada uno de los nodos "de la casa" puedan ejecutar Marabunta. En los ejemplos vemos como una hormiga lanza peticiones que son redirigidas a los diferentes nodos internos de la red.


-
Marabunta en Windows:
Bájate la aplicación desde aquí: http://marabunta.laotracara.com/descargas/windoze
Descomprime los ficheros, mételos todos juntos en la misma carpeta, y ... listo! ya puedes ejecuta "marabunta.exe" .
No obstante si estás interesado en el desarrollo de Marabunta bajo esta plataforma puedes bajarte el código modificado para su desarrollo: http://marabunta.laotracara.com/descargas/windoze/src
Para la compilación del entorno QT4 puedes leerte este documento:
Autor: Pablo Urcola -- killims@gmail.com --

-- Descargar PDF --
-
DEBIAN y UBUNTU


Puedes descargar tanto el paquete Debian como el binario para i386 desde aquí: http://marabunta.laotracara.com/descargas
Para su ejecución necesitas las liberías del entorno QT4:
#apt-get install libqt4-core libqt4-gui
-
MANDRIVA Y FEDORA


s/debian
Puedes descargar el binario para i386 desde aquí: http://marabunta.laotracara.com/descargas
Para su ejecución necesitas las liberías del entorno QT4:
#urpmi libqtcore4 libqtgui4
Una vez instaladas en el sistema (es posible) que tengas que crear ciertos enlaces simbólicos para que la aplicación encuentre las librerías QT4:
#ln -s /usr/lib/qt4/lib/libQtGui.so.4 /usr/lib/.
#ln -s /usr/lib/qt4/lib/libQtNetwork.so.4 /usr/lib/.
#ln -s /usr/lib/qt4/lib/libQtCore.so.4 /usr/lib/.
-
Compilando Marabunta en GNU Linux:
Descompresión de los Ficheros:
#tar -xzvf marabunta.xxx.tar.gz
Lo primero que hemos de tener en cuenta es que hay que tener instaladas las librerías QT4. Si vamos a compilar hay que instalar la versión desarrollador (development), y si vamos a ejecutar los binarios o un paquete simplemente necesitaremos las librerías.
Para el caso de las mayoría de las distribuciones los paquetes de desarrollo son:
-
libqt4-core,
libqt4-designer,
libqt4-dev,
libqt4-gui,
libqt4-qt3support,
libqt4-core,
libqt4-debug
Para compilar simplemente seguimos el proceso habitual:
#./configure
#make
Y ejecutamos la aplicación:
#./marabunta
-
FUNCIONAMIENTO:
Han de tener permiso de escritura los siguientes ficheros:
-
marabunta.cfg (si no existe se crea la primera vez que arrancamos)
-
nidos.txt
-
nodos.txt
-
el que especifiqueis en las opciones para "log"
-
el que especifiqueis en las opciones para "guardar los "mensajes"
El primero de los ficheros tiene una ruta fijada en tiempo de compilación del programa.
Sin embargo el resto de ellos se guardarán en la carpeta que especifiqueis como "Directorio de Trabajo" en el apartado de "Opciones Generales".
En este mismo apartado podeis especificar otras opciones como que Idioma arrancar la aplicación (si quieres ayudar en la traducción de los controles estaremos encantados), o si quereis que se os avise mediante el uso de mensajes emergentes de la llegada de un "Nuevo Mensaje" a la aplicación o cuando se consigue un "Nuevo nodo hermano".
Al arrancar la aplicación tenemos que especificar cual es nuestra IP y puerto con las que queremos trabajar en marabunta; las insertaremos en la parte superior izquierda
AVISO: Conviene comprobar la versión del protocolo de la aplicación, pues una versión antigua podría ser incompatible con las nuevas haciendo la comunicación entre los nodos impracticable. Para ello hemos creado el botón ¿Versión Correcta?
De igual manera pero en la parte inferior izquierda añadiremos los distintos nodos que pensamos podrían estar activos dentro de la red.
Aquí tienes un vídeo con los pasos básicos para empezar a usar la aplicación:
Para poder conectar con nodos ya existentes en la red hay 3 métodos principalmente:
-
1. Conocer la IP y puerto de algún nodo de los ya conectados.(nos la pueden decir en un chat, en una lista de correo, en un foro, un amigo ...) Una vez conectemos con ese primer nodo , él mismo se encargará de "promocionarnos" por la red mediante la distribiución a sus hermanos de mensajes que dicen que necesitamos más hermanos para consolidarnos en la web. Podemos hacer este paso me diante la inserción de Nodos directamente en el cuadro de entrada inferior.
-
2. Cargar un fichero con multitud deNodos que sabemos en algún momento del pasado estuvieron en la red confiando que alguno de ellos esté ahora. Botón "Cargar Fichero".
-
3. Mediante la conexión a un servidor web donde muchos nodos van a publicitarse como "Nodos Activos en la Red". Botón "Descargar Nodos".
Si queremos que estos nodos se guarden para no tener que estar metiéndolos cada vez que arrancamos la aplicación podemos hacerlo mediante el botón "Guardar" situado en la parte inferior.
Una vez hemos insertado todos los nodos que pensamos que pueden estar en la red Iniciamos la Conexión.
Como podemos ver comenzamos a mandar mensajes de "búsqueda de hermanos" con la esperanza de que alguno de ellos nos conteste y podamos formar parte de la Red en la que está conectado.
Ahora que ya disponemos de hermanos en la red podemos indagar en busca de más hermanos, para asegurar nuestra conexión, mandar mesajes, recibir , enrutar ...
Es importante tener claro el concepto de que ahora somos cliente y servidor por lo que aunque no estemos mandando mensajes a la red tendremos que enrutar los mensajes que nos llegan a nuestros hermanos, por lo que en todo momento un mínimo ancho de banda es usado aún en ausencia de "operaciones aparentes".
En el Envío y recepción de Mensajes , podemos elegir las categorías sobre las cuales mandar y recibir mensajes.
Además una vez seleccionadas las categorías podemos aplicar filtrado de los mensajes de forma que sólo se muestren los que contengan un determinado patrón.
-
La gente que está detrás de todo esto:
-
MARABUNTA is released under the GNU/GPL License
--------------------------------
Copyright (C) 2005 David Gascón Cabrejas
Copyright (C) 2005 Daniel Larraz Hurtado
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Complete License: gplLicense.txt
--------------------------------