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

Escribir letras especiales del esperanto con teclado español en GNU/Linux

En la distribución del teclado española por defecto no se puede escribir la ŭ del esperanto, pero sí las ĉ, ĝ, ĥ, ĵ y ŝ, pulsando ^ y la letra correspondiente (c, g, h, j o s).

Puedes seleccionar una distribución de teclado para el esperanto y alternar entre esta y la distribución española para no tener que pulsar varias teclas a la vez cuando escribes en esperanto. Sin embargo, si solo escribes esporádicamente en esperanto, quizás te resulte más sencillo escribir esos caracteres especiales con combinaciones de teclas. Vale, ¿pero cómo escribes la ŭ?

En el algunos entornos de escritorio existe la opción de habilitar las teclas especiales del esperanto. En Cinnamon hay que ir a la configuración del teclado, ir a Distribuciones, pulsar en Opciones..., desplegar Letras en esperanto con superíndices y seleccionar A la tecla correspondiente en un teclado QWERTY1, como se muestra en la siguiente imagen:

Si no encuentras la opción y estás usando el gestor de ventanas X en GNU/Linux, como es el caso de la mayoría de distribuciones de GNU/Linux, puedes ejecutar la siguiente instrucción:

setxkbmap -option esperanto:qwerty

Una vez hecho esto, para escribir la ŭ bastará con pulsar AltGr y u. Para hacer esos cambios permanentes, puedes añadir el comando anterior al archivo .xprofile2.

Otra opción es usar la tecla Componer.


  1. Si usas la distribución de teclado Dvorak o Colekam, no deberás marcar opción de QWERTY, sino la opción con el nombre de la distribución de teclado que usas. 

  2. Si el archivo no existe, deberás crearlo. Básicamente, los archivos ~/.xprofile (para tu usuario) y /etc/xprofile (para todo el sistema) permiten ejecutar comandos al comienzo de la sesión de usuario del servidor X

diff para imagenes en Git

El diff predeterminado de Git no muestra diferencias entre imágenes. Es normal: no está pensado para eso. Sin embargo, estaría genial que Git mostrase los cambios de imágenes como los de código, ¿no? Al menos algo más bonito que...

$ git diff
diff --git a/es-ES/images/autobuilder.png b/es-ES/images/autobuilder.png
index 6f5f6eb..6f0dd78 100644
Binary files a/es-ES/images/autobuilder.png and b/es-ES/images/autobuilder.png differ

Algo como esto...

Eso lo he hecho usando un guion que usa la librería imagemagick para comparar imágenes. Aquí te enseño cómo hacer lo mismo.

Continúa leyendo diff para imagenes en Git