Hidden Services/es

Aus i2pwiki.mk16.de
Zur Navigation springen Zur Suche springen

Introducción[Bearbeiten]

Los servicios que ocultan la localización<ref>torproject.org</ref> (por ejemplo, la dirección IP) de quien provee el servicio (Ej. un servicio web accesible sólo desde la red de encaminamiento de cebolla) se les suele llamar servicios de localización oculta (en inglés location-hidden services) o simplemente servicios ocultos (en inglés hidden services).

Para soportar esta funcionalidad los proveedores de servicios generan una clave pública y privada para identificar su servicio. A continuación anuncian su servicio a distintos routers, haciendo peticiones firmadas con su clave pública, para que sirvan como punto de contacto. A los routers con esta función se les llama puntos de introducción, en inglés introduction point. El proveedor de servicio asocia a su servicio una FQDN del pseudo-TLD .onion y la publica en un servidor de directorio. La FQDN tiene la forma <valorhash>.onion donde el valor hash es de 16 caracteres en Base32 y está generado usando una función hash sobre la clave pública del servicio. Cuando un cliente se quiere conectar a cierta FQDN (por ejemplo ha encontrado la dirección a través de un sitio web) consulta un servicio de búsqueda (lookup service) y este le indica un punto de introducción (introduction point) y la clave pública del servicio. Observar que para mantener el anonimato es necesario que la consulta del servicio de búsqueda se realice a través de Tor.

A continuación el cliente se conecta con un punto de encuentro (esto lo podría haber hecho antes) y se establece un identificador de esa conexión (rendezvous cookie). A continuación el cliente le envía un mensaje, firmado con la clave pública del servidor, al punto de introducción indicándole el punto de encuentro donde está, el identificador que permita identificar al cliente en el punto de encuentro (la rendezvous cookie) y parte del protocolo Diffie-Hellman (start of a DH handshake). A continuación el punto de introducción envía el mensaje al servidor del servicio el cual determina si se conecta al punto de encuentro para proveerle el servicio o no. Si determina que quiere conectarse con él entonces se conecta al punto de encuentro y le indica a este el identificador del cliente con el que quiere conectarse (la rendezvous cookie), la segunda parte del Diffie-Hellman (the second half of the DH handshake) y un hash de la clave que comparten. A continuación el punto de encuentro conecta a el cliente y el servidor y se establece una comunicación normal.


Configurar Servicios Ocultos para Tor[Bearbeiten]

Tor permite a los clientes y a los repetidores que ofrezcan servicios ocultos. Eso significa que puede ofrecer un servidor web, servidor SSH, etc., sin revelar su dirección IP a sus usuarios. De hecho, como no se usa ninguna dirección pública, puedes ejecutar un servicio oculto desde detrás de un cortafuegos.

Si tiene Tor y Privoxy instalado, puede ver los servicios ocultos en acción visitando un ejemplo de servicio oculto.

Este howto describe los pasos para configurar tu propio sitio web en un servicio oculto.


Paso Cero: Hacer que Tor y Privoxy funcionen[Bearbeiten]

Antes de empezar, necesitará asegurarse de que:

  • Tor está activo y ejecutándose,
  • Privoxy está activo y ejecutándose,
  • Privoxy está configurado para apuntar a Tor, y
  • Lo ha configurado correctamente.

Los usuarios de Windows deberían seguir el howto para Windows , Los usuarios de OS X deberían seguir el howto para OS X, y los usuarios de Linux/BSD/Unix deberían seguir el howto para Unix.

Una vez que tenga Tor y Privoxy instalados y configurados, puede ver los servicios ocultos en acción siguiendo este enlace a un ejemplo de servicio oculto. Tardará típicamente 10-60 segundos en cargarse (o en decidir que no se puede acceder por el momento). Si falla inmediatamente y tu navegador muestra una alerta diciendo que "www.duskgytldkxiuqc6.onion no se encontró, compruebe por favor el nombre e inténtelo de nuevo" no ha configurado Tor y Privoxy correctamente; vea la entrada Tor-o-Privoxy-no-funcionan de la FAQ para ayuda.


Paso Uno: Instalar un servidor web localmente[Bearbeiten]

Primero, necesitará configurar un servidor web localmente. Configurar un servidor web puede ser complicado, así que sólo explicaremos algunas cosas básicas. Si se atranca o quiere hacer más, busque un amigo que pueda ayudarle. Recomendamos que instale un nuevo servidor web separado para su servicio oculto, ya que incluso si ya tiene uno instalado, puede estar usándolo (o querer usarlo más tarde) para un sitio web real.

Si está en Unix u OS X y está cómodo en la línea de órdenes, la mejor forma con diferencia es instalar thttpd. Coja el último fichero tar, descomprímalo (creará su propio directorio), y ejecute

$ ./configure && make
[...]

Luego

$ mkdir hidserv
$ cd hidserv 

Y ejecute

$ ../thttpd -p 5222 -h localhost

Volverá a la línea de órdenes, y ya está usted ejecutando un servidor web en el puerto 5222. Puede poner ficheros para servir en el directorio hidserv.

Si está en Windows, podría elegir Savant o Apache, y asegúrese de configurarlo para que escuche sólo a localhost. También debería averiguar en que puerto está escuchando, porque lo usará más abajo.

(La razón de que el servidor web sólo escuche a localhost es para asegurarse de que no es accesible públicamente. Si la gente pudiera conectarse a él directamente, podrían confirmar que su ordenador es el que está ofreciendo el servicio oculto.)

Una vez que tenga su servidor web configurado, asegúrese de que funciona. Abra su navegador y vaya a

http://localhost:5222 

Donde 5222 es el puerto que eligió antes. Intente poner un fichero en el directorio html principal, y asegúrese de que aparece cuando accede al sitio.


Paso Dos: Configure su servicio oculto[Bearbeiten]

Para lo siguiente, necesita configurar su servicio oculto para que apunte a su servidor web local.

Primero, abra su fichero torrc en su editor de texto favorito. (Vea la entrada de la FAQ torrc para aprender lo que esto significa.) Vaya a la sección del medio y busque la línea

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

Esta sección del fichero consiste en grupos de líneas, cada una representando un servicio oculto. Ahora mismo están todas comentadas (las líneas comienzan con consiste en una línea HiddenServiceDir, y una o más líneas HiddenServicePort:

  • HiddenServiceDir es un directorio donde Tor almacenará información acerca de ese servicio oculto. En particular, Tor creará un fichero aquí de nombre hostname que le dirá la URL onion. No necesita añadir ningún fichero a este directorio.
  • HiddenServicePort le permite especificar un puerto virtual (eso es, qué puerto creerán que están usando la gente que acceda al servicio oculto) y una dirección IP y puerto para redireccionar conexiones a este puerto virtual.

Añada las siguientes líneas a su torrc:

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

Querrá cambiar la línea HiddenServiceDir, para que apunte a un directorio real que sea legible/escribible por el usuario que ejecutará Tor. La línea anterior debería funcionar si está usando el paquete Tor para OS X. En Unix, pruebe "/home/username/hidserv/" y complete su propio nombre de usuario en lugar de "username". En Windows puede escoger:

HiddenServiceDir C:\Documents and Settings\username\Application Data\hidden_service\
HiddenServicePort 80 127.0.0.1:5222

Ahora grabe el torrc, apague su Tor, e inícielo de nuevo.

Si tor reinicia, estupendo. En caso contrario, algo está mal. Primero mire los logs de tor para consejos. Mostrará algunos mensajes con advertencias o errores. Eso debería darle alguna idea de qué está mal. Lo típico es que haya palabras mal escritas o permisos erróneos en los directorios. (Vea la entrada FAQ sobre log si no está seguro de cómo activar o encontrar su fichero de log.)

Cuando Tor arranque, automáticamente creará el HiddenServiceDir que especificó (en caso necesario), y creará dos ficheros allí.

private_key
Primero, Tor generará una pareja de llaves pública/privada para su servicio oculto. Se escribe en un fichero llamado "private_key". No comparta esta clave con otros. Si lo hace podrán impersonar su servicio oculto.
hostname
El otro fichero que Tor creará se llama "hostname". Contiene un pequeño resumen de su llave pública, parecerá algo como duskgytldkxiuqc6.onion. Este es el nombre público de su servicio, y puede decírselo a la gente, publicarlo en sitios web, ponerlo en tarjetas de visita, etc.

Si Tor se ejecuta como un usuario diferente de usted, por ejemplo en OS X, Debian, o Red Hat, puede que necesite hacerse root para poder ver esos ficheros.

Ahora que ha reiniciado Tor, está ocupado eligiendo puntos de introducción en la red Tor, y generando lo que se llama un descriptor de servicio oculto. Esto es una lista firmada de puntos de introducción junto con la llave pública completa del servicio. Publica anónimamente este descriptor a los servidores de directorio, y otra gente lo obtiene anónimamente de los servidores de directorio cuando intentan acceder a su servicio.

Pruebe ahora: pegue el contenido del fichero hostname en tu navegador web. Si funciona, obtendrá la página html que configuró en el paso uno. Si no funciona, mire en sus logs buscando sugerencias, y siga jugando con él hasta que funcione.


Paso Tres: Consejos más avanzados[Bearbeiten]

Si planea mantener su servicio disponible durante largo tiempo, puede que quiera hacer una copia de seguridad del fichero private_key en alguna parte.

Hemos evitado recomendar Apache antes, a) porque mucha gente podría estar ya ejecutándolo para su servidor web público en su ordenador, y b) porque es grande y tiene muchos sitios donde podría revelar su dirección IP u otra información identificadora, por ejemplo en páginas 404. Para la gente que necesite más funcionalidad, sin embargo, Apache puede ser la respuesta correcta. ¿Puede alguien hacernos una lista de formas de bloquear el Apache cuando se usa como servicio oculto? Savant probablemente también tenga esos problemas también.

Si quiere redireccionar múltiples puertos virtuales para un mismo servicio oculto, simplemente añada más líneas HiddenServicePort. Si quiere ejecutar múltiples servicios ocultos desde el mismo cliente Tor, simplemente añada otra línea HiddenServiceDir. Todas las líneas HiddenServicePort subsiguientes se refieren a esta línea HiddenServiceDir, hasta que añada otra línea HiddenServiceDir:

HiddenServiceDir /usr/local/etc/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080
HiddenServiceDir /usr/local/etc/tor/other_hidden_service/
HiddenServicePort 6667 127.0.0.1:6667
HiddenServicePort 22 127.0.0.1:22

Hay algunas consideraciones de anonimato que debería tener en cuenta también:

  • Como se mencionó antes, tenga cuidado de dejar que su servidor web revele información identificativa sobre usted, su ordenador, o su posición. Por ejemplo, los lectores pueden probablemente determinar si es thttpd o Apache, y aprender algo acerca de su sistema operativo.
  • Si su ordenador no está online todo el tiempo, su servicio oculto tampoco lo estará. Esto filtra información a un adversario observador.


Véase también[Bearbeiten]


Referencias[Bearbeiten]

<references />