¿Cómo crear un página web en la red Tor?

En este artículo enseño cómo crear un servicio oculto en la red Tor, concretamente un sitio web.

Lo primero que debemos hacer es tener Tor funcionando. Lo más sencillo es descargarse el Tor Browser de la página oficial de Tor e instalarlo.

Lo siguiente es instalar un servidor web. Puedes instalar un servidor GLAMP o cualquier otro tipo de servidor web. Debes configurar tu servidor web para que no dé información sobre ti, sobre tu ordenador o sobre tu ubicación si quieres contar con una mayor privacidad. Es una buena idea usar una máquina virtual.

Lo último es configurar el servicio oculto para que apunte al servidor local anteriormente instalado. Para ello necesitamos editar un archivo llamado torrc. La ruta de este archivo es la siguiente dentro de la carpeta obtenida al descargar Tor Browser: Browser/TorBrowser/Data/Tor/torrc. Si instalaste Tor de otra forma, el archivo torrc se encontrará en otra ubicación (lee la siguiente sección para saber donde encontrar el archivo: https://www.torproject.org/docs/faq.html.en#torrc).

Debes añadir dos líneas a tu archivo torrc:

  • HiddenServiceDir es el directorio donde Tor guardará la información sobre el servicio oculto. En concreto, Tor creará un archivo aquí llamado hostname que contendrá la URL onion y otro llamado private_key. Este no debe ser el directorio de tu servidor web, pues este directorio contendrá información secreta. No necesitas añadir nada dentro de este directorio
  • HiddenServicePort te permite especificar un puerto virtual (esto es, el puerto que los usuarios del servicio oculto pensarán que están usando) y una dirección IP y un puerto para redirigir las conexiones a este puerto virtual

En mi caso añadí estas líneas:

HiddenServiceDir /home/jorge/Documentos/tor/
HiddenServicePort 80 127.0.0.1

El archivo <code>torrc</code> configurado para ofrecer un servicio oculto

En la anterior imagen puedes ver mi archivo torrc. Cuando elijas el directorio HiddenServiceDir, no lo crees, es mejor que lo haga Tor automáticamente para evitar problemas con los permisos. En mi caso el directorio /home/jorge/Documentos/tor se creó cuando volví a iniciar Tor tras haber guardado el nuevo contenido del archivo torrc.

Una vez escrita en el archivo torrc la información anteriormente mencionada, debes abrir Tor Browser o ejecutar Tor de nuevo. Si no se inicia Tor correctamente, es que has escrito algo mal en el archivo torrc. Revísalo, corrígelo y prueba de nuevo. Si tienes problemas, puedes dejar aquí un comentario para que os intentemos ayudar o contactar con el proyecto Tor.

Si todo ha ido bien, cuando inicies Tor de nuevo, se crearán dos archivos en el directorio que indicaste en HiddenServiceDir, en mi caso en /home/jorge/Documentos/tor. Son los archivos private_key (tu clave privada) y hostname (archivo de texto con tu URL onion).

Cuando te dirijas con el Tor Browser a esa URL, verás el contenido del archivo index.html que está en la carpeta de tu servidor web, si es que existe (en mi caso es /var/www/html/index.html). Ahora puedes crear una página web sencilla y visualizarla en tu URL onion. Cualquiera que conozca esa URL y use Tor podrá ver tu página web.

Mi primera página web en la Deep Web

En https://riseup.net/en/security/network-security/tor/onionservices-best-practices puedes encontrar algunas recomendaciones más a la hora de crear servicios ocultos.

Instalación de un servidor GLAMP

Introducción

GLAMP es un acrónimo que define un sistema infraestructura de internet que incluye las siguientes herramientas: GNU, Linux, Apache, MySQL y PHP o Python o Perl. Realmente GNU y Linux ya están instalados, se utiliza esa notación para distinguir GLAMP de MAMP (de Mac OS) y WAMP (de Windows). Se suele usar GLAMP para realizar tareas relacionadas con la programación de aplicaciones web o para tareas que necesiten de un servidor HTTP como del de Apache.

La instalación la voy a realizar en una distribución de GNU/Linux llamada Trisquel, pero el proceso es similar en otras distribuciones. Trisquel está basada en Ubuntu, así que los pasos son idénticos o casi idénticos en ambas.

Instalación

Abrimos tasksel (instálalo si tu distribución no lo trae instalado) con permisos de superusuario (sudo tasksel). Encontraremos una pantalla que pone «Selección de programas».

tasksel (Trisquel)

Veréis que la opción sobre la que estáis situados se marca con un color diferente; quizá tengáis algunas opciones marcadas con un asterisco. Tenéis que seleccionar GLAMP web server (puede que no tenga exactamente el mismo nombre dependiendo de la distribución. Como regla general, si pone LAMP es lo que buscas). Ahora pulsáis la barra espaciadora (veréis aparece un asterisco) y después Enter. Enseguida se iniciará el instalador.

Durante la instalación os preguntará por la contraseña que queréis que tenga MySQL, escoged la de vuestra elección y continuará la instalación.

Comprobad ahora si se puede acceder a localhost con vuestro navegador. Deberá aparecer esta página web o una similar:

Apache localhost on Trisquel

Podéis comprobar también si MySQL se ha instalado correctamente intentando acceder a MySQL con la contraseña especificada durante la instalación: mysql -u root -p (tras introducir esto en la Terminal, os preguntará la contraseña para acceder).

Ahora vamos a instalar phpMyAdmin con la instrucción sudo apt-get install phpmyadmin. Nos preguntará por el servidor que queremos elegir para configurar phpMyAdmin, elegimos apache2. También debemos decir que sí queremos que nos configure la base de datos automáticamente con «dbconfig-common» . Luego nos pedirá la contraseña de la base de datos.

Captura de pantalla de 2016-07-15 14:17:06

instalando phpmyadmin

Ahora podemos probar si phpMyAdmin se ha instalado, yendo a localhost/phpmyadmin con nuestro navegador. Nos deberá aparecer una pantalla que nos permita iniciar sesión. Aquí debemos introducir root (o nuestro usuario de MySQL si habéis creado ya uno) y su contraseña.

main screen phpMyAdmin
La pantalla que aparece al iniciar sesión en phpMyAdmin

login phpMyAdmin

Ahora debéis cambiarle el nombre al archivo HTML que aparece cuando vamos a http://localhost con en el navegador (sudo mv /var/www/html/index.html /var/www/html/index_de_apache.html). Esto lo hago para no ver el molesto mensaje de bienvenida cada vez que voy a localhost con el navegador. En vez de eso, veremos los archivos del directorio raíz de nuestro servidor GLAMP: var/www/html.

Se verá algo como esto cuando estemos en localhost
Se verá algo como esto cuando estemos en localhost

Ahora debemos cambiar el usuario y el grupo de la carpeta html. El grupo que debemos especificar es www-data, que es el que utiliza Apache. Lo debemos hacer de forma recursiva para que todo el contenido de la carpeta también cambie de propietario y de grupo. La instrucción es la siguiente:

sudo chown -R $USER:www-data /var/www/html

Puede que quieras modificar también los permisos de esta carpeta según tus necesidades.

Captura de pantalla de 2016-07-15 14:44:55