OnionJuggler

Gestor de servicios onion con muchas funciones para sistemas operativos tipo UNIX, escrito en shellscript compatible con POSIX
OnionJuggler es una colección portátil de scripts y documentación de requisitos mínimos para ayudar al operador del servicio a hacer malabares (gestionar) sus onions.
ADVERTENCIA: do not trust this repo yet, haz copia de seguridad de tus hs keys en otra ubicación. Este proyecto aún no ha sido lanzado y debe considerarse solo para desarrollo.
Enlace rápido a este repositorio: git.io/onionjuggler
Tabla de Contenidos
Introducción
Imágenes

Historia
Este proyecto comenzó después de ver los asombrosos scripts CLI de Python de OnionShare, que posibilitan servicios onion efímeros que nunca tocan el disco y se pueden ejecutar fácilmente en Tails o Whonix. Luego, después de ver el script bash del servicio onion de RaspiBlitz para Raspberry Pi, surgió la idea de portarlo a cualquier distribución Debian. A medida que la idea crecía, usar GNU Bash y Linux era un punto único de fallo 1 2, por lo que hacer que el script fuera compatible con POSIX para que funcione en cualquier sistema tipo Unix fue un objetivo definitivo.
Objetivo
El objetivo de este proyecto es:
- facilitar la gestión de servicios onion, desde activar un servicio hasta agregar autorización de cliente, dando todas las capacidades que tendría la edición manual de archivos pero con menos tecleo.
- mostrar que la gestión del servicio onion es mucho más que solo usar un servidor web con tus páginas.
- distribución, desde el nivel del código fuente (FOSS) hasta el efecto que tiene cuando permite que cualquiera ejecute el código en cualquier sistema operativo, shell o gestor de servicios. Mitigación de un punto único de fallo
Mitigación de un punto único de fallo:
- Kernel del predominante
Linux también a BSD y cualquier otro sistema tipo Unix.
- Shell del predominante
Bash también a cualquier shell POSIX como ksh, (y,d)ash y Zsh (emulando sh).
- Gestor de servicios del predominante
Systemd también a RC, OpenRC, SysVinit, Runit.
Editar el archivo de configuración de tor (torrc) no es difícil, pero la automatización soluciona el problema de una mala configuración y tener:
- menos tiempo dedicado al ejecutar un solo comando de línea
- sin tiempo de inactividad al rechazar configuraciones inválidas antes de aplicarlas para su uso
- uniformidad completa
- interfaz gráfica para ayudar a los principiantes
Características
- Activar servicio - Crear directorio si no existe (HiddenServiceDir), seleccionar versión onion (HiddenServiceVersion), tipo de socket personalizado (unix o tcp), con tantos puertos virtuales como desees, así como destinos (HiddenServicePort).
- Desactivar servicio - Eliminar la configuración del servicio del torrc, el servicio ya no será accesible, pero puedes activarlo de nuevo en cualquier momento. Opcionalmente purgar el servicio, eliminando su configuración y directorio, lo que eliminará sus claves permanentemente.
- Renovar dirección del servicio - Enfocado en servicios onion privados, si alguna vez filtras su dirección, puedes cambiar su hostname, ten en cuenta que todos tus clientes autorizados serán desconectados y las claves del servicio se eliminarán permanentemente.
- Credenciales - Mostrar hostname, clientes, bloque torrc, hostname codificado en qr.
- Autenticación onion - Solo para servicios onion v3. Esto depende de la configuración del lado del cliente y del servidor y funciona con un par de claves, el cliente posee la parte de la clave privada, ya sea generada por él (más seguro) o proporcionada por el operador del servicio, y el operador del servicio onion posee la parte pública. Si cualquiera de
- Servidor - Generar par de claves o agregar parte pública, listar nombres de clientes y sus claves públicas desde
<HiddenServiceDir>/authorized_clients/<client>.auth. Si algún cliente está configurado, el servicio no será accesible sin autenticación.
- Cliente - Generar par de claves o agregar parte pública, listar tu
<ClientOnionAuthDir>/<SOME_ONION>.auth_private.
- Onion-Location - Para servicios onion públicos. Puedes redirigir a tus usuarios de plainnet a tu servicio onion con esta guía para nginx, apache2 y atributos de cabecera html.
- OpSec - Seguridad Operativa
- Socket Unix - Soporte para habilitar un servicio onion a través de socket unix para evitar bypass de localhost.
- Servidor web - Servir archivos con tu servicio oculto usando los servidores web Nginx o Apache2.
- Usabilidad - Hay dos cuadros de diálogo compatibles con el proyecto,
dialog y whiptail.
- Lote - Algunos comandos se pueden agrupar con el argumento
@all para incluir todos los servicios o clientes según la opción --service o --client, listar argumentos habilitados[SERV1,SERV2,...] y [CLIENT1,CLIENT2,...], el comando recorrerá las variables y aplicará la combinación.
- A prueba de tontos - El script hace todo lo posible para filtrar comandos inválidos y sintaxis incorrecta. Los comandos no son difíciles pero a primera vista pueden asustarte. No te preocupes, si es inválido, no se ejecutará para evitar que el daemon de tor falle al recargar debido a una configuración inválida. Si se ejecuta un comando inválido, por favor abre un issue.
Requisitos
- General:
- Sistema tipo Unix.
- Privilegios de superusuario para ejecutar comandos como root y el usuario tor