Aplicaciones Seguras de SSH

Publica una aplicación de terminal por SSH y hazla inaccesible a un shell para que los usuarios solo ejecuten la app y aumenten la seguridad.

1 sept 2025 • 5 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Las aplicaciones modernas suelen apoyarse en interfaces gráficas y la web, pero las aplicaciones de línea de comandos siguen siendo esenciales. El acceso por SSH ofrece una forma ligera, rápida y eficiente de interactuar con programas en terminal. El riesgo aparece cuando una configuración descuidada permite que el usuario obtenga un shell sin restricciones, algo que con frecuencia no es el objetivo. En este artículo aprenderás a publicar una aplicación de terminal accesible por SSH y a blindarla para que los usuarios solo puedan usar la aplicación, sin posibilidad de escapar al shell.

Contenido

1. Qué es una aplicación de shell por SSH

2. Preparación de la aplicación

3. Configuración de SSH para lanzar la aplicación

4. Consideraciones sobre acceso por consola y su

5. Resumen y siguientes pasos

Qué es una aplicación de shell por SSH

Una aplicación de shell por SSH es un programa de terminal al que el usuario se conecta de forma remota mediante un cliente SSH. Es ideal cuando se requiere bajo consumo de recursos, velocidad y robustez, o cuando montar una interfaz web es excesivo. Clientes como PuTTY, Termius o las terminales nativas de Linux y macOS permiten un acceso ágil y con menos dependencias del entorno del usuario, aportando además separación y seguridad.

El reto es impedir que el usuario abandone la aplicación y caiga en un shell interactivo. Sin una contención adecuada, un error o una combinación de teclas podrían derivar en acceso a la línea de comandos del sistema.

Preparación de la aplicación

Supongamos una aplicación Python ubicada en la ruta del sistema linux en opt test_app app_entrypoint.py. Para minimizar vías de escape conviene manejar señales y entradas especiales del terminal. Desactiva el efecto de Ctrl más C y Ctrl más Z ignorando las señales de interrupción y suspensión del terminal, y captura el intento de fin de entrada que se produce con Ctrl más D finalizando la app de forma limpia y cerrando la sesión SSH. Así, si el usuario intenta salir abruptamente, no quedará un shell abierto.

Si no puedes modificar el código principal por tratarse de un binario de terceros o un script legado, emplea un wrapper o lanzador intermedio. Este wrapper puede configurar el entorno del terminal, aplicar políticas de señales, validar variables de entorno y ejecutar el binario objetivo. La idea es que el control y las restricciones se apliquen antes de invocar la aplicación real.

Configuración de SSH para lanzar la aplicación

Existen dos enfoques comunes. El primero es invocar la aplicación desde los scripts de login del usuario como bashrc o profile. El segundo, más limpio y seguro, es forzar el comando desde la configuración del demonio SSH.

Procedimiento recomendado

1. Crea un grupo del sistema por ejemplo app_group para los usuarios de la aplicación.

2. En el archivo de configuración etc ssh sshd_config define una regla Match Group para ese grupo. Dentro de esa sección establece ForceCommand apuntando al ejecutable o script de tu aplicación. Habilita el uso de TTY para permitir interacción y desactiva el reenvío de puertos y el reenvío X11 para evitar usos indebidos como jump host. En términos prácticos, los parámetros a fijar son ForceCommand con la ruta absoluta de la app, PermitTTY en yes, AllowTcpForwarding en no y X11Forwarding en no.

3. Asegúrate de que el ejecutable tiene permisos de ejecución y un intérprete correcto en la primera línea si procede. Verifica propietarios y permisos para evitar modificaciones no autorizadas.

4. Añade los usuarios que deban usar la app al grupo app_group. Quien no pertenezca a ese grupo seguirá entrando con su shell normal sin verse afectado.

Con esto, cada sesión SSH de los miembros del grupo lanzará la aplicación directamente. Al cerrarse la app, la sesión SSH finaliza sin pasar por un shell.

Consideraciones sobre acceso por consola y su

Aunque el acceso por SSH quede acotado, todavía podrían existir vías como el inicio de sesión en consola local o el uso de su menos nombre_usuario. Para proteger estos casos, añade una verificación en el bashrc del usuario de la aplicación que compruebe la variable de entorno SSH_CONNECTION. Si la variable está vacía significa que la sesión no proviene de SSH y debe cerrarse inmediatamente. De esta forma bloquearás inicios de sesión directos y movimientos laterales a ese usuario mediante su.

Refuerzos adicionales

Estudia restringir el uso de herramientas que puedan abrir shells como editores, paginadores o utilidades con escapes. Considera políticas de solo lectura en sistemas de archivos cuando aplique, y revisa umasks, variables de entorno y PATH minimalista. Si usas claves públicas, puedes complementar con la directiva command en authorized_keys junto con no-pty, no-agent-forwarding y no-port-forwarding para cuentas robóticas o casos de uso muy cerrados. Para escenarios de máxima separación, evalúa chroot, contenedores ligeros o namespaces.

Resumen

Has visto cómo 1 crear o adaptar una aplicación de terminal resistente a señales y entradas especiales 2 obligar el lanzamiento de la app desde SSH con ForceCommand y una regla por grupo 3 evitar escapes al shell y bloquear entradas que no pasen por SSH 4 complementar con buenas prácticas de hardening. Todo ello reduce la superficie de ataque y aporta una capa clave de ciberseguridad. La seguridad se construye por capas y si un usuario no necesita shell, el sistema no debería concederlo.

Somos Q2BSTUDIO, especialistas en aplicaciones a medida y software a medida, inteligencia artificial, ciberseguridad, automatización y más. Diseñamos soluciones seguras de extremo a extremo, desde la definición funcional hasta la operación en producción, incluyendo servicios cloud aws y azure, servicios inteligencia de negocio y power bi, ia para empresas y agentes IA. Si buscas una estrategia sólida de seguridad y gobernanza para tus aplicaciones y datos, puedes conocer nuestros servicios de ciberseguridad y auditoría en el enlace ciberseguridad y pentesting. Y si necesitas una plataforma robusta y escalable para tu producto, descubre nuestro enfoque de desarrollo de software y aplicaciones a medida.

Conclusión práctica

Define una app autocontenida, manéjala como único punto de entrada por SSH y reduce al mínimo los permisos y vías de escape. Esta arquitectura es rápida de implementar, fácil de mantener y aporta valor inmediato en escenarios de soporte, terminales remotos y automatización segura.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat