Tor y los Hidden Services 🐧

Sirven para publicar diferentes servicios en la red Tor, el ejemplo mas popular por cual se conoce esta red, son por las paginas en la deep web, pero en realidad se puede publicar casi cualquier servicio.

Yo soy Thor no Tor, pero ambos somos poderosos 🧅

No entraremos en la teoría, si no que haremos un ejemplo de un servidor web.

Antes les indico, que usaremos la implementación que actuar como servicio/daemon en Linux, como instarlo y ejecutarlos lo vimos aquí.



Primer paso

Debemos tener el servicio que queremos exponer a la red Tor ya funcionando, en mi caso usare mi repositorio local de Arch el cual les comente aquí, y que básicamente son archivos compartidos por medios del protocolo HTML y que usa el puerto 8080.

 

Accediendo al repositorio de mi PC desde el teléfono 👍🏼
Navegador Firefox 🦊 en Android



Segundo paso (La configuración)

Esta implementación es muy polivalente y la podemos configurar para que ejecute varios roles en la red de Tor, al abrir el archivo de configuración observaremos muchos ejemplos.

Sí abrimos el archivo, por ejemplo con el editor de texto GNU nano.

$ sudo nano /etc/tor/torrc

Nos movemos, hasta la sección de los Hidden Services.

Archivo de configuración ⚙️
🕵 Sección de los Hidden Services 🤫
 

Y agregamos lo siguiente para nuestro ejemplo:

# Ejemplo de servidor web
HiddenServiceDir /var/lib/tor/repositorio/
HiddenServicePort 80 127.0.0.1:8080


Donde:

  • La primera linea, es un comentario para identificar el servicio.
  • La segunda linea, es el directorio donde se va alojar los archivos y credenciales 🪪
  • La tercera linea, es el servicio.
    • 80 es el puerto expuesto a la red Tor.
    • 127.0.0.1 es donde esta alojado el servicio, en este caso esta en la misma PC.
    • 8080 es el puerto del servicio.

 

Ya tenemos el servicio y guardamos 💾
Quedaría de la siguiente manera

 

Tercer paso

Tor usa la misma teoría de llave publica y llave privada (criptografía asimétrica)

En este caso:

  • Tenemos una llave publica, que funciona como dirección publica y que nos permite acceder al Hidden Service.
  • Una llave privada, que nos permite ejercer como dueño de este Hidden Service.


En el directorio /var/lib/tor/repositorio/ que configuramos, están estos datos 👍🏼

Antes de buscar la dirección publica debemos reiniciar el servicio Tor, para que las genere.

Respaldar este directorio es muy importante ⚠️
Contenido del directorio

La dirección publica, la buscamos de la siguiente manera.

$ sudo cat /var/lib/tor/repositorio/hostname


Esta es nuestra dirección publica del Hidden Service 😎



Cuarto paso

Para acceder, usamos el navegador Tor y la dirección publica.


Tor browser 🧅 en Android


Extras 🧷

Si queremos mover o restaurar el Hidden Service, para no perder la dirección publica, debemos respaldar el directorio /var/lib/tor/repositorio/

 

No estamos limitados a un solo Hidden Service, pero si queremos mas de uno es interesante saber lo siguiente:

Por ejemplo necesitamos tres Hidden Services, una pagina web, un servidor SSH y uno FTP

El cual lo configuramos así:

# Ejemplo de servidor web
HiddenServiceDir /var/lib/tor/web/
HiddenServicePort 80 127.0.0.1:8080

# Ejemplo de servidores SSH y FTP
HiddenServiceDir /var/lib/tor/sshftp/
HiddenServicePort 22 127.0.0.1:22
HiddenServicePort 21 127.0.0.1:21

 

El servidor SSH y FTP compartirán la misma dirección publica, que se puede consultar así:

$ sudo cat /var/lib/tor/sshftp/hostname


Para que los cliente SSH y FTP acceda a estos servicios ocultos se debe usar la aplicación torsock que funciona como wrapper, este proceso se llama torificar y que lo veremos en detalle aquí.

 

La dirección publica de la pagina web serán diferente y la podemos consultar así:

$ sudo cat /var/lib/tor/web/hostname

Y para acceder al servidor WEB usaríamos Tor Browser como vimos anteriormente.


Para mas información sobre Tor en el blog, la puede ver aquí:


Fuentes:

Comentarios

Entradas más populares de este blog

Super Mario RPG 🎮