Acceso SSH externo a los servidores, con el nombre de dominio publico #23

Closed
opened 2024-11-04 20:28:34 +00:00 by Numerica · 14 comments
Owner

Acceder por SSH desde fuera con el nombre de dominio, a traves del proxy (Nginx ?) tiene varias ventajas

  • simplifica la necesidad de añadir las terminales al vpn
  • simplifica las configuraciones de Abra (no hay que distinguir cuando poner .comun y cuando .abyaya.la)
  • la no corresponedencia entre host y dominio provoca a veces errores en coopcloud (errores que dicen algo asi como. "la IP del servicio no matchea con el Domain")
  • no es necesario estar modificando el /etc/hosts
    Ej.
$ ssh pilmaiken.abyaya.la

Esto funciona en Nginx con un servidor (especificando ususario y otro puerto, distinto del 22)

PERO con mas de un servidor se confunde, enviando el stream al primero. Posiblemente sea porque el protocolo no carga el HOSTNAME por lo que el Proxy no sepa distinguir a qué servidor va. (a probar)

Un workaround podria ser asignar puertos distintos a cada servidor en el proxy, o si Nginx es el que no puede, usar otro proxy SSH, ojala en un unico puerto.

Acceder por SSH desde fuera con el nombre de dominio, a traves del proxy (Nginx ?) tiene varias ventajas - simplifica la necesidad de añadir las terminales al vpn - simplifica las configuraciones de Abra (no hay que distinguir cuando poner .comun y cuando .abyaya.la) - la no corresponedencia entre host y dominio provoca a veces errores en coopcloud (errores que dicen algo asi como. "la IP del servicio no matchea con el Domain") - no es necesario estar modificando el /etc/hosts Ej. ``` $ ssh pilmaiken.abyaya.la ``` Esto funciona en Nginx con un servidor (especificando ususario y otro puerto, distinto del 22) PERO con mas de un servidor se confunde, enviando el stream al primero. Posiblemente sea porque el protocolo no carga el HOSTNAME por lo que el Proxy no sepa distinguir a qué servidor va. (a probar) Un workaround podria ser asignar puertos distintos a cada servidor en el proxy, o si Nginx es el que no puede, usar otro proxy SSH, ojala en un unico puerto.
Author
Owner

Comentamos que en caso de habilitarlo, hay que deshabilitar el login con password en los servers, solo dejando el login con llave SSH

Comentamos que en caso de habilitarlo, hay que deshabilitar el login con password en los servers, solo dejando el login con llave SSH
Author
Owner

Cuando se logra, para cambiar la configuraciones hay que

  • Añadir el servidor con abra s add xxx.abyaya.la
  • Mover los archivos de configuracion de un server al otro en la carpeta .abra
$ mv ~/.abra/servers/xxx.comun/* ~/.abra/servers/xxx.abyaya.la/

Y ya se pueden ejecutar comandos abra normalmente

Cuando se logra, para cambiar la configuraciones hay que * Añadir el servidor con ```abra s add xxx.abyaya.la``` * Mover los archivos de configuracion de un server al otro en la carpeta **.abra** ``` $ mv ~/.abra/servers/xxx.comun/* ~/.abra/servers/xxx.abyaya.la/ ```` Y ya se pueden ejecutar comandos abra normalmente
Owner

solo dejando el login con llave SSH

creo que es importante por seguridad pero hay que agregar en la planificacion la generacion de llaves y como mantenerlas seguras

> solo dejando el login con llave SSH creo que es importante por seguridad pero hay que agregar en la planificacion la generacion de llaves y como mantenerlas seguras
Numerica added the
prioridad alta
proxy
labels 2025-06-25 17:25:07 +00:00
Owner

habiamos hablado de usar tmate para tener sesión remota por ssh y web, sin necesidad de llaves ni contraseñas? claro que la url pasa a ser ultra secreta, sino da acceso a todo.

estoy pensando que en #54 el initramfs en vez de tener red+ssh+vpn, puede tener red+tmate y solo hay que saber la url para poder entrar y escribir la contraseña. tmate tambien soporta dar acceso a algunas llaves ssh, asi que tambien resolveria temas de acceso.

habiamos hablado de usar [tmate](https://tmate.io/) para tener sesión remota por ssh y web, sin necesidad de llaves ni contraseñas? claro que la url pasa a ser ultra secreta, sino da acceso a todo. estoy pensando que en #54 el initramfs en vez de tener red+ssh+vpn, puede tener red+tmate y solo hay que saber la url para poder entrar y escribir la contraseña. tmate tambien soporta dar acceso a algunas llaves ssh, asi que tambien resolveria temas de acceso.
Owner

o sea el proxy reverso para ssh es un servidor de tmate en el proxy y las huertas tienen abierta una sesión permanente al proxy, sea desde el initramfs o desde el sistema ya booteado. les compas pueden tener "contraseña" solo sabiendo y compartiendo la url de tmate y/o acceso permitido solo a poques, teniendo llave ssh

o sea el proxy reverso para ssh es un servidor de tmate en el proxy y las huertas tienen abierta una sesión permanente al proxy, sea desde el initramfs o desde el sistema ya booteado. les compas pueden tener "contraseña" solo sabiendo y compartiendo la url de tmate y/o acceso permitido solo a poques, teniendo llave ssh
Author
Owner

No lo sé Rick. No estaremos mezclando mucho el gaspacho?

Por otro lado, tendríamos que tener un Tmate propio, y veo que no está en coopcloud

No lo sé Rick. No estaremos mezclando mucho el gaspacho? Por otro lado, tendríamos que tener un Tmate propio, y veo que no está en coopcloud
Owner

el proxy tampoco usa coopcloud, aunque podría hacer una receta. lo que me preocupa es que no tenga versiones hace 3 años, aunque en los issues el desarrollador parece que responde.

el cliente de tmate en las huertas corre como usuario del sistema (administradora o lo que le pongamos).

el proxy tampoco usa coopcloud, aunque podría hacer una receta. lo que me preocupa es que no tenga versiones hace 3 años, aunque en los issues el desarrollador parece que responde. el cliente de tmate en las huertas corre como usuario del sistema (`administradora` o lo que le pongamos).
Owner

bueno, igual con dropbear en el initramfs y proxy reverso + puerto asignado estaríamos bien igual para desbloqueo remoto

bueno, igual con dropbear en el initramfs y proxy reverso + puerto asignado estaríamos bien igual para desbloqueo remoto
Author
Owner

que sea tmate o Nginx es aparte del desbloqueo remoto, no? quiero decir, igual para iniciar tmate antes hay que iniciar el sistema, con la contraseña de cifrado

tampoco estoy seguro si entiendo bien si el cliente tmate correria en cada huerta o uno solo en el proxy? en el segundo caso estarian damos a todxs acceso al proxy..

de todas maneras seria interesante hacer una prueba de esto para entenderlo bien,

que sea tmate o Nginx es aparte del desbloqueo remoto, no? quiero decir, igual para iniciar tmate antes hay que iniciar el sistema, con la contraseña de cifrado tampoco estoy seguro si entiendo bien si el cliente tmate correria en cada huerta o uno solo en el proxy? en el segundo caso estarian damos a todxs acceso al proxy.. de todas maneras seria interesante hacer una prueba de esto para entenderlo bien,
Owner

el server tmate o nginx hacen de proxy reverso en el proxy para todas las huertas. o sea el cliente tmate se conecta al proxy y vos como amikiur te conectas por ssh/https al proxy, que te conecta transparentemente a la huerta.

la relación con el cifrado es que para desbloquear el disco cifrado necesitás que la huerta, desde el booteo, esté conectada a la vpn, para que el proxy se pueda conectar a través de nginx. con tmate en el initramfs, reemplazamos tener la vpn ahi también.

ahora me doy cuenta que reduce el riesgo de tener la llave privada de la vpn en el initramfs.

si queres probarlo, instalate tmate, correlo nomás con tmate, copia las direcciones que te muestra en la pantalla y probalas desde otra computadora

el server tmate o nginx hacen de proxy reverso **en el proxy** para todas las huertas. o sea el cliente tmate se conecta al proxy y vos como amikiur te conectas por ssh/https al proxy, que te conecta transparentemente a la huerta. la relación con el cifrado es que para desbloquear el disco cifrado necesitás que la huerta, desde el booteo, esté conectada a la vpn, para que el proxy se pueda conectar a través de nginx. con tmate en el initramfs, reemplazamos tener la vpn ahi también. ahora me doy cuenta que reduce el riesgo de tener la llave privada de la vpn en el initramfs. si queres probarlo, instalate tmate, correlo nomás con `tmate`, copia las direcciones que te muestra en la pantalla y probalas desde otra computadora
Numerica was assigned by fauno 2025-07-30 15:27:35 +00:00
fauno added the
hacer
label 2025-07-30 15:39:55 +00:00
fauno added
testear
and removed
hacer
labels 2025-10-01 11:08:21 +00:00
Owner

@Numerica fijate que te comenté el pr

@Numerica fijate que te comenté el pr
Author
Owner

Reabierto por causa de b7139145dc

Reabierto por causa de b7139145dcb7fac2473b2da9158ebdf35569a7c5
Numerica reopened this issue 2025-11-20 17:30:33 +00:00
Author
Owner

El bug se reproduce cuando es un servicio que no tiene definido ports (el puerto SSH especifico de cada server)

El bug se reproduce cuando es un servicio que no tiene definido _ports_ (el puerto SSH especifico de cada server)
Numerica referenced this issue from a commit 2025-11-20 19:56:48 +00:00
Author
Owner

Con eso saltea si el service no tiene ports

En todo caso cada huerta debiera tener su puerto SSH diferente

Con eso saltea si el service no tiene ports En todo caso cada huerta debiera tener su puerto SSH diferente
Sign in to join this conversation.
No description provided.