Esta guía muestra como configurar un servicio cebolla para tu sitio web. Para conocer los detalles técnicos de cómo funciona el protocolo del servicio cebolla, mira nuestra página sobre el tema.

Paso 0: Consigue un Tor que funcione

Como parte de esta guía, asumiremos que tienes un Tor funcional en tu máquina. Para configurar Tor, por favor sigue la guía de instalación de Tor. Tor debería funcionar correctamente para que esta guía funcione. También deberías saber dónde están los archivos de configuración de Tor.

Paso 1: Pon en marcha un servidor web

Como primer paso, deberías configurar un servidor web localmente, como Nginx, Apache o tu servidor web favorito. Configurar un servidor web puede ser complejo. Si te quedas trabado o quieres hacer más, encuentra un amigo que pueda ayudarte o únete a nuestra lista de correos tor-onions pata hablar con otros operadores.

Como ejemplo, cubriremos cómo configurar un sitio cebolla con Nginx y Apache sobre Debian. Te recomendamos instalar un nuevo servidor web por separado para tu servicio cebolla, ya que si ya tienes uno instalado, podrías usarlo (o querer usarlo más adelante) para un sitio web regular.

En esta página, los comandos para gestionar el servidor web están basados en sistemas operativos derivados de Debian, y pueden diferir de otros sistemas. Verifica tu documentacion del servidor web y sistema operativo.

Apache

Apache está disponible en el repositorio principal de múltiples distribuciones de Linux y *BSD. Para instalar el paquete apache2:

$ sudo apt install apache2

Nginx

Nginx está disponible en el repositorio principal de múltiples distribuciones de Linux y *BSD. Para instalar el paquete nginx:

$ sudo apt install nginx

Por defecto, el servidor web se estará ejecutando en localhost:80 al final de la instalación. Si obtienes un mensaje de error, algo ha salido mal, y no puedes continuar hasta que te hayas dado cuenta de por qué no funcionó.

Una vez que tu servidor web esté configurado, asegúrate que funcione: abre tu navegador y vé hacia http://localhost/. A continuación, prueba a colocar un archivo en el directorio HTML principal y asegúrate de que aparece al acceder a la página.

Paso 2: Configura tu servicio cebolla Tor

El próximo paso es abrir el archivo de configuración de Tor (torrc) y hacer las configuraciones apropiadas para usar el servicio cebolla. Dependiendo de tu sistema operativo y tu configuración, tu archivo de configuración Tor puede variar en la ubicación del directorio o en su apariencia.

Necesitarás poner las siguientes dos líneas en tu archivo torrc:

 HiddenServiceDir /var/lib/tor/my_website/
 HiddenServicePort 80 127.0.0.1:80

La linea HiddenServiceDir (Directorio de servicio oculto) especifica el directorio en el cual deberían contenerse la información y las llaves cifradas de tu servicio cebolla. Querrás cambiar la línea HiddenServiceDir para que apunte a un directorio real que sea legible/modificable por el usuario que estará corriendo Tor.

La linea de HiddenServicePort especifica un puerto virtual (esto es, el puerto que las personas visitando tu servicio cebolla estarán usando), y en el caso de arriba dirá que cualquier tráfico entrante al puerto 80 de tu servicio cebolla será redirigido a 127.0.0.1:80 (que es donde el servidor web del paso 1 está escuchando).

Consejo: Una buena práctica pata evitar filtrar un servicio cebolla a una red local es ejecutar servicios cebolla sobre sockets Unix en lugar de sockets TCP. Necesitarás poner las siguientes dos líneas en tu archivo torrc:

HiddenServiceDir /var/lib/tor/my-website/
HiddenServicePort 80 unix:/var/run/tor/my-website.sock

Paso 3: Reiniciar Tor y comprobar que haya funcionado

Ahora guarda tu torrc y reinicia Tor.

$ sudo systemctl restart tor

Si Tor inicia nuevamente, bien. De lo contrario, hubo un error. Primero mira en tus archivos de registro por pistas. Va a mostrar algunas alertas o mensajes de error. Eso debería darte alguna idea de cuál fue el error. Típicamente, hay errores de sintaxis en torrc, o permisos de directorio incorrectos (Mira la entrada PMF de registros si no sabes cómo habilitar o encontrar tu archivo de registro).

Cuando Tor se inicie, creará automáticamente el HiddenServiceDir que especificaste (si es necesario). Asegúrate de que este sea el caso.

Paso 4: Comprueba que tu servicio cebolla funcione

Ahora, para obtener la dirección de tu servicio cebolla, ve a tu directorio HiddenServiceDir, y encuentra un archivo llamado hostname. El archivo hostname en tu directorio de configuración de servicio cebolla contiene el nombre de equipo para tu nuevo servicio cebolla v3. Los otros archivos son las claves de los servicios cebolla, por lo que es muy importante que se mantengan privadas. Si tus claves se llegan a divulgar, otros podrían hacerse pasar por tu servicio cebolla, haciéndolo comprometido, inútil y peligroso de visitar.

Ahora puede conectarse a su Servicio Cebolla usando el Navegador Tor, y debería obtener la página HTML que configuraste en el Paso 1. Si no funciona, busca alguna pista en tus registros, y sigue intentando hasta que funcione.

Es importante tener en cuenta que un servicio cebolla configurado como este será legible por cualquiera que conozca o descubra la dirección. Puedes hacer que los servicios cebolla requieran autenticación, y solo los usuarios que posean una clave privada accederán al servicio. Lee más acerca de la documentación de Autorización de Cliente.

(Opcional) Paso 5: Ejecutar múltiples servicios cebolla

Si quieres redirigir múltiples puertos virtuales para un único servicio cebolla, solo necesitas agregar más líneas HiddenServicePort. Si quieres ejecutar múltiples servicios cebolla desde el mismo cliente Tor, agrega otra línea HiddenServiceDir. Todas las siguientes líneas HiddenServicePort se refieren a esta línea HiddenServiceDir, hasta que agregas otra línea HiddenServiceDir:

 HiddenServiceDir /var/lib/tor/onion_service/
 HiddenServicePort 80 127.0.0.1:80

 HiddenServiceDir /var/lib/tor/other_onion_service/
 HiddenServicePort 6667 127.0.0.1:6667
 HiddenServicePort 22 127.0.0.1:22

Si estás ejecutando múltiples sitios cebolla en el mismo servidor web, recuerda editar tu archivo de alojamiento virtual y agregar la dirección cebolla para cada sitio web. Por ejemplo, en Nginx y usando Tor con sockets Unix, la configuración se parecería a esto:

server {
        listen unix:/var/run/tor/my-website.sock;
        server_name <your-onion-address>.onion;
        access_log /var/log/nginx/my-website.log;
        index index.html;
        root /path/to/htdocs;
}

Or in Apache with Tor service listening on port 80:

     <VirtualHost *:80>
       ServerName <your-onion-address.onion>
       DocumentRoot /path/to/htdocs
       ErrorLog ${APACHE_LOG_DIR}/my-website.log
     </VirtualHost>

Paso 6: Consejos de seguridad y más

La versión por defecto de servicios cebolla es la 3 y su dirección tiene 56 caracteres, sin las partes http:// y .onion. La versión 2 de Onion services está obsoleta y ya no se soporta desde la versión 0.4.6.1-alpha de Tor, en 2021. Por favor lee el posteo blog Cronología de discontinuación de versiones de Servicios Cebolla para más información.

Es posible que algunos operadores de Onionsite no quieran revelar la ubicación de su Servicio Onion. Por lo tanto, necesitas configurar tu servidor web de forma que no entregue ninguna información sobre ti, tu computadora o tu ubicación. Esa no es una tarea fácil, y estos recursos te ayudarán acerca de como hacer esto posible:

Finalmente, si planeas mantener tu servicio disponible por un largo tiempo, podrías querer hacer una copia de respaldo del archivo private_key en algún lado.

Ahora que tienes funcionando un sitio cebolla, es posible que desees implementar Onion-Location, o usar herramientas como Docker, Heroku, Terraform, Ansible o stem para automatizar la gestión de tus Servicios Onion. Si tienes un sitio web estático pero nunca instalaste Nginx o Apache, otro proyecto para probar es OnionShare, en donde ejecutar un sitio cebolla será más fácil: guiado con una interfaz gráfica y con una configuración mínima.