Hosting de ajo y cebolla: cómo generar un recurso web para que no se le quite el dominio





Descargo de responsabilidad: las herramientas descritas aquí son completamente legales. Es como un cuchillo: alguien corta el repollo en una ensalada, alguien lo usa para atacar. Por lo tanto, la publicación está dedicada exclusivamente a herramientas que pueden usarse tanto para buenos como para malos propósitos.



El DNS global es algo maravilloso que ha sobrevivido décadas. Pero tiene un problema fundamental: su dominio puede simplemente dividirse si de repente deciden que ha violado algo. O alguien con dinero y conexiones te guardará rencor. Todos recuerdan la historia del mismo torrents.ru. Si, por alguna razón, desea eliminar tales riesgos, puede buscar redes superpuestas que simplemente no tienen un regulador capaz de dividir un nombre de dominio. Por lo tanto, aumentaremos los recursos web onion e i2p.



Aros de cebolla



Empecemos por los clásicos. Creo que en Habré casi todo el mundo usaba Tor en forma de paquete de navegador Tor . Me ayudó mucho cuando, en el proceso de búsqueda de Telegram, de repente comenzaron a romper abruptamente la conectividad con los hosters más grandes en los lugares más inesperados. En este modo, Tor usa el cifrado clásico de cebolla, envolviendo datos capa por capa de tal manera que es imposible establecer el origen y el destino del paquete. Sin embargo, el punto final de la ruta sigue siendo Internet regular, donde terminamos a través de los nodos de Salida.



Esta solución tiene varios problemas:



  1. Exit- , , . , , , .
  2. tor , .


-



Por lo tanto, aumentaremos el recurso cebolla directamente dentro de la red, sin acceso a Internet regular. Por ejemplo, como un punto de entrada de respaldo adicional a su recurso. Supongamos que ya tiene un servidor web con contenido proporcionado por nginx. Para empezar, si no desea brillar en la Internet pública, no sea perezoso en ir a iptables y configurar un firewall. Debe tener bloqueado el acceso a su servidor web desde cualquier lugar excepto localhost. Como resultado, obtuvo un sitio accesible localmente en localhost : 8080 /. La fijación adicional de https será redundante aquí, ya que el transporte tor se encargará de esta tarea.



Expansión de TOR



Consideraré la instalación usando Ubuntu como ejemplo, pero no habrá diferencias fundamentales con otras distribuciones. Primero, definamos el repositorio. La documentación oficial no recomienda el uso de paquetes mantenidos por la propia distribución, ya que pueden contener vulnerabilidades críticas que ya han sido parcheadas por los desarrolladores. Además, los desarrolladores recomiendan utilizar el mecanismo de actualizaciones desatendidas para las actualizaciones automáticas a fin de garantizar su entrega oportuna.



Cree un archivo para un repositorio adicional:



# nano /etc/apt/sources.list.d/tor.list


Y agregue las direcciones necesarias:



deb https://deb.torproject.org/torproject.org bionic main
deb-src https://deb.torproject.org/torproject.org bionic main


Ahora debemos ocuparnos de la clave gpg, sin la cual el servidor razonablemente no confiará en los nuevos paquetes.



# curl https://deb.torproject.org/torproject.org A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
# gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -


Ahora puede instalar el paquete principal desde arriba y el llavero para actualizar automáticamente la firma.



# apt update
# apt install tor deb.torproject.org-keyring


Configurar el proxy



En / etc / tor / torrc, encontrará el archivo de configuración para el demonio. Después de actualizarlo, no olvide reiniciarlo.

Solo quiero advertir a los usuarios especialmente curiosos. ¡No habilite el modo de relé en su máquina doméstica! Especialmente en el modo de nodo de salida. Pueden llamar. En un VPS, tampoco configuraría el nodo como un relé, ya que esto creará una carga bastante significativa tanto en el procesador como en el tráfico. En un canal amplio, puede llegar fácilmente a 2-3 terabytes por mes.



Busque una sección en torrc que tenga este aspecto:



############### This section is just for location-hidden services ###


Aquí debe registrar su recurso web localhost. Más o menos así:



HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080


O puede usar sockets Unix:



HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 unix:/path/to/socket


Obtenemos la dirección



Eso es todo, ahora reiniciamos el demonio tor a través de systemctl y miramos HiddenServiceDir. Habrá varios archivos: la clave privada y su nombre de host de cebolla. Es un identificador aleatorio de 16 caracteres. Por ejemplo, gjobqjj7wyczbqie.onion es la dirección del recurso de búsqueda Candle. La dirección es completamente aleatoria, pero con una búsqueda lo suficientemente larga, puede generar un par legible por humanos a partir de la dirección y la clave privada. Por supuesto, no los 16 caracteres, se necesitarían miles de millones de años. Por ejemplo, el conocido catálogo de libros de Flibusta tiene un espejo flibustahezeous3.onion , y Facebook gastó muchos recursos para elegir el más eufónico de las opciones generadas: facebookcorewwwi.onion .



Eso es todo, después de un tiempo, se anunciará su recurso y estará disponible a nivel mundial. Tenga en cuenta que puede utilizar un proxy no solo para el protocolo http, sino también para cualquier otro.



Ajo



imagen

La segunda opción fue concebida como de naturaleza aún más paranoica. El proyecto i2p no se concibió originalmente como un medio para enviar tráfico a Internet normal y, por su arquitectura, es una red superpuesta completamente cerrada. Existen puertas separadas en ambas direcciones, pero esto es más bien una excepción. Y es potencialmente inseguro.



imagen

Logotipo rojo de referencia i2p e implementación magenta de i2pd



I2p tiene varias opciones para implementar nodos de enrutador de software. La implementación oficial está escrita en Java. Y simplemente devora monstruosamente todos los recursos disponibles, tanto en términos de RAM como de CPU. Sin embargo, es ella quien se considera la referencia y es auditada periódicamente. Le recomendaría que utilice la versión mucho más ligera, i2pd, escrita en C ++. Tiene sus propios matices que pueden hacer que algunas aplicaciones i2p fallen, pero en general es una gran implementación alternativa. El proyecto se está aserrando activamente en la actualidad.



Instala el demonio



La mejor parte es que los autores han proporcionado muchas opciones de implementación, incluidas Docker y Snap. Puede seguir el camino del repositorio clásico.



sudo add-apt-repository ppa:purplei2p/i2pd
sudo apt-get update
sudo apt-get install i2pd


Pero recomendaría usar snap. No solo implementará el demonio de manera rápida y conveniente, sino que también proporcionará actualizaciones automáticas directamente desde el flujo ascendente, según el canal de distribución seleccionado.



no_face@i2pd:~$ snap info i2pd
name:      i2pd
summary:   Distributed anonymous networking framework
publisher: Darknet Villain (supervillain)
store-url: https://snapcraft.io/i2pd
license:   BSD-3-Clause
description: |
  i2pd (I2P Daemon) is a full-featured C++ implementation of I2P client.
  I2P (Invisible Internet Protocol) is a universal anonymous network layer.
  All communications over I2P are anonymous and end-to-end encrypted,
  participants don't reveal their real IP addresses.
snap-id: clap1qoxuw4OdjJHVqEeHEqBBgIvwOTv
channels:
  latest/stable:    2.32.1 2020-06-02 (62) 16MB -
  latest/candidate: ↑
  latest/beta:      ↑
  latest/edge:      2.32.1 2020-06-02 (62) 16MB -


Instale snap si aún no lo ha hecho y configure la opción estable predeterminada:



apt install snapd
snap install i2pd


Configurando



A diferencia de la versión de Java web-gui, i2pd no tiene tantas configuraciones, giros y pestañas. Solo las cosas más necesarias antes del ascetismo. Sin embargo, la forma más sencilla es configurarlo directamente en el archivo de configuración.



Para que su recurso web esté disponible en i2p, debe usar un proxy de la misma manera que con onion. Para hacer esto, vaya a ~ / .i2pd / tunnels.conf y agregue su backend.



[anon-website]
type = http
host = 127.0.0.1
port = 8080
keys = anon-website.dat


Después de reiniciar el demonio, obtendrá una dirección aleatoria de 32 bits. Se puede ver en la consola web, que está disponible de forma predeterminada en 127.0.0.1 : 7070 /? Page = i2p_tunnels. No olvide permitir el acceso desde su dirección IP, si es necesario. De forma predeterminada, solo está disponible en la interfaz local. Habrá algo aterrador como ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2p.



La red i2p tiene una apariencia de DNS, pero es más como una lista dispersa de / etc / hosts. Te suscribes a fuentes específicas en la consola que te dicen cómo llegar al condicional flibusta.i2p . Por lo tanto, tiene sentido agregar un nombre más o menos hermoso a recursos grandes como inr.i2p.



¿Se pueden implementar i2p y onion con nosotros?



Solo quiero advertir que RuVDS no es un alojamiento a prueba de balas. En caso de una queja motivada contra nuestro cliente, podemos rescindir el contrato y extinguir la máquina virtual. La mayoría de los hosters harán lo mismo. Sin embargo, debido a las peculiaridades de la arquitectura tor y especialmente de i2p, es muy difícil, ya menudo simplemente imposible, determinar exactamente dónde está alojado el sitio web.



Sin embargo, no hay nada ilegal en el uso de tales herramientas. Por lo tanto, no nos importará si abre un espejo de su recurso web legal en redes superpuestas. En cualquier caso, recomiendo encarecidamente no experimentar a ciegas con tor en la máquina de su casa. O la IP puede ser incluida en la lista negra o llegará el paciente. Es mejor alquilar un VPS, es económico.






All Articles