Jugando con Tor: Hidden Services (parte 1)

¿Qué es un Hidden Service?

Es un servidor, ya sea SSH, web, etc que solo puede accederse desde la red Tor.

¿Para qué sirve un Hidden Service?

Permite el acceso de forma anónima y segura a estos servicios y facilita el acceso si están destrás de un cortafuegos.

Al meollo

En el artículo Crear un paquete deb en Raspbian (Debian) utilicé como ejemplo el paquete tor, esos son los pasos necesarios para instalar tor en Raspbian. pero en general puede instalarse con:

~$ apt-get install tor

Para ilustrar el artículo configuraremos dos servicios: Un servidor web Nginx y servidor OpenSSH. Se definen en el archivo /etc/tor/torrc con:

# Servidor Nginx HiddenServiceDir /var/lib/tor/www/ HiddenServicePort 80 127.0.0.1:80 HiddenServiceAuthorizeClient stealth Usuario1 Usuario2
# Servidor OpenSSH HiddenServiceDir /var/lib/tor/ssh/ HiddenServicePort 22 127.0.0.1:22 HiddenServiceAuthorizeClient stealth Usuario1 Usuario2

HidenServiceDir define el directorio donde se almacenan los archivos de configuración y claves del servicio. Es importante asegurarse que la carpeta es propiedad del mismo usuario con que se ejecuta Tor, en Debian este usuario es debian-tor. La opción HiddenServicePort indica la redirección de puertos al servicio. HiddenServiceAuthorizeClient es opcional, restringe el acceso a los usuarios indicados, generando una dirección y una contraseña para cada usuario, y las guarda dentro de HiddenServiceDir/hostname.

Para que la nueva configuración surta efecto reiniciaremos Tor con:

~$ service tor restart

Si el sistema de inicio es init.d, y con:

~$ systemctl tor restart

Si el sistema de inicio es systemd.

En la siguiente parte explicaremos como acceder a estos servicios utilizando Tor Browser, evitando tener que instalar Tor para el cliente.