SSH Master Password

4 Diciembre 2010 por Gustavo Higa Miyashiro Sin comentarios »

Introducción

SSH Master Password es una idea que surge del problema de tener que memorizar o apuntar la contraseña de varios servidores. El tener las contraseñas apuntadas en un block de notas o en un correo electrónico resulta pesado e inseguro.

El problema

Estos scripts cubren los siguientes problemas:

  • No escribir la contraseña de cada servidor para poder loguearse: Almacena los usuarios, dirección de servidor y contraseñas en un archivo de configuración.
  • Tener las contraseñas en texto plano: Las contraseñas están encriptadas.
  • Memorizar múltiples contraseñas: Las contraseñas son encriptadas con una o varias llaves.
  • Restricción para usar una llave ssh previamente compartida.

Dependencias

Los scripts tienen las siguientes dependencias:

  • Expect: Permite interactuar automáticamente con el programa ssh.
  • OpenSSL: Encripta y desencripta las contraseñas.

Expect Script masterssh

#!/usr/bin/expect -f
set user [lrange $argv 0 0]
set alias [lrange $argv 1 1]
set mypassword [exec getfrommasterpassword.sh $alias $user]
set host [lindex $mypassword 0]
set password [lindex $mypassword 1]
set timeout -1
match_max 100000
spawn /usr/bin/ssh $user@$host
expect {
        "yes?no" {
                send -- "yes\r"
                exp_continue
        }
        "password" {
                send -- "$password\r"
        }
}
send -- "\r"
interact

Script getfrommasterpassword.sh

#!/bin/bash
cd `dirname "$0"`
HOST_ALIAS=$1
HOSTS_FILE=${3:-"~/.passwords.txt"}
USERNAME=${2:-"root"}
LINEMATCH=$(egrep "^$HOST_ALIAS " "$HOSTS_FILE" | grep "$USERNAME")
HOST=$(echo $LINEMATCH | awk '{print $3}')
PASSWORD=$(echo $LINEMATCH | awk '{print $4}')
PASSWORD=$(echo "$PASSWORD"|openssl des -d -a )
echo $HOST $PASSWORD

Ejmplo passwords.txt

#alias usuario ip/hostname PasswordEncriptado
servidor1 root 192.168.100.1 U2FsdGVkX1/N1E4jydOhGb9S8KXBuhocQnE1PD5ddAM=
servidor2 root 192.168.100.2 U2FsdGVkX1+AaGic90We22DzNfb2HJRll2xlWPsvbuA=
servidor3 otro nomb.comp.com U2FsdGVkX1+BZ90Go6zEOcgKnjUylJXvwAu9W/QjulI=

Encriptar las contraseñas

Para encriptar el password que se usa en un servidor (<MIPASSWORD>) con la llave <MILLAVE>, bastará ejecutar en la línea de comando:

openssl des -e -a -A -k "<MILLAVE>" <<< "<MIPASSWORD>"

El output de ese comando es <MIPASSWORD> encriptado, y es el que se usa en el archivo de passwords.

Instalación y uso

  • Crear los dos scripts en ~/bin/
  • Crear y modificar el archivo ~/.passwords.txt con las contraseñas encriptadas.
  • Uso: masterssh <USUARIO> <ALIAS>
  • Nota: <USUARIO> y <ALIAS> deben existir en el archivo de passwords.

Cinco formas de identificar un sitio construido con Liferay [Infografía]

24 Noviembre 2010 por Juan Eladio Sánchez Rosas 3 comentarios »

Cuando se cuenta con experiencia básica en la instalación de sistemas de publicación de contenidos en línea es posible identificar a simple vista qué tecnología ha sido empleada para construir un sitio web. Así, en función de cómo se organiza el contenido, la forma en que se generan las direcciones web o el uso de determinados elementos gráficos se puede decir “este blog funciona sobre Wordpress”, “se nota que es un Joomla”, “obviamente es Drupal”.

A partir de nuestras experiencias de trabajo con Liferay he generado esta infografía que explica rápidamente cinco detalles que te puedan ayudar a reconocer un sitio web elaborado en Liferay, y que no ha sufrido muchas modificaciones respecto a una instalación por defecto.

Porque usar Liferay para gestionar sitios web

21 Octubre 2010 por Juan Eladio Sánchez Rosas 9 comentarios »

Usar Liferay como sistema de gestión de contenidos (CMS) para un sitio web a simple vista parece una exageración (si conoces el propósito inicial con el que fue diseñado este software, descrito en Liferay: Portales web para el trabajo colaborativo de empresas). Sin embargo, existe una serie de situaciones desde el punto de vista del usuario final en las cuales contar con todos los recursos que proporciona Liferay resulta una mejor opción en comparación con el desarrollo de un sitio web a medida o usar un software CMS con diferentes características y orientaciones.

Quiero una página web empresarial, no un blog

La instalación por defecto de varios sistemas populares de gestión de contenidos incluye plantillas de páginas principales donde se prioriza mostrar contenido en un listado ordenado cronológicamente, a manera de un blog o de un sitio de noticias, y que requiere mayor esfuerzo de desarrollo para conseguir una plantilla con una portada distinta.

Estructura de una típica web generada con un CMS: cabecera, enlaces, artículos ordenados cronológicamente, menúes laterales y pie de página

» Leer más: Porque usar Liferay para gestionar sitios web

Extensiones esenciales para el cliente web de Zimbra

29 Septiembre 2010 por Juan Eladio Sánchez Rosas 1 comentario »

En Zimbra Colaboration Suite los complementos son conocidos como Zimlets, y hacen posible la personalización y extensibilidad de una instalación estándar de Zimbra con la adición de nuevas características que se ajusten a tus requerimientos particulares.

Captura de pantalla de Zimlet Smarsheet GanttLa mayoría de ellos están diseñados para ofrecer mejoras apreciables en la interfaz web de Zimbra, aunque también existen complementos para escritorio, integración con otros sistemas, e inclusive extensiones para programas de escritorio.

En esta revisión se presentan complementos orientados a la interfaz web de Zimbra, y que no dependen de la instalación de aplicaciones adicionales en la empresa.
» Leer más: Extensiones esenciales para el cliente web de Zimbra

El perfil de un especialista en software libre en el mundo real

26 Agosto 2010 por Juan Eladio Sánchez Rosas 4 comentarios »

El mes pasado, a pedido del área de Gestión de Proyectos en Antartec, tuve que enviar una serie de datos acerca de las labores diarias que realizo como Especialista Open Source. Mientras recopilaba información se me vinieron estas preguntas a la mente: ¿cómo explicarle a la gente lo que hacemos en Antartec?, ¿qué debes buscar en un conocedor en tecnologías libres para la empresa?, ¿qué necesitas para llegar a ser uno?.

Trabajando en Antartec (2008)

En líneas generales, un especialista en software libre se dedica a investigar, implantar y elaborar documentación funcional y técnica relacionada a tecnologías (generalmente tecnologías colaborativas de nivel empresarial) basadas en software libre y abierto, así como sugerir y elaborar mejoras o correcciones acorde a las necesidades de una o varias organizaciones.

Lo anterior no quita que la persona tenga una labor en particular a la cual se dedique, o un área que más domine, por ejemplo:

» Leer más: El perfil de un especialista en software libre en el mundo real