los Red Yggdrasil es una red de superposición de IPv6 que tiene como objetivo crear una red de malla descentralizada y encriptada. Lo hace tratando las redes como hojas en un árbol binario. Al ser una red superpuesta, Yggdrasil también sirve como una red privada virtual (VPN) que permite a sus usuarios interactuar de forma segura entre sí.
Además, Yggdrasil es gratuito, relativamente fácil de configurar y también está disponible para una amplia gama de plataformas. Esto convierte a Yggdrasil en una sólida alternativa para las personas interesadas en tener una conexión segura y privada con otras personas.
¿Qué son las redes de malla e Yggdrasil?
Yggdrasil logra una red de malla al representar una red como un árbol de nodos interconectados. En eso, estos nodos pueden actuar como relevos a otros nodos. Esto convierte a Yggdrasil en una verdadera red de malla.
Además, la estructura de la red permite que Yggdrasil encuentre fácilmente la máquina o el sitio web que desea visitar. A su vez, esto le permite interactuar con otros usuarios sin necesidad de un servidor central para enrutar el tráfico por usted.
¿Por qué usar Yggdrasil?
El principal punto de venta de Yggdrasil es que cambia la forma en que se enrutan los datos a través de Internet. Lo logra asumiendo algunas cosas sobre el estado predeterminado de dicha red:
- Todos los nodos están conectados al menos a otro nodo.
- Cada nodo puede transmitir datos de forma transparente al otro nodo.
- Cada nodo puede transmitir los nodos conectados a él.
Estos supuestos crean una estructura que es a la vez rígida y predecible, pero también muy flexible. Por ejemplo, puede hacer que su máquina sea de acceso público conectándose a un solo nodo público. Este nodo público está, entonces, conectado a otros nodos. Desde allí, otros usuarios pueden emparejarse con ese nodo para conectarse con usted.
No solo eso, Yggdrasil también le permite crear una subred de máquinas locales. Como tal, esto es muy útil si desea crear una VPN.
Cómo instalar Yggdrasil
Como se discutió anteriormente, Yggdrasil está disponible en muchas plataformas y sistemas operativos. Esto incluye la mayoría de las distribuciones de Linux.
Sin embargo, Yggdrasil no siempre está en los repositorios predeterminados. Como tal, algunas distribuciones requieren que incluya sus fuentes antes de instalarlo.
Instalación de Yggdrasil en Debian y Ubuntu
Por ejemplo, si desea instalar Yggdrasil en Debian y Ubuntu, primero debe agregar su clave GPG oficial a apt. Para hacer eso, ejecute los siguientes comandos:
gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
A partir de ahí, debe agregar el repositorio a la lista de fuentes que apt busca en sus paquetes:
echo 'deb https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
Una vez hecho esto, actualice apt e instale el programa. Hágalo ejecutando esta única línea de código:
sudo apt update && sudo apt install yggdrasil
Instalando Yggdrasil en Fedora
A diferencia de Debian y Ubuntu, el proceso de instalación de Yggdrasil en Fedora es simple, ya que forma parte de los «Paquetes comunitarios» de Fedora.
Como tal, instalar el programa es tan simple como ejecutar los comandos:
sudo dnf copr enable rany/yggdrasil sudo dnf install yggdrasil
Instalar Yggdrasil en Arch Linux
Por último, instalar Yggdrasil en Arch Linux también es extremadamente simple. Al igual que Fedora, ya está incluido en el repositorio de fuentes de la comunidad de Arch.
Como tal, puede instalar el programa a través de pacman:
sudo pacman -Syu yggdrasil
Configuración de su instalación
Una vez hecho esto, configurar Yggdrasil para conectarse a un nodo es muy simple, ya que solo necesita editar «/etc/yggdrasil.conf» para configurar el comportamiento del programa. Para acceder a él, utilice nano:
sudo nano -w /etc/yggdrasil.conf
Yggdrasil creará este archivo después de la instalación. Sin embargo, si no es así, puede ejecutar este comando para crear un nuevo archivo de configuración:
su --command="yggdrasil -genconf > /etc/yggdrasil.conf"
Conexión a un nodo público
Como discutimos anteriormente, hay dos formas de usar el programa:
- Conéctese a un nodo público para que su máquina sea reconocible.
- Conecte un grupo de máquinas juntas en una red privada virtual.
Para el primero, agregue la dirección de un nodo público a su archivo «/etc/yggdrasil.conf» editando el Peers:
bloque en ese archivo de configuración.
Esta es la sección de la configuración que determina a qué nodos desea conectarse. Como tal, las máquinas enumeradas aquí deben ser visibles y conectables públicamente desde Internet.
Con eso en mente, considere el siguiente ejemplo:
{ # List of connection strings for outbound peer connections in URI format, # e.g. tls://a.b.c.d:e or socks://a.b.c.d:e/f.g.h.i:j. These connections # will obey the operating system routing table, therefore you should # use this section when you may connect via different interfaces. Peers: [ tls://address.domain:port tcp://1.2.3.4:port socks://[aaaa:...:ffff]/[1111:...:9999] ] [...]
El bloque de pares es una lista básica de todos los nodos a los que desea conectarse.
Puede establecer una conexión encriptada usando TLS y SOCKS o una sin encriptar usando TCP. Este último es útil para conectar dispositivos integrados pequeños que no admiten TLS pero tienen conectividad de red básica.
Con eso, puede conectarse a la red pública de Yggdrasil copiando algunos de los enlaces de nodo proporcionada por su comunidad.
Una vez hecho esto, puede habilitar el programa ejecutando los siguientes comandos:
sudo systemctl enable yggdrasil sudo systemctl start yggdrasil
Puede comprobar si se ha conectado correctamente a la red visitando esta página web.
Crear su propia red privada
Por otro lado, crear una red privada puede ser un poco complicado, pero sigue siendo relativamente simple. Para crear una red Yggdrasil privada, necesitará algunas cosas:
- Una máquina reconocible públicamente. Puede ser una máquina local que no esté bloqueada por CG-NAT o un servidor privado virtual económico.
- Varias máquinas ubicadas en diferentes redes que no pueden comunicarse directamente entre sí.
Configuración de su nodo público personal
Para crear una red Yggdrasil privada, primero debe permitir que su máquina pública se conecte a otros nodos. Para ello, modifique el Listen:
bloque de la máquina pública «/etc/yggdrasil.conf».
Por ejemplo, un nodo configurado para tomar conexiones públicas podría verse así:
[...] # Listen addresses for incoming connections. You will need to add # listeners in order to accept incoming peerings from non-local nodes. # Multicast peer discovery will work regardless of any listeners set # here. Each listener should be specified in URI format as above, e.g. # tls://0.0.0.0:0 or tls://[::]:0 to listen on all interfaces. Listen: [ tls://your.ipv4.address.here:12345 tcp://[your:ipv6:address:here]:12345 ] [...]
Hemos configurado el nodo para que tome cualquier conexión entrante en el puerto 12345 desde IPv4 e IPv6. Además, la conexión IPv4 está envuelta en TLS, mientras que IPv6 está en TCP sin cifrar.
Desde aquí, habilite e inicie el servicio Yggdrasil para aplicar su configuración. Después de eso, conectarse a este nodo sería similar a conectarse a un nodo público.
Descubrimiento de direcciones y restricción de acceso
De forma predeterminada, su nodo Yggdrasil recién creado aceptará cualquier conexión entrante, siempre que esté utilizando el puerto correcto. Para crear una VPN verdaderamente privada para sus máquinas, debe agregarlas a una lista blanca de clave pública.
Un nodo de Yggdrasil funciona transmitiendo una clave pública única que Yggdrasil generó cuando lo instaló por primera vez. Esta clave se utiliza para protegerlo dentro de una red y crear su dirección.
Puede verificar su dirección de Yggdrasil ejecutando este comando:
sudo yggdrasilctl getself
Esto mostrará una dirección IPv6 que comienza con «20x:…» Se puede usar para conectarse directamente a esa máquina a través de Yggdrasil.
Además, el getself
El comando también mostrará la clave pública de una máquina. Esto es lo que necesita para crear una lista de máquinas permitidas en su nodo público.
Configuración de su nodo personal para restringir el acceso
Para restringir el acceso a su nodo Yggdrasil, debe editar el AllowedPublicKeys:
block en el “/etc/yggdrasil.conf” de su nodo público. Simplemente agregue todas las claves públicas que desea que acepte este nodo.
Por ejemplo, esta es una configuración para un nodo que solo acepta tres claves públicas:
# List of peer public keys to allow incoming peering connections # from. If left empty/undefined then all connections will be allowed # by default. This does not affect outgoing peerings, nor does it # affect link-local peers discovered via multicast. AllowedPublicKeys: [ "publickey1" "publickey2" "publickey3" ]
Una vez hecho esto, puede aplicar su configuración reiniciando el servicio Yggdrasil:
sudo systemctl restart yggdrasil
¡Felicidades! Ahora tiene una comprensión básica de cómo funciona la red Yggdrasil, así como una idea básica de cómo conectarse y configurar una red privada.
Si toda esta charla le genera curiosidad acerca de cómo funciona Internet, puede consultar este artículo sobre la captura de paquetes TCP con tcpdump.
Preguntas frecuentes
1. He agregado la dirección de Yggdrasil de mi amigo a mi archivo de configuración, pero no puedo conectarme con él. ¿Qué estoy haciendo mal?
Esto puede deberse a varias cosas. Sin embargo, las causas más comunes de este problema son:
- Ambas máquinas están detrás de un NAT y, por lo tanto, no pueden establecer una conexión directa entre sí.
- los
Peers:
bloquear yListen:
bloque en “/etc/yggdrasil.conf” están configurados incorrectamente.
Para la primera causa, debe asegurarse de que al menos una máquina sea accesible públicamente. También debe asegurarse de que el puerto que está utilizando esté correctamente reenviado y se pueda ver desde fuera de su red local.
Para la segunda causa, asegúrese de que el Peers:
y Listen:
Los bloques contienen el dirección IPv4 o IPv6 real de la máquina peering y no su dirección de Yggdrasil.
2. ¿Cómo puedo saber si mis máquinas se están emparejando correctamente entre sí?
Puede verificar fácilmente si sus máquinas se emparejan correctamente entre sí ejecutando este comando:
sudo yggdrasilctl getpeers
Esto le mostrará todos los pares actualmente conectados, así como su posición relativa en el árbol de la red Yggdrasil.
3. ¿Es posible crear una clave y una dirección de Yggdrasil sólidas?
¡Sí! Puedes hacer esto usando un minero de direcciones. Este es un programa simple que calculará en fuerza bruta un par de claves públicas que tiene una cierta cantidad de ceros al frente.
El programa más común para hacer esto es Generador simple de Yggdrasil (SYG) con la última versión escrita en C++.
Credito de imagen: Unsplash