Esta guía muestra como tu puedes configurar un servicio cebolla para tu sitio web. Por 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 funcionando

Como parte de esta guía, asumiremos que tienes un Tor funcional en tu máquina. To set up Tor, please follow the Tor installation guide. Tor debería estar ejecutándose 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: Haz funcionar 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 al servidor web están basados en sistemas operativos derivados de Debian, y pueden diferir de otros sistemas. Verificas 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é esto no funcionó.

Una vez que tu servidor web esté configurado, asegúrate que funcione: abre tu navegador y vé hacia http://localhost/. Entonces prueba poner un archivo en el directorio html principal, y asegúrate que se muestre cuando accedas al sitio.

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 vez de un socket TCP. Necesitarás editar y 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 ccomprobar que haya funcionado.

Ahora guarda tu torrc y reinicia Tor.

$ sudo systemctl restart tor

Si Tor inicia nuevamente, bien. De otra forma, hubo un error. Primero mira a 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 imperativo que estas se mantengan privadas. Si tus claves son filtradas, otros pueden hacerse pasar por tu servicio cebolla, volviéndolo comprometido, inútil y peligroso para se visitado.

Ahora te puedes conectar a tu servicio cebolla usando el Navegador Tor, y deberías 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 solamente usuarios con una clave privada accederán al servicio. Read more about Client authorization documentation.

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

Si quieres redirigir múltiples puertos virtuales para un único servicio cebolla, solo agrega más líneas HiddenServicePort. Si quieres ejecutar múltiples servicios cebolla desde el mismo cliente Tor, solo 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 sobre 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 /ruta/a/htdocs;
}

O en Apache con el servicio Tor escuchando en el puerto 80:

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

Paso 6: Consejos de seguridad y más

La versión predeterminada de los servicios cebolla es la 3, y tiene 56 caracteres de largo. Los servicios cebolla versión 2 están siendo discontinuados, y serán retirados pronto de la red Tor, después del lanzamiento de Tor 0.4.6.x, en Julio de 2021. Por favor lee el posteo blog Cronología de discontinuación de versiones de Servicios Cebolla para más información.

Algunos operadores de sitios cebolla podrían no querer divulgar la ubicación de su servicio cebolla. 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.

Now that you have an onion site working, you may want to deploy Onion-Location, or use tools like Docker, Heroku, Terraform, Ansible or stem to automate the management of your onion services. Si tienes un sitio web estático, pero nunca instalaste Nginx o Apache, otro proyecto para intentar es OnionShare, donde ejecutar un sitio cebolla será más fácil: guiado con un interfaz gráfico, y con una configuración mínima.