Community Geek Tech

PuTTY desde el punto de vista de la monitorización

noviembre 11, 2020

PuTTY desde el punto de vista de la monitorización

This post is also available in : Inglés

Qué es PuTTY y algunos consejos útiles para utilizarlo fácilmente

PuTTY es un programa sin coste (licencia MIT) para arquitecturas x86 y AMD 64 (ahora en fase experimental para ARM). Fue desarrollado ¡en 1997! por Simon Tatham, programador británico, por lo que su nombre de pila carece de tilde alguna. En este blog llevamos varios años reseñando este útil programa, e incluso el equipazo de Pandora FMS lo ha ratificado justo ahora en 2020, en la lista de comandos de red para Microsoft Windows® y GNU/Linux®. ¿Que si merece su propio artículo? Leed y juzgad.

Antes de GNU/Linux®

Para los lectores que nos visitéis por primera vez (bienvenidos todos) os relato que, cuando yo comencé a dar golpes a los teclados, el señor Linus Torvalds ni siquiera había comenzado a estudiar en la Universidad de Helsinki, en su país natal, Finlandia. Dejando aparte mi edad, ni siquiera teníamos entorno gráfico en nuestros ordenadores, tal como los conocemos hoy en día. Cada programa se las arreglaba como podía, haciendo llamadas directamente al hardware, que era costoso y primigenio, lo que a su vez no permitía sistemas operativos más poderosos.

La línea de comandos o ventana terminal era la que usábamos para casi todo y cuando llegaron los sistemas operativos con interfaz gráfica, este recurso quedó relegado a comunicar los ordenadores en red, dado su poco coste en cuanto a la transmisión de datos y su poderoso uso (por ejemplo, con un solo comando podemos apagar o reiniciar un equipo, y muchas otras cosas más). Lo sorprendente es que incluso hoy en día ese esquema de trabajo lo seguimos usando, y en materia de monitorización más todavía.

El mundo de los ordenadores hoy en día

Desde el nacimiento de GNU/Linux® su nicho natural fue el sector de los servidores, especialmente los servidores web. Para el año 2012 el equipo de Pandora FMS, con buen ojo avizor, notó la irrupción de Android® en la informática y bien sabemos que hoy en día la cantidad de teléfonos móviles con dicho sistema operativo supera con mucho al resto de los dispositivos.

Ah, casi lo olvido, Android® es un GNU/Linux® un tanto extraño, porque los fabricantes y operadoras telefónicas no nos dejan usar como usuario raíz o root user nuestros «propios» equipos. Dejando a un lado el advenimiento de la tecnología 5G y los nuevos sistemas operativos para móviles, Android® no tiene mayor problema para descargar multitud de aplicaciones, para conectar a nuestros queridos y preciados servidores con GNU/Linux (administración, monitorización).

La plataforma Windows® aún conserva una poderosa tajada en sistemas de escritorio (más que todo por su uso en videojuegos). Para las tareas de administración y/o monitorización con un puñado de aplicaciones que adquiramos es más que suficiente. Aquí es donde PuTTY, una herramienta libre escrita en lenguaje C, entra en escena. En idioma inglés putty significa masilla para ventanas o mástique (también existe en juguetes para niños, algo así como plastilina). Sospecho que el nombre de PuTTY viene a ser el complemento de getty (abreviatura de get TTY) un programa escrito en Unix por Wietse Zweitze Venema (coautor del famoso servidor de correo electrónico Postfix) y portado a GNU/Linux. En ambos mundos, el programa getty tiene la función de detectar una conexión, solicitar credenciales de usuario y proceder a su autentificación. PuTTY sería entonces, imagino yo, una abreviatura para put TTY. Tengamos en cuenta también que TTY es la abreviatura de TeleTYpewriter, los primeros aparatos basados en una máquina de escribir pero conectados eléctricamente para eso: enviar y recibir mensajes escritos por telégrafo (Télétype® o teletipo).

Por supuesto que PuTTY no es el único -ni será el último- que podemos utilizar para nuestros telemenesteres: reconozco que Cmder es un programa también muy útil que engloba más para Windows®: cmd, Powershell® y SSH. Pero esa, señoras y señores, esa es otra historia.

putty
PuTTY main screen

EU-FOSSA 2

European Union Free and Open Source Software Auditing project (el Proyecto de Auditoría de Software Libre y de Código Abierto de la Unión Europea) incluyó a PuTTY, en 2019, en el programa de recompensas para cazar errores de software (en inglés bug bounty), lo que considero demuestra su importancia para el mundo informático.

Hasta la fecha, la Comisión Europea ha comprometido 320 mil euros en pagos de recompensa (hasta 10 mil euros por desvelar algún error de software) en su proyecto, y para el caso de PuTTY (enero a julio de 2019) se realizaron 34 reportes que fueron recompensados en un promedio de 285 euros cada uno (calculo más de veinte mil euros en total, el mayor premio fue de 6.772,08 euros). Con semejantes incentivos estuvo claro que la versión 0.71 nació expresamente por la iniciativa de Europa toda, considerando a PuTTY un bien común. En este artículo hablo de la versión más reciente, la 0.74 y, si se quiere así, rindo mi homenaje.

El capital humano

Si bien el dinero es importante, nosotros los seres humanos somos aún más importantes, ya que nosotros somos portadores de símbolos y los que le damos sentido a este Universo. PuTTY tiene, aparte de Simon Tatham, un pequeño pero muy selecto grupo de desarrolladores:

  • Alexandra Lanes: revisora de código y que… responde los correos electrónicos dirigidos al desarrollo. Sí, después del programa de recompensa por reportar errores, auspiciado por la Comisión Europea, volvieron a su esquema anterior de recibir toda mejora, crítica, comentario, etc., por mensajería electrónica. La vieja escuela, pues.
  • Jacob Nevins: coadyuva a recibir el correo electrónico, y a veces también codifica.
  • Ben Harris: con serios estudios de codificación de caracteres, ayuda en el proceso de portar a otras plataformas.

En detalle, ¿qué hace PuTTY por nosotros?

No preguntéis eso, preguntad qué podemos hacer nosotros con PuTTY. Dicho mal y rápido, PuTTY convierte nuestro poderoso ordenador con ene núcleos e ingente cantidad de memoria RAM (con espacio en disco a cascoporro y un monitor que haría palidecer al mismísimo director de cine George Lucas) en… una tonta ventana terminal. Sí, a veces las pequeñas cosas hacen labores titánicas, ¡y también viceversa!

Lo de la terminal tonta no lo toméis a mal, la denomino así porque todo lo que escribimos de este lado es enviado a una máquina Unix o Linux (esto se acostumbra en abreviar como *nix) y todo lo que emite allá se refleja en nuestra pantalla.

A un más alto nivel (y respeto esa opinión) hay quienes piensan que los computadores personales han muerto… Visto todo de esta manera cualquiera diría que tira pa’lante que esta entrada en el blog ha terminao, pero esperad, aún hay varias cosillas más.

putty
PuTTY special commands for SSH

Características de PuTTY

  • PuTTY, por defecto, nos comunicará por medio de SSH de forma segura, con certificados (llave pública y privada), aunque si queremos saltarnos la seguridad deberemos solicitar de manera explícita el SSH-1.
  • PuTTY tiene su propio formato (PuTTY Private Key o PPK) para almacenar la llave pública sin cifrar en nuestro disco pero con la garantía del Código de Autentificación de Mensaje (Message Authentication Code o MAC -sí, otro acrónimo repetido más-). Eso quiere decir que necesitamos de un paso extra si ya teníamos un certificado hecho para OpenSSH, que es la norma de facto actual. Por lo demás, PuTTY tiene su propio generador de certificados en varios formatos diferentes. El autor indica que la dificultad para que PuTTY deje de usar PPK estriba en la cantidad de tuits que le envíen: mientras más mensajes, más fácil es. La cuenta en Twitter es… no tienen cuenta en esa red social (el humor también es un indicativo de la inteligencia).
  • Si queremos mayor seguridad podemos usar una frase de seguridad a nuestro par de llaves al momento de generarlas, pero luego debemos introducir dicha frase en cada conexión, cada vez. PuTTY tiene a Pageant, que se encarga de residir en memoria y hacer ese trabajo por nosotros.
  • PuTTY puede utilizar el protocolo de conexión creado por el mismísimo Richard Stallman -padre del movimiento de software libre- por allá en 1983: SUPDUP… Yo en particular no lo conocía, así que también aprendí algo nuevo con vosotros… ¿Que quién usa ese protocolo actualmente? Ya veis, ¡cosillas de nerds y/o geeks!
  • El código de PuTTY se ha utilizado por terceras personas como base para un servidor SSH experimental (vamos, que esto de desarrollar software libre es contagioso). PuTTY está escrito en lenguaje C y es monolítico, no usa librerías de enlaces dinámicos, por lo que si descargamos la versión adecuada ya compilada de 32 ó 64 bits, pues ya está lista para ser ejecutada.

putty
PuTTY preferences for serial port

  • Algunos interruptores de red marca Cisco® utilizan un puerto serial, convenientemente disfrazado en un terminal RJ-45, por medio del cual podremos administrar y/o monitorizar dichos artefactos (algunas otras marcas comerciales hacen otro tanto). Yo recomiendo usar el puerto serial de la tarjeta madre (debemos comprar un cable extensor hasta la ranura externa de la carcasa) lo cual garantiza una mejor conexión que los cables adaptadores de USB a puerto serial de 9 pines. Una vez tengamos todo esto, PuTTY gentilmente nos conectará al puerto serial, generalmente COM1.
  • De manera parecida podremos establecer un servidor gráfico X en la máquina *xnix a la cual nos conectaremos y reenviaremos dicha salida por medio de PuTTY a nuestra máquina local, a fin de utilizar un programa como Xming para monitorizar la experiencia de usuario (en un navegador web, por ejemplo).

putty
PuTTY preferences X11 forwarding

Consejos para ganar tiempo

Al trabajar con PuTTY bienvenidas son estas sugerencias que os hago:

Al hacer click y arrastrar directamente se copiará al portapapeles, esto sin necesidad de usar las teclas CTRL+C. Si deseamos seleccionar un área rectangular solo tendremos que presionar la tecla ALT antes de hacer clic en la ventana de sesión abierta con PuTTY. Recordad que al hacer click con el botón secundario dentro de la ventana se pegará (CTRL+V) lo que tengáis en el portapapeles, aunque también podemos usar SHIFT+INSERT para pegar.

Al hacer click secundario en la barra del título de la ventana tendremos algunas opciones muy interesantes, como:

  • Trabajar en pantalla completa; esto permite trabajar sin distracciones.
  • Duplicar la sesión, es decir, otra ventana terminal con el mismo servidor (también hay otra opción de abrir una conexión totalmente nueva o elegir entre los perfiles que tengamos guardados).
  • En la opción de configuración podemos marcar la opción de reutilizar conexión y luego al conectar hacer click secundario y escoger duplicar sesión. A partir de allí todas las conexiones que hagamos usarán un solo camino, incluso si utilizamos CMD.exe para correr otros ejecutables de PuTTY (psftp, plink, etc.) seguido del nombre del perfil que usamos para la conexión y demás parámetros que sean necesarios.
  • Según el tipo de conexión que hayamos hecho, PuTTY puede ofrecer los comandos especiales más utilizados, por ejemplo en SSH tendremos SIGKILL, SIGTERM, etc.
  • Recordemos que PuTTY almacena, por defecto, las últimas 200 líneas que hayamos trabajado (esto es de manera independiente a como se manejan los atajos de teclado en la terminal), pues con la opción de configuración podremos aumentarla a 5.000, por decir una cifra. ¿De qué nos sirve esto? Pues para que, si por alguna razón perdemos la conexión, entonces podamos hacer de nuevo click secundario en la barra de título de la ventana y seleccionemos «Reiniciar conexión» y seguiremos así conservando todo lo que hayamos escrito ¡hasta 5 mil líneas hacia «arriba»!

¿Recuerdan el icono de candado en las páginas web? Basado en ese mismo concepto, y para evitar servidores SSH maliciosos (poned que nos envíen preguntas de algún tipo sobre nuestras contraseñas) PuTTY tiene un ingenioso método de dibujar un icono para diferenciar -y legitimar- los avisos y preguntas que nos haga PuTTY en la ventana terminal. Sin embargo, esta defensa no puede ser hecha en ventanas CMD de Windows como por ejemplo para Plink (este ejecutable se utiliza para automatizar las conexiones y tal vez nunca lo usaremos de manera directa, pero hago la salvedad).

Si utilizáis Powerline para dar una apariencia profesional a cada una de vuestras máquinas remotas (y para diferenciarlas también), bien podéis clonar el repositorio y tomar las fuentes de letras e instalarlas en Windows®. Luego cargad el perfil necesario y estableced la fuente -a vuestro gusto- recién instalada. En todo caso, PuTTY también permite personalizar colores, estilos y comportamientos al redimensionar la ventana terminal y muchas otras cosas más.

putty
PuTTY configured with Powerline font

PuTTY y Pandora FMS

Como veis, PuTTY en realidad es una herramienta adicional a la monitorización ya que nos ayuda a probar y/o depurar aplicaciones en general porque, aunque SSH es su fuerte, tiene otros protocolos como Telnet ¡e incluso TCP en directo! ¿Cómo podemos contribuir con PuTTY? Aparte de recibir donaciones con el medio de pago Paypal existe algo que podemos hacer y que hará más felices a los autores: difundir y enseñar este software. Por ejemplo, podemos configurar nuestro propio sitio espejo que sincronice mensualmente con el original. Si nos queremos comprometer más podemos descargar su código fuente y ayudar a depurar.

Antes de despedirnos, recuerda que Pandora FMS es un software de monitorización flexible, capaz de monitorizar dispositivos, infraestructuras, aplicaciones, servicios y procesos de negocio.

¿Quieres conocer mejor qué es lo que Pandora FMS puede ofrecerte? Descúbrelo entrando aquí.

Si tienes que monitorizar más de 100 dispositivos también puedes disfrutar de una DEMO GRATUITA de 30 días de Pandora FMS Enterprise. Consíguela aquí.

No dudes en enviar tus consultas. ¡El equipo de Pandora FMS estará encantado de atenderte!


Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.