Ene 30 2014

(Y un día conocí a) Mosh, la evolución móvil de SSH

Gabolonte Blasfemus

moshEs increíble como uno de los antes y después de comenzar a laburar con *nix boxes es que, cuando te querés acordar, respirás la línea de comandos. No me refiero a que te los vas a saber todos de memoria, pero sí a que de repente vas a saber dónde estás más o menos parado y, en caso de que no te acuerdes qué deberías tipear, al menos saber cómo y en dónde buscarlo con confianza. Pero lo que sí se comienza a respirar casi con naturalidad es SSH. SSH para montar una unidad, para ver estadísticas del sistema, para correr scripts; SSH para todo.

No es para menos, es un protocolo muy seguro (si está bien implementado el cliente), podemos redireccionar infinitos puertos para usar túneles seguros y así llegar a cualquier servicio dentro de otra red (como VNC, uno de los primeros usos que todos le damos), y podemos tener tantas terminales abiertas como se nos antoje. Es casi de tereso pedirle más.

Continue reading


Feb 25 2013

Navegación segura desde Android en redes Wi-Fi públicas

Gabolonte Blasfemus

Un túnel VPNSiempre tuve en Geekotic una gran asignatura pendiente con respecto a Android, que algunos lectores me habían solicitado, y esta era ni más ni menos que cómo conectar Android mediante un túnel para saltar la inseguridad implícita que se sufre al estar conectado a través de una red inalámbrica pública como puede ser en un café, hotel o aeropuerto, algo que ya habíamos visto como hacer pero en una PC con Windows. Me resistía a hacerlo porque realmente no existe una respuesta universal y fácil de implementar, sino demasiadas opciones y todas con sus contras y limitaciones. Hoy existen algunas más, y pretendo listarlas a todas para que cada uno decida cuál se le ajusta mejor. Pero antes que nada…

¿Es necesario realmente preocuparse por esto? ¿Que acaso no van todas las conexiones en Android por SSL?

Contestando a la primer pregunta, la respuesta debería ser sí, pero depende del nivel de paranoia/preocupación de cada uno. Sobre la segunda, supuestamente todo va por SSL… hasta que se descubre que no. Además existen los problemas de las autoridades certificantes (CA) comprometidas, algo que no es muy fácil de arreglar en Android. Después, por supuesto, tenemos los protocolos de siempre inherentemente inseguros, como por ejemplo navegar un sitio web donde almacenemos información personal y todo vaya por HTTP, o chequear correo de un servidor por POP3. Todo esto nos lleva a que es verdaderamente necesario preocuparse y tomar precauciones, aunque nos moleste tener que hacer varios pasos extra cada vez que nos conectamos a un hotspot. A continuación voy a detallar las mejores opciones disponibles para establecer una conexión tipo túnel desde un dispositivo Android.

Continue reading


Abr 23 2012

Retomar una sesión SSH de la que nos desconectamos

Gabolonte Blasfemus

si Keanu lo dice por algo seráPor estos días tenía una pequeña duda existencial (no, no de estas): ¿Qué pasaba cuando me desconectaba de una sesión SSH en la que estaba corriendo algo? Bueno, en realidad la respuesta a eso la intuía por experiencia y por mirar: Cuando el cliente se desconecta la sesión, y sus procesos hijos, son eliminados. Más bien mi inquietud era: ¿Existe alguna forma de dejar un proceso corriendo en una sesión, desconectarse y que este continúe ejecutándose, para luego volver a conectarse y resumir dicha sesión?

Pongamos como ejemplo que estamos cursando la carrera de BOFH básico, y hay un luser que nos cae tan pero tan bien que vamos a copiar una de sus copias de seguridad, donde figuran todos esos correos y videos calientes que no le muestra a nadie en la oficina, a una carpeta pública en la red para deleite de compañeros y superiores. Pero el muchacho en cuestión tiene tonelada de material, y es fanático de la alta definición, y nosotros queremos copiarlo todo; si lo hacemos desde una sesión SSH deberíamos tenerla abierta todo el tiempo que la operación de copia dure. Todo un bajón si estamos desde el Wi-Fi de nuestro café favorito y en un rato nos tenemos que ir, ya que si nos desconectamos, como dijimos antes, todos los procesos hijos se matan, entre ellos la copia de archivos que ejecutamos. Lo ideal sería, iniciar la copia ahora desde el café, y cuando lleguemos a nuestro nuevo destino volver a conectarnos por SSH y de alguna manera recuperar esa sesión, que nunca debería haberse anulado, para continuar viendo el proceso, o si ya terminó y todo salió bien.

Desde mi tierna inocencia sospechaba que un mundo tan poderoso a nivel línea de comandos como el de *nix tenía que tener desde hace tiempo una solución a esto, y esa solución es el comando screen. screen mantiene la sesión abierta por nosotros, con el proceso que hayamos lanzado corriendo, aún cuando nos hayamos desconectado. En realidad, screen es una herramienta mucho más poderosa, no pensada únicamente para esto, ya que se trata de un emulador de terminales virtuales desde donde podemos correr varias sesiones separadas de línea de comandos, cada una con su proceso, en simultáneo. Pero para nuestro fin todo lo que tenemos que saber es que tenemos que tipear el comando screen ni bien iniciamos sesión, luego presionar espacio o enter para continuar, y volveremos a la línea de comandos para hacer lo que tengamos que hacer, por ejemplo copiar los videos y mails de nuestro amigo luser. ¿Qué pasa entonces si nos desconectamos de la sesión SSH? screen continúa corriendo esa sesión de consola con el proceso que hayamos lanzado por nosotros. Cuando nos volvemos a conectar por una nueva sesión SSH y deseamos volver a ella, todo lo que tenemos que escribir es screen –r, y la magia sucederá.

la pantalla de inicio de screen

También podemos, como mencioné antes, manejar varias sesiones desde screen. Supongamos que mientras copiamos los videos de nuestro muchacho queremos hacer algo más, como por ejemplo borrarle un documento importante (acción digna de todo BOFH). Con presionar Control+a y luego c, screen creará una nueva sesión y nos posicionará en ella; de esta manera podemos crear tantas como necesitemos. Para luego volver a cada una, podemos presionar Control+a y el número de sesión (comienza desde 0) o simplemente Control+a y luego (comillas dobles) para visualizar un menú desde donde podemos ver las sesiones activas e ingresar a la deseada. Podemos ver la abrumadora lista de completa de atajos y parámetros de línea de comandos en su manpage cuando no tengamos nada que hacer durante una tarde.

image

Seguramente existirán a lo mejor otras formas de acometer el mismo fin propuesto, pero este método me resultó terriblemente cómodo, y para mejor, screen es uno de esos comandos que vienen incluidos en cualquier Linux; no hace falta andar instalando ni mucho menos compilando nada.


Oct 24 2009

Gnome SSH Tunnel Manager, gestionador gráfico de túneles SSH para Linux

Gabolonte Blasfemus

Lanzar una conexión SSH desde Linux no es algo verdaderamente difícil, una vez superado el prurito a recordar/lidiar con un par de argumentos de la línea de comandos; tal vez lo más molesto sea tener que tipear toda la sentencia cada vez que lo necesitamos (aunque podríamos crearnos un script). Una opción más que interesante que un VDLC (Vago de la CLI) como el que escribe puede utilizar en este caso es Gnome SSH Tunnel Manager, o gSTM para abreviar, una aplicación gráfica para el entorno Gnome que permite definir y gestionar la cantidad que se nos plazca de conexiones SSH y los túneles que usaremos en cada una.

image

Todas las opciones y controles son bastante simples y minimalistas, por lo que si sabemos como establecer un túnel SSH al menos desde Putty, no deberíamos tener problemas de hacerlo en gSTM.

Para instalarlo en nuestro sistema Linux podemos bien descargarnos los fuentes para compilar desde su sitio oficial en SourceForge.net o instalarlo directamente a través del administrador de paquetes de la distro que estemos usando; por ejemplo en el caso de Debian y sus derivados como Ubuntu y Mint bastará con un:

(sudo) apt-get install gstm

Una opción muy interesante que esta GUI para SSH presenta además es la posibilidad de marcar las conexiones que deseemos para que se inicien automáticamente, ideal para su uso continuo y rutinario como por ejemplo para navegar de manera segura desde redes Wi-Fi públicas.

No podía recordar donde lo había visto, y después de haber buscado infructuosamente en el buscador de blogs y en el Reader de Google recordé que me enteré gracias a este comentario en D3ny4all.


Jul 11 2009

MobaSSH, nuevo servidor SSH para Windows

Gabolonte Blasfemus

El protocolo SSH es uno de los más versátiles que existe, y una vez que se lo aprende a usar el encariñamiento tiende a ser tan grande que lo queremos tener en todos lados, ya que podemos disponer no sólo de clientes de PC, sino también para Windows Mobile, Palm OS, o incluso J2ME para su ejecución en cualquier celular, entre tantas otras plataformas. Pero tampoco faltan servidores, ya que por el lado de *nix tenemos al ubicuo OpenSSH incorporado en todos los sistemas, mientras que en Windows podemos disponer del muy fácil de utilizar FreeSSHd y de varias alternativas basadas en CygWin, lo cual, aunque nos da opciones, tampoco son demasiadas en realidad, y es por eso que es de agradecer que aparezcan nuevas.

imageMobaSSH viene a ocupar ese puesto de servidor SSH nativo para Windows alternativo al mencionado FreeSSHd, haciendo alarde al igual que en este último de una interfaz gráfica simple y fácil de utilizar. Enfocado principalmente para tareas de administración de sistemas, es posible la instalación automatizada de este servidor SSH mediante un script automatizado, además de contar con algunas herramientas de línea de comando para extraer información tanto del hardware como del software del equipo en el que corre.

MobaSSH está disponible tanto en una versión Home gratuita como en una Professional que cuesta $49 USD. Las diferencias entre una y otra podemos verlas en una tabla comparativa presente en la misma página de descarga del software, aunque la versión gratuita cuenta con todo lo necesario para comenzar a utilizarlo sin limitaciones de tiempo.

Vía Windows Reference.