Crear servicio oculto para sitio web en Nginx (clearnet y darknet)

¿Quieres crear un sitio web usando un servidor Nginx y quieres tener también ese sitio web como servicio oculto para usuarios de Tor? Aquí te explico cómo hacerlo en Debian GNU/Linux.

Primero instalamos los siguientes paquetes:

sudo apt install nginx tor

Luego hay que descomentar las siguientes líneas del archivo /etc/tor/torrc:

#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80

Yo he cambiado el nombre del directorio del servicio oculto a servicio_oculto, quedando así:

HiddenServiceDir /var/lib/tor/servicio_oculto/
HiddenServicePort 80 127.0.0.1:80

A continuación, reiniciamos el servicio de Tor:

sudo systemctl restart tor

Al reiniciarse Tor crea el directorio servicio_oculto/ y lo llena con la URL del servicio oculto (archivo hostname) y las claves pública y privada.

Si tenemos tanto Nginx y Tor ejecutándose como servicios y nos metemos en la dirección que hay en /var/lib/tor/servicio_oculto/hostname, podremos ver la página de bienvenida de Nginx.

Por defecto, el sitio web para Nginx se ha de ubicar en la ruta /var/www/html/. Así pues, solo tenemos que desarrollar el sitio web en esa ubicación. No importa que se use la URL de Tor o una URL convencional, el sitio web es el mismo. Ten en cuenta de que para que los enlaces a otras páginas de tu sitio web funcionen usando URLs .onion es necesario usar URLs relativas.

Extra: añadir cabecera de .onion disponible

Continúa leyendo Crear servicio oculto para sitio web en Nginx (clearnet y darknet)

Instalar servidor Nginx con PHP en Debian 11

En este artículo enseño cómo instalar un servidor Nginx que pueda ejecutar programas de PHP en Debian 11.

Primero hay que instalar los siguientes paquetes:

sudo apt install nginx php php-fpm

A continuación, hay que descomentar las siguientes líneas del archivo de configuración predeterminado de Nginx (/etc/nginx/sites-available/default):

#location ~ \.php$ {
#   include snippets/fastcgi-php.conf;
#
#   # With php-fpm (or other unix sockets):
#   fastcgi_pass unix:/run/php/php7.4-fpm.sock;
#   # With php-cgi (or other tcp sockets):
#   fastcgi_pass 127.0.0.1:9000;
#}

Quedando así1:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;

    # With php-fpm (or other unix sockets):
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    # With php-cgi (or other tcp sockets):
    #fastcgi_pass 127.0.0.1:9000;
}

Luego hay que comprobar si la sintaxis del archivo de configuración es correcta con sudo nginx -t. Si no da error, iniciamos el servicio de Continúa leyendo Instalar servidor Nginx con PHP en Debian 11