Cómo montar un Laboratorio de Pruebas con Terminal Web usando Docker, ttyd y Nginx
En este tutorial aprenderemos a crear un entorno seguro y aislado (Sandbox) que permite acceder a una terminal de Linux desde el navegador. Es ideal para que terceros (clientes o soporte técnico) realicen pruebas sin comprometer la seguridad del servidor principal.
1. La Arquitectura
Para este despliegue utilizamos tres capas de seguridad:
- Docker: Crea un contenedor (Alpine Linux) donde ocurre todo. Si algo sale mal, el host queda intacto.
- ttyd: Herramienta ligera que convierte la terminal en una interfaz web.
- Nginx: Actúa como proxy inverso, aporta HTTPS y una URL amigable.
2. Paso 1: Crear el Contenedor de Sacrificio
Creamos un contenedor llamado laboratorio.
Usamos un volumen en modo solo lectura para que el usuario externo no pueda modificar archivos.
# Crear el contenedor con un volumen de solo lectura
docker run -d \
--name laboratorio \
-v /ruta/a/tus/archivos:/data:ro \
alpine tail -f /dev/null
3. Paso 2: Preparar el entorno (Opcional)
Si el laboratorio necesita herramientas específicas (por ejemplo OpenSSL), las instalamos directamente dentro del contenedor.
docker exec -it laboratorio apk add openssl
4. Paso 3: Lanzar la Terminal Web con ttyd
ttyd será el puente entre Docker y el navegador.
Apuntamos directamente al contenedor y entramos en la carpeta compartida.
# Lanzar ttyd en el puerto 8080
# -w /data: entra directo en la carpeta compartida
# -c usuario:password (opcional) para auth básica
ttyd -p 8080 docker exec -it -w /data laboratorio sh
5. Paso 4: Configuración del Proxy Inverso en Nginx
Para exponer la terminal de forma segura en una URL como
https://tu-dominio.com/pasarela/, configuramos Nginx:
location /pasarela/ {
proxy_pass http://127.0.0.1:8080/; # Importante la barra final
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
sudo systemctl restart nginx
6. Caso de Uso: Validación de Certificados P12
Este laboratorio es ideal para resolver disputas técnicas. Un cliente puede ejecutar directamente:
openssl pkcs12 -info -in archivo.p12 -noout -passin pass:CONTRASEÑA
MAC verify error,
queda demostrado que el archivo o la contraseña son incorrectos
en un entorno Linux estándar.
7. Ventajas de este método
- Aislamiento: El usuario nunca accede al sistema operativo real.
- Sin instalación: El cliente solo necesita un navegador.
- Transparencia: Ambas partes ven el mismo resultado técnico.
Consejos finales para tu blog
- Seguridad: Al terminar la prueba, cierra ttyd para no dejar una terminal expuesta.
- Personalización: Puedes usar cualquier imagen Docker: Ubuntu, Python, Node.js, etc.
Comentarios
Publicar un comentario