[LUG.ro] Rediccionar SSH según dominio

Iván Ramello ivanramello en gmail.com
Lun Sep 5 20:08:17 ART 2011


El día 16 de agosto de 2011 16:31, Maximiliano Sampirisi - Austral OMI
SA <msampirisi en australomi.com.ar> escribió:
> El 16/08/11 00:47, Guido escribió:
>>
>> El 15 de agosto de 2011 22:48, Sebastian Dominguez
>> <sebaminguez en gmail.com>escribió:
>>
>>> El 15/08/11 12:39, Guido escribió:
>>>
>>>> Hola a todos,
>>>>
>>>> Les escribo con la siguiente duda:
>>>>
>>>> Situación:
>>>> * Máquina física con una IP pública
>>>> * Máquina Virtual alice. Entrada en dns alice.com apuntando a la IP
>>>> pública
>>>> * Máquina Virtual bob. Entrada en dns bob.com apuntando a la IP pública
>>>>
>>>> Necesidad:
>>>>
>>>> Hacer ssh alice.com y llegar directo a alice
>>>> Hacer ssh bob.com y llegar directo a bob
>>>>
>>>> Posible solución:
>>>>
>>>> Forward de puerto 2222 de la pública a 22 de alice
>>>> Forward de puerto 2223 de la pública a 22 de bob
>>>>
>>>> Esta solución es clásica y la puedo usar pero no es lo que busco.
>>>>
>>>>
>>>> Lo que busco:
>>>>
>>>> En la pc física tengo un apache con virtual hosts para alice.com y
>>>> bob.comapuntando a los puertos 80 respectivamente, lo que busco
>>>>
>>>> es algo igual pero en lugar de http, ssh.
>>>>
>>>> Info:
>>>> Busqué información para saber si con squid podría hacerlo, aunque
>>>> debería
>>>> hacer que escuche en internet y no me convence, además de que no veo
>>>> como
>>>> prodría ayudarme realmente.
>>>> Con iptables intenté algunos comandos pero no logré mi cometido.
>>>>
>>>>
>>>> Alguien hizo algo similiar?
>>>> Alguna herramienta que puedan recomendarme?
>>>> Alguna Idea?
>>>>
>>>> Nota: Todo esto funcionando con Debian
>>>>
>>>> Muchas Gracias de ante mano, saludos
>>>>
>>>>  Hasta donde se, tenes solo dos opciones.
>>>
>>> - Un proxy reverso SSH (que no conozco exista)
>>>
>> No vi nada sobre un proxy reverso SSH, aunque te aseguro busqu'e bastante
>> jeje
>>
>>
>>> - Usar layer 7 como mencionas por ahí.
>>>
>>> El problema con layer 7 es que el filtro actual solo reconoce que la
>>> conexión es del tipo SSH
>>> http://l7-filter.sourceforge.**net/protocols<http://l7-filter.sourceforge.net/protocols>.
>>> Si bien con layer 7 podes ver los campos, el filtro actual no los tiene en
>>> cuenta.
>>>
>> Sabes, estuve viendo como hacerlo, layer7 fue uno de mis primeros intentos
>> de soluci'on, pero por ahi comentaron algo que no vi en un principio, pero
>> muy cierto, el dato que me serviria es el dominio que se resolvi'o para
>> llegar a la pc... cosa que no tengo desde un principio, ya que al momento
>> de
>> iniciar la conexi'on ssh el cliente ya resolvi'o la direcci'on ip y le
>> apunta directo...
>>
>> Resumiendo, haga lo que haga, todo indica que en el server no voy a ver
>> mas
>> que una conexi'on al puerto 22 con destino mi IP p'ublica y nunca con
>> destino el nombre de dominio no resuelto...
>>
>>
>>> Para hacer lo que necesitas tendríamos que escribir un nuevo patrón que
>>> identifique tus dominios o, mejor aún, que permita colocar el dominio
>>> como
>>> parámetro.
>>> http://l7-filter.sourceforge.**net/Pattern-HOWTO<http://l7-filter.sourceforge.net/Pattern-HOWTO>
>>>
>> Suena a propuesta, no? jejeje si se te ocurre que esto puede ser una
>> soluci'on, o puede ser un desarrollo interesante podemos hacer algo...
>>
>> Hice algunos intentos con pcapy para intentan forzar una redirecci'on
>> dados
>> ciertos datos del paquete, pero nada fruct'ifero... no fue el destino no
>> resuelto... mi destino es la ip p'ublica siempre
>>
>>
>>> Un abrazo!
>>>
>> Otro Seba...
>>
>>
>> PD: Perdon por los tildes mal puestos, tengo un teclado en ingl'es en este
>> momento
>>
>>>
>>> --
>>> Sebastian A. Dominguez
>>> Imagen de Seba
>>> http://odiolasllaves.com.ar
>>>
>>> ______________________________**_________________
>>> Lugro mailing list
>>> Lugro en lugro.org.ar
>>>
>>> http://lugro.org.ar/mailman/**listinfo/lugro<http://lugro.org.ar/mailman/listinfo/lugro>
>>>
>>
>>
>
> Despues de leer todo lo que te escribieron y escribiste, se me ocurren dos
> soluciones para el manejo del ssh de los servidores internos de una forma
> bastante transparente :
> 1. Instalas el webadmin en cada servidor interno, y en el servidor externo
> armas las redirecciones pertinentes. con la extension de ssh client, haces
> un ssh internamente desde la pagina web, con lo que, podes hacer casi todo
> lo que haria con el ssh.
> 2. Habilitar el servidor externo para recibir conexiones externas y luego,
> en base al usuario que se conecto, disparar un script que fuerce una
> conexion ssh internamente.
>    por ejemplo, se crea en el servidor externo el usuario
> "administrador_bob.com", luego, dentro del mismo mismo servidor, en el
> script de inicio del shell que ese usuario tenga creado, se cargan dos
> comandos "ssh administrador en ip_interna_de_bob.com" y luego "exit".
>    al momento de conectarte al servidor externo, se dispara la conexion
> interna, y se entra al mismo.
>    cuando esa sesion de ssh es finalizada, se finaliza la que se tiene en el
> servidor externo.
>    No es un deschave de seguridad, pero si esta bien configurado el servidor
> externo, es muy dificil que se pueda hacer algo que no sea acceder al
> servidor interno.
>
> Una muy buena solución seria poder analizar el header en la conexión entre
> el cliente y el usuario, y reescribir el sshd para que funcione en dos modos
> : proxy y servidor, pero, eso creo que seria mucho mas de lo que estas
> dispuesto a invertir.
>
> Saludos
>
> Maximiliano
> _______________________________________________
> Lugro mailing list
> Lugro en lugro.org.ar
> http://lugro.org.ar/mailman/listinfo/lugro
>

Hola Guido, nos conocemos? :P
Perdón por la respuesta tardía, lo que pasa es que leo los mails de la
lista de vez en cuando, y hace como 2 semanas que no lo hacía.
Algo que resolvería tu problema sería encapsular ssh en http para
aprovechar el vhost en el protocolo http (obviamente si, en donde en
éste momento estás redireccionando con iptables, podés ejecutar un
servidor web).
No sé hasta que punto sería viable ésta solución para vos, porque
implica instalar, por ej, un proxytunnel en el cliente (viene para win
y linux) y agregar 4 lineas en .ssh/config o apenas tocar el putty; y
leí anteriormente que debería ser totalmente transparente para el
cliente (igual no se distingue en absoluto en el cliente, sólo se
especifica que use el túnel-proxy). Pero bueno, simplemente tirártelo
como opción, a lo mejor te sirve; nunca lo hice pero no parece ser
complicado.
Espero que andes bien por allá.
Suerte! Un abrazo.

Iván


Más información sobre la lista de distribución Lugro