A Django site.
Febrero 1, 2010
» Tirar la vaca

Es gracioso como el destino nos puede poner trabas o a veces buenos empujones que nos hacen cambiar de rumbo o de planes.

Desde hace ya un tiempo que venia dedicando mi mente a mi retorno a las practicas de Kung Fu. Lo que al principio fue un simple retorno al ejercicio para un bienestar físico y mental poco a poco se convirtió nuevamente en una parte integral de mi vida y de ahí en el factor principal por lo cual todo el resto se movía.

Una vez mas estábamos con la cabeza en "respirar, comer y vivir Kung Fu", al punto tal de ya tener planeado para el primer semestre del 2010 un cronogramas de actividades realizando 6 días a la semana actividad física, y de los cuales 4 de ellos iban a ser netamente: Kung Fu.

Pero hace unos días atrás, al retomar las practicas de Kung Fu paso "algo", que aun no se si es bueno o es malo (quizas solo el cielo lo sepa :) )

En la primer practica de Kung Fu, en el primer salto que realice cai mal y me esguince el pie izquierdo. Entonces mi retorno a las practicas de Kung Fu en el 2010 duraron algo mas de 10 minutos, porque literalmente fue el primer salto que hice en la primer practica del año. La lesión es de tal magnitud que me gane una bota ortopédica por 30 días y hasta algunas sesiones de fisioterapia.

Pero el punto esta que esta lesión nos deja en casi 45 días sin poder hacer muchas actividades físicas, y en un lento retorno a las mismas. Entonces en este punto y luego de no pensarlo mucho fue necesario un replanteamiento de lo que iba a ser el primer semestre del 2010.

Y entonces así de rápido como se armaron las primeras estructuras basadas en las artes marciales, las mismas las desarme y ya estamos armando nuevas, esta ves orientadas a mi otra pasión: La tecnología en general y la Informática y las Redes en particular.

Entre las rápidas medidas realizadas para armar esas estructuras fue la de resucitar un modem GSM que me habían prestado hace unos meses para poder estar nuevamente en linea todo el tiempo posible, ya que desde julio del 2009 que me dí de baja a mi vieja conexión ADSL a Internet era raro verme conectado fuera de mi horario laboral.

Con esto estamos regresando nuevamente a las largas horas sentado en frente de una computadora leyendo, investigando y realizando pruebas sobre temas mas variados relacionado con las TIC... y también estamos hablando de resucitar mi viejo y olvidado Blog.

Así que acá estamos, volviendo a escribir por estos lados.

Y con respecto al rápido cambio de planes y de estructuras podríamos mencionar la idea de los budistas de no "atarse" mas de lo debido a las cosas, o del concepto del Zen de que debemos estar consientes que todo tiene un tiempo y que puede finalizar en cualquier momento, pero en ves de ello, les voy a dejar un video de Miguel Angel Cornejo sobre "tirar la vaca" que desde que lo vi me gusto mucho y lo considero muy bueno y con muchos puntos a rescatar.








Enero 6, 2010
» Pablo Vargas

y porque no retomar mi ya algo olvidado blog.... con un pequeño cuento chino

Sàiwengshima Saiweng. El hombre de la frontera que perdió su caballo.

Hace mucho tiempo, cerca de la frontera norte de china, vivian en una pequeña casa, Sàiweng y su hijo Xiaoming. Su única compañía era su caballo Dàma.
Un día los visitó Línju, su vecino, que trajo un pastel de regalo para acompañar al té. Mientras hablaban, comían y bebían Dàma escapó y por mucho que buscaron no lo encontraron. Linjú dijo ¡Qué desgracia más grande!, pero Sàiweng le replicó "sólo el cielo sabe si es una suerte o una desgracia".
Una semana después, padre e hijo oyeron ruido de cascos, era Dàma que había regresado con una yegüa blanca. Sàiweng le contó lo sucedido a Línju, el vecino, quien ahora afirma !Que suerte, ahora tienes dos caballos¡ y de nuevo Sàiweng le replica "sólo el cielo sabe si es una suerte o una desgracia"

Xiaoming al ver la yegüa blanca se monta en ella, pero cae y se lastima la cabeza. Línju dice "Ahora si que ha sido una mala suerte, nadie podrá trabajar las tierras" y de nuevo Sàiweng le replica Shì fú shì huò zhi you tian zhidào que ya sabemos que quiere decir “Si es suerte o desgracia sólo el cielo lo sabe”.

Estaba junto a la cama de Xiaoming cuando en eso llaman a la puerta de la casa. Es un soldado del emperador que viene a reclutar jóvenes para ir a la guerra. Sàiweng, asustado, le explica que su hijo no puede ir porque está herido. El soldado entonces se dirige al vecino y le pregunta por la salud de su hijo, Línju le responde "Mi hijo si que tiene suerte está en perfectamente", pero enseguida se arrepiente, pues el soldado le dice "Muy bien, en ese caso, vamos a buscarlo pues será él el que vaya a la guerra" y quedándose de nuevo solos Sàiweng le dice a su hijo su célebre frase “Shì fú shì huò zhi you tian zhidào”: “Si es suerte desgracia sólo el cielo lo sabe”.



fuente: XIBANYA - CHINA

Agosto 14, 2009
» Como hacer para que Windows ande rapido y bien



La verdad yo no se... pero con un Quad-Core Xeon y 16GB de RAM podría decirse que "anda..."

Agosto 7, 2009
» Usando event_handler en Plesk

Entre las virtudes que he de rescatar de Plesk con respecto a los otros Paneles de Control es que la mayoria, y si no es que todas, las tareas de administración se pueden realizar tanto desde la interfaz Web o desde la linea de comandos.

Entre los comandos no muy documentados esta el "event_handler" que nos permite, desde linea de comando, ejecutar nuestros script después de algunos de los eventos predefinidos en Plesk se llevan a cabo.

De esta forma es que podemos crear directorios especiales después de crear una cuenta de correo, cambiar permisos de directorios después de crear un dominio o hasta generar un aviso que se llevo a cabo una tarea de administración.

Para poder listar las tareas ya definidas:
/usr/local/psa/bin/event_handler -l
/usr/local/psa/bin/event_handler --list

y nos vamos a encontrar con una salida como la siguiente:
Id: 2
Name: Service stopped
Priority: 0
User: root
Command: /usr/local/psa/admin/bin/modules/watchdog/wd --unmonit-service=<new_service> --plesk-name
Este es un ejemplo de una tarea que se debe realizar cada vez que se detiene un servicio, y para ser precisos es del modulo Watchdog para que este deje de monitorear un servicio si el mismo se ha detenido.

El evento "Service stopped" es uno de los mas de 100 eventos que ya vienen predefinidos por Plesk, y cada uno de ellos tiene un código único y para poder listarlos usaremos el comando:
/usr/local/psa/bin/event_handler -le
/usr/local/psa/bin/event_handler --list-events

Creando una tarea

Para crear tarea usaremos la opción "-c" o "--create" pasándole algunos argumentos mas, como por ejemplo:

/usr/local/psa/bin/event_handler -c -priority 10 -user root -command "/usr/local/propios/procmail_spam.sh <new_mailname>" -event 52
Con esto estaremos creando una comando nuevo (opción "-c" para crear y "-command" para especificar que comando a ejecutar) que se debe ejecutar cada vez que se cree un nuevo usuario ("-event 52" es "Mail account created" ).

Con este comando también estamos especificando con que usuario se debe ejecutar ese comando, que en nuestro caso es el usuario "root" ( "-user root" ). Para poder ver el listado usuarios que pueden realizar alguna de las tareas programadas:
/usr/local/psa/bin/event_handler -lu
/usr/local/psa/bin/event_handler --list-users
Si vamos a ejecutar varias tareas o comandos en base a un evento, es donde entra en juego las prioridad ( en este ejemplo "-priority 10" ) que es un valor entero que va desde 0 a 100, siendo los comandos con prioridad mas baja los que se van a ejecutar primero.

Cada uno de los eventos maneja variables propias relacionadas con el evento que se esta llevando a cabo, estas variables se puede pasar a los comandos que vamos a ejecutar. En nuestro ejemplo el evento es la creación de un nuevo buzón de correo y la única variable que tiene este evento es "<new_mailname>".

Sobre las variables de cada uno de los eventos, no he encontrado mucha información oficial, mas que un viejo manual en linea de Plesk 8.3 aunque también sirven para las versiones de Plesk 8.6 y 9.2

Modificando una tarea ya existente

Para modificar o eliminar una tarea existente usaremos las opciones "-d" o "-u" para eliminar o borrar una tarea e indicando el identificador de la misma. De esta forma para eliminar una tarea podríamos usar los comandos:

/usr/local/psa/bin/event_handler -d 2
/usr/local/psa/bin/event_handler --delete 2
O para cambiarle la prioridad usaremos:
/usr/local/psa/bin/event_handler --u 2 -priority 10
/usr/local/psa/bin/event_handler --update 2 -priority 10

Mayo 16, 2009
» Como recuperar la contraseña de un Linux o un Windows

Hace ya varios años atrás, en un charla sobre seguridad, el orador empezo con una frase que hoy dia la sigo repitiendo de vez en cuando:
"La seguridad no existe, es solo una sensación"

Esa charla y esa frase vino a mi memoria hace unos días atrás cuando me encontré con un articulo sobre "Kon Boot" que es un BootCD que nos permite ingresar tanto a Linux como a Windows sin saber ninguna de las contraseñas de usuarios.

Este arrancador, en su versión original para Ubuntu, permite modificar parámetros del kernel de Linux al iniciar, en particular donde se define el identificador del usuario (uid) que corre el proceso. Kon-Boot utiliza ese procedimiento para poder saltar el proceso de autenticación y poder ingresar al sistema con un usuario ficticio pero con privilegios de root.

Por lo que se puede leer en el sitio del proyecto, esta aplicación originalmente se desarrollo para Ubuntu, y luego se fue adaptando para las otras distribuciones. Y aunque no funciona en todas las distribuciones , debido a los distintos parches y configuraciones que cada una aporta a su kernel, ya funciona en varias de ellas, e incluso la nueva versión del Kon-Boot ya soporta varias versiones de Microsoft Windows.

Entre las distribuciones de Linux que esta probadas y funcionan se encuetran:
  • Gentoo 2.6.24-gentoo-r5
  • Ubuntu 2.6.24.3-debug
  • Debian 2.6.18-6-6861
  • Fedora 2.6.25.9-76.fc9.i6862
y entre las de MS Windows
  • Windows XP
  • Windows XP SP1
  • Windows XP SP2
  • Windows XP SP3
  • Windows Vista Business SP0
  • Windows Vista Ultimate SP1
  • Windows Vista Ultimate SP0
  • Windows Server 2003 Enterprise
  • Windows Server 2008 Standard SP2 (v.275)
  • Windows 7

Abril 22, 2009
» Realizando conexions a puertos SSL/TLS

No es muy complicado probar o verificar muchos de los servicios de Internet a mano con un simple Telnet al puerto del servicio. Con esto no solo podemos verificar que el puerto esta abierto y escuchando, sino que en muchos casos es posible simular o realizar a mano el dialogo con servidor.

Pero en el caso que el servicio a probar utilice SSL o TLS, ya no podemos usar Telnet para poder dialogar con el servidor. Pero para ello podemos usar el comando "openssl" en modo cliente. En particular para simular una simple conexion a un puerto que use SSL o TLS podemos usar :
openssl s_client -connect servidor:puerto
Esto iniciara el dialogo SSL con el servidor y nos mostrara el certificado e informacion del mismo, asi tambien como, si no es un certificado auto-firmado, intentara verificarlo. Una vez finalizado el dialogo y la verificacion del certificado, nos mostrara el resumen de la coneccion como el siguiente:
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: E9F3218C651A1F59CFA21D997AE63CF80810F70CD9D62F456F98B15E85F71C4D
Session-ID-ctx:
Master-Key: ACCA4FE23EEA8C8FE414C3FAB570C1D51115B685CD6662FB56961604272F0C347A57040FA78DDBF42F35E3B205D4A103
Key-Arg : None
Start Time: 1240453754
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)

Luego de esto, ya tenemos la conexión establecida y podemos ejecutar los comandos a mano para probar el servicio en particular como lo haríamos usando Telnet






Marzo 9, 2009
» Mejoras al History del Bash

Una de las características que le falta al history del bash (por lo menos de mi punto de vista) es poder saber quien y a que hora se ejecutaron los comandos. Para poder solucionar esto existen muchas soluciones, desde agregar keylogers al sistema hasta parchear el mismo fuente del Bash.

Pero los otros dias navegando por un blog encontré una solución que me pareció muy buena y limpia a través del mismo syslog. La idea es agregar en alguno de los scripts de inicio de la sesión de los usuarios una pequeña función que guarda el ultimo comando ejecutado en el syslog a través del comando logger.

En nuestro caso elegimos el archivo /etc/profile y en el le agregamos al final las siguientes lineas:
function history_to_syslog {
declare cmd
cmd=$(fc -ln -0)
logger -p local7.notice -- SESSION = $$, WHO = $(whoami), CMD=$cmd
}

trap history_to_syslog DEBUG

Luego para poder revisar mejor los registros, configuramos el demonio de syslogd para que separe los registros y los guarde en un archivo separado. Para ello agregamos en el /etc/syslog.conf la siguiente linea:
# BASH
local7.* -/var/log/cmdhist.log
Por ahí también es bueno agregar en el logrotate algunas lineas para rotar los logs y evitar que se haga muy grande este archivo. Para ello podemos crear el archivo /etc/logrotate.d/cmdhist y le agregamos las siguientes lineas:
/var/log/cmdhist.log {
daily
rotate 31
compress
missingok
}
y con esto tendremos registrado el día a día de todos los comandos ejecutados en el sistema identificando el usuario, la sesión y la hora en que se ejecuto cada comando.

Lo bueno de esta solución es que le agrega un poco más de seguridad al histórico de los comandos. El bash_history es facil de saltear, si el usuario en algún momento de la sesión ejecutamos el comando:
unset HISTFILE
Con esto, el Bash pierde la configuración de donde tiene que guardar los comandos ejecutados, por lo que al cerrar la sesión no se guardan los comandos ejecutados. La solución de ir guardando los comandos en el syslog, le agrega un poco de seguridad en este aspecto, ya que los comandos se van guardando a medida que se van ejecutando, por lo que hasta los mismos comandos para "borrar las huellas" quedan registrados en el mismo syslog, e inclusive, se puede configurar el demonio del syslog para que guarde los registros en forma remota y de esta forma agregarle un poco mas de seguridad al respecto.

Marzo 6, 2009
» Otra vieja historia Zen

Recordando viejas historias algunas ves leídas y meditadas, hoy recordé en particular una sobre lo malo que puede ser la ansiedad de querer conseguir resultados.

La historia es la de un gran maestro zen especialista en el manejo de la espada. Un día se le acerca un joven, que conocía la destreza del maestro y le ruega para ser aceptado como su alumno. El maestro acepta y lo toma como su discípulo.

Pero el joven no quería ser el discípulo del gran maestro para ser iniciado en el Zen, lo que deseaba era convertirse en un gran espadachín para poder así vengar la muerte de su familia.

Después de unos años de ser discípulo el alumno, viendo que no avanzaba muy rápido su aprendizaje en el manejo de la espada, el alumno le pregunta al maestro: "en cuanto tiempo voy a ser un gran espadachín ?" y el maestro.. que ya conocía el apuro de su alumno, le dice "en unos 15 años mas"

La frustración del alumno fue muy grande al ver postergado en tanto tiempo su venganza y le volvió a preguntar a su maestro: "y si entreno duro todo los días ?" a lo que el maestro respondió "en ese caso... puede que en 20 años"

Mas asombrado el alumno, le reclama a su maestro "como puede ser ? si todos los días entreno para ello, como puede ser que tarde mas tiempo?"

A lo que el maestro respondió "es que en ese caso vas a estar mas pendiente en llegar al final del camino, que en lo que tienes que hacer realmente para recorrerlo y llegar a destino"

Febrero 18, 2009
» Un poco de informacion sobre SPF

Es normal escuchar hablar sobre implementar SPF para reducir el SPAM, y aunque ayuda mucho, no es el objetivo principal del mismo. Entonces, que es SPF ? Si nos remitimos a la misma Wikipedia nos dice que SPF "es una protección contra la falsificación de direcciones en el envío de correo electrónico. "

Que sucede, cuando se ideo el protocolo SMTP se pensó en un esquema muy similar a lo que se conocía, que es el correo postal, tratando de imitarlo lo mejor posible. Pero al hacer esto nos encontramos en Internet con un problema que existe en la vida real, y es que al recibir una carta, por mas que esta sea "certificada" y solicite que confirmemos su recepción, al momento de recibirla nadie nos garantiza la identidad del emisor de la misma. Para contrarrestar este problema es que surgio SPF.

SPF es una técnica por la cual, al momento de recibir un correo podemos, a través de una consulta DNS, verificar si el IP desde el cual estamos recibiendo el correo esta autorizado para entregar correos del dominio del emisor., y con esto decidir si aceptamos o no el correo.

Para que esta verificación se pueda llevar a cabo tienen que haber sucedido dos procesos totalmente independientes. Por un lado el emisor tiene que haber agregado un registro del tipo TXT especialmente armado en su zona DNS, con el listado de los servidores autorizados a enviar sus correos. Y por otro lado, el administrado del servidor de correo del dominio receptor debe configurar su servidor para realizar la verificación de cada correo entrante.

El agregar los registros para la verificacion del SPF a nuetro dominios es una tarea relativamente simple y generar el registro aun mas gracias a que existen un par de sitios que nos ayudan a generar ese registro especial que luego deberemos agregar a nuestro servidor DNS. Entre los sitios que nos ayudan a generar este registro podemos destacar el sitio de openSFP.

Un registro SPF mas o menos simple, para nuestro dominio example.com, puede llegar a ser algo mas o menos asi:

example.com. IN TXT "v=spf1 a ptr a:192.168.1.1 a:mail.example.com -all"
Con esta linea agregada al archivo de nuetra zona DNS estamos indicando que los servidores que pueden entregar correos para el dominio example.com son:

  • a -> el ip con el cual resuelva el dominio (que se obtiene con un simple dig example.com a)
  • prt -> cualquier IP que al resolver el inverso se encuentre dentro de la zona example.com ( dig -x ip_del_servidor_emisor )
  • a:192.168.1.1 -> el IP 192.168.1.1
  • a:mail.example.com -> el IP que tenga el registro mail.example.com (dig mail.example.com a)

La ultima parte de la linea, el "-all" es la política que debe emplear el receptor en caso de no coincidir el IP del servidor emisor con alguno del listado. En nuestros caso, el "-all" indica que solo los IP indicados en el registro son los autorizados para enviar correos, y por ende si se recibe un correo de otro IP que no este listado, deben ser ser tratados como falsos y descartados.

La política opuesta es la de "?all", con la cual estamos indicando que pueden llegar correos de IP que no estén listados, y que estos correos deben ser tratados como "neutrales" y ser aceptados.

Existe una tercer política, y es la que en realidad se sugiere utilizar en la mayoría de los casos, que es "~all". Esta política es considerada como un "softfail" o "falla leve". Esto nos permite indicarle al receptor que puede que el IP del cual esta recibiendo el correo no este listado entre los IP validos pero que puede no ser una falsificación de identidad, y en ese caso que también utilice otros medios para terminar la verificación.

Entre esas otras técnicas que se realizan en caso de un "softfail", es buscar entre la cabecera del correo entrante alguno de los IP validos, para saber si el origen del correo es alguno de los servidores permitidos. Esta ultima política es la que debemos utilizar, por ejemplo, si nuestro servidor de correo utiliza a otro servidor para reenviar los correos (servidor relay o smarthost ) y no siempre conocemos el IP de salida de ese servidor relay.

Con este simple registro TXT agregado a nuestra zona DNS es que estaremos evitando que terceros envíen correos en nombres nuestro, y con ello evitando, por ejemplo, los rebotes de los mail de SPAM enviados por otros usando nuestro dominio.

Febrero 17, 2009
» Plugin para Pidgin del FacebookChat

Una de las partes mas molestas de la interfase de FaceBook (por lo menos para mi) son el chat y el "cargador simple de fotos".

Y parece que no soy el único que piensa así, porque ya se puede encontrar entre los proyectos de code.google.com un plugin para agregar al Pidgin para poder chatear desde el mismo mensajero.

Si usas Debian o algún derivado, la instalación es muy simple, solo descargas el dpkg y los instalas. Una ves instalado la configuración no presenta ningún misterio y su uso es totalmente transparente.

También buscando un poco por code.google encontré un par de proyectos para las fotos que ya iremos probando, aunque el F-spot también tiene una extensión para exportar las fotos directamente a Facebook, asi que veremos por cual nos quedamos.

Asi que veremos de ir sacando a Facebook de la interfase de Facebook :)

Enero 28, 2009
» Bloquear el acceso a Gtalk pero no a Gmail con Squid

Hace algunos días me tope con el siguiente inconveniente configurar un proxy Squid (no transparente) en el cual debía permitir solo el acceso a los correos de Gmail y no al resto de las aplicaciones como por ejemplo el chat, lo hice de la siguiente manera y funciono si alguien tiene una forma mejor que lo postee ;)

Primero que nada agregar las siguientes lineas en el squid.conf

acl cl_congmail src "/etc/squid3/acl/cl_congmail.txt"
acl gmail url_regex "/etc/squid3/acl/gmail.txt"
acl urlmalos url_regex "/etc/squid3/acl/urlmalos.txt"

http_access deny urlmalos
http_access allow gmail cl_congmail

- En el archivo cl_congmail.txt van todas las ips que queremos que tengan gmail por ej:
192.168.1.1
192.168.1.2


- En el archivo gmail.txt puse lo siguiente
.gmail.com
.mail.google.com
.google.com:443

- En el archivo urlmalos si queremos bloquear Gtalk puse la siguiente url
^http://chatenabled.mail.google.com

Enero 19, 2009
» Registrando los eventos de la funcion mail() en PHP

Pasando revista por los blog que leo diariamente, me encontré con un articulo de las mejoras de PHP 5.3.0 que esta por salir. Entre ellas se agregan dos facilidades para la funcion mail() muy útiles para los administradores de sistemas.

Uno de los problemas mas comunes en un servidor de hosting con muchos dominios es la de encontrar quien esta abusando de la funcion mail() y esta enviando correos, tarea que a partir de la version 5.3.0 de PHP va a ser mas que simple, ya que se agregan dos nuevos parametros de configuracion.

El primero es el mail.add_x_header que, de habilitarlo desde el php.ini o desde un php_value, le agrega a los mail una cabecera X-PHP-Originating-Script con el nombre del script que esta generando el correo y el UID que lo esta ejecutando. Algo muy útil si tenemos algún retorno de los mail que se envian.

El otro parametro, por ahi un poco mas util, es mail.log que nos permite habilitar el registro de envios de los correos, guardando en un archivo local los script que llaman a la funcion mail() y algunos campos adicionales como los destinatarios de los mail.

Con estas dos nuevas facilidades, se reducirá bastante el tiempo que se pierde en rastrear todos eso correos basura que se disparan aprovechando vulnerabilidades de algunos sitios web.

Lo bueno de esto, es que buscando un poco mas de informacion sobre estas mejoras es que al caer al blog de Ilia Alshanetsky (el desarrollador de esta funcionalidad) podemos encontrar un parche que le podemos aplicar a las versiones actuales de PHP para poder tener estas caracteristicas, por lo que no hace falta esperar mucho para poder empezar a utilizar estas caracteristicas.

Enero 7, 2009
» Una vieja historia Zen

Hoy charlando con una amiga, me hizo acordar de una vieja historia Zen que alguna vez lei, y que mas alla de su contenido filosófico sobre los ciclos, la vida, la muerte y demas:

Después de tomar el té, mientras que un estudiante de zen lavaba su taza y la de su maestro, la taza del maestro se le resbaló de entre las manos, cayó al suelo y se rompió. El estudiante se quedó muy preocupado y se lo comunicó a sus compañeros, que lejos de quitarle importancia al asunto, lo asustaron más diciéndole:

"La taza que has roto, era reverenciada por el maestro. Era muy antigua y de gran valor"

El estudiante no sabía cómo contárselo a su maestro sin ser castigado, por lo que se le ocurrió dirigirse a su maestro y decirle lo siguiente:

"Maestro, ¿por qué hay que morir?"

A lo que el maestro le respondió:

"Es lo natural, después de la vida, viene la muerte"

Entonces el discípulo repuso:

"Pero Maestro, ¿no puede algo durar eternamente?"

A lo que el maestro dijo de nuevo:

"Todo tiene su ciclo, las cosas empiezan y luego acaban. Todo lo que nace muere"

En ese momento el discípulo sacó los trozos de la taza rota y se la mostró al maestro diciéndole:

"Maestro, a la taza, le había llegado su tiempo"

Siempre me causo gracia por como el alumno sabiendo la respuesta, hizo la pregunta para que el maestro al responder estuviera preparado para lo que venia, entonces... quien fue el alumno y quien el maestro ??

Enero 6, 2009
» Ejecutando comandos en multiples servidores

Uno de los problemas con los que me he encontrado en estas ultimas semanas es la de trabajar de manera sistemática ejecutando el mimo comando sobre varios servidores (un poco menos 200 servidores).

Debido a que esto es mas que molesto (sobre todo por lo rutinario), entonces recordando el viejo comando "expect" empecé a buscar algún script para poder automatizar un poco este tipo de tarea.

Así es como me encontré con los el repositorio de script de nixCraft, de donde rescate un simpático script para poder ingresar a un servidor ssh pasando de parametro la clave, el servidor y el comando a ejecutar.

Despues de unas modificaciones al script el mismo quedo algo mas o menos asi:

#!/usr/bin/expect -f
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# For use:
# ./sshlogin.exp password server command arg1
#
# ----------------------------------------------------------------------
# Basado en http://bash.cyberciti.biz/security/expect-ssh-login-script/
# ----------------------------------------------------------------------

# set Variables
set password [lrange $argv 0 0]
set ipaddr [lrange $argv 1 1]
set scriptname [lrange $argv 2 2]
set arg1 [lrange $argv 3 3]
set timeout -1

# now connect to remote UNIX box (ipaddr) with given script to execute
spawn -noecho ssh -o "ConnectTimeout 10" root@$ipaddr $scriptname $arg1
match_max 100000

expect {
# first time
"*continue connecting*" { send -- "yes\r"; exp_continue }

# for passphase key
"*passphrase*" { send -- "$password\r"; exp_continue }

# for password
"*assword*" { send -- "$password\r"; exp_continue }

# for timeout
"timeout" { exit }
}


Con ese script podemos, por ejemplo saber cuanto tiempo lleva encendido alguno de nuestros servidores:

./sshlogin.exp la_clave el_server uptime

Con esto, solo hemos resuelto la mitad del problema, que es poder ejecutar el comando sin tener que esperar a que nos pida la clave. Pero la segunda parte es la mas facil.

Vamos a partir generando un archivo con los servidores y sus claves, algo asi como:

servidor_1:clave_1
servidor_2:clave_2
servidor_3:clave_3

Y con un simple script como el siguiente, podemos recorrer el listado de servidores y claves y ejecutar el comando en todos ellos:

#!/bin/bash
mkdir -p log
for linea in `cat server.lst`
do
server=`echo $linea |awk -F":" '{ print $1 }'`
clave=`echo $linea |awk -F":" '{ print $2 }'`

./sshlogin.exp $clave $server "(wget -q -O - http://miservidorweb.com/inventario.sh|bash)" > log/$server
done

Con esto podemos descargar un script de un servidor y ejecutarlo en el servidor remoto y guardar el resultado en la maquina local.

Diciembre 31, 2008
» Saludos de fin de año

Hay 2 días al año sobre los que no puedes hacer nada: AYER Y MAÑANA: solamente hoy podrás perdonar, sonreír, soñar, amar, sentir…

Feliz y próspero año 2009.

Diciembre 29, 2008
» Que tortugas ninjas ni ocho y cuarto !! el original es el oso ninja !!

Es sabido que los orientales basaron sus técnicas de artes marciales en la observación de los animales y en sus comportamientos.

De ahi que surge el poderoso estilo del tigre, el ágil estilo del mono, el veloz estilo de la serpiente, el combate a corta distancia de la mantis y muchos mas....

Pero ese proceso de observación y de sistematización de esas técnicas se lograron con el pasar de las décadas... pero eso es porque no conocían a Claude, un oso negro asiático del zoológico de Hiroshima que es todo un especialista en el uso del baston !!



Aunque para mi que Claude vio KungFu Panda y ahora quiere ser como "PO" su nuevo ídolo del cine !!

Diciembre 26, 2008
» Diez razones por las que la cerveza es mejor que las religiones

  • Nadie lo matará por no beber cerveza.

  • La cerveza no le dice cómo tener sexo.

  • La cerveza nunca ha causado guerras importantes (ni inquisiciones, ni cruzadas sangrientas).

  • La cerveza no fuerza a los menores de edad, que no pueden pensar por sí mismos.

  • Cuando usted tiene cerveza, usted no se la pasa tocando puertas ajenas intentando que otras personas tomen una.

  • A nadie han quemado en hogueras, colgado en una horca, o torturado hasta la muerte por defender una marca de cerveza.

  • Usted no tiene que esperar más de 2.000 años por una segunda cerveza.

  • Hay leyes que dictaminan que las etiquetas de cerveza no pueden mentirle a usted y que deben informarle sobre el daño que le acarrean a su salud.

  • Usted puede demostrar la existencia de la cerveza.

  • Si usted ha consagrado su vida a la cerveza, hay grupos que pueden ayudarle.

Noviembre 27, 2008
» ¡Vaya!... El sistema ha detectado un problema (#719)

Y si !! si usas aplicaciones BETA alguna vez tenia que pasar !!! y despues de unos minutos que reintentaba conectar y no podía, no me quedo otra que cerrar la sesión y abrirla de nuevo.

Lo bueno es que al conectarme nuevamente todo estaba ahi. Vaya a saber que es eso del error #719....

Noviembre 13, 2008
» "La telepresencia de Cisco" en numeros (Cisco Telepresence)

  • 10 fueron los requerimientos de la gente de marketing le paso a ingenieria como base para desarrollar la Telepresencia
  • 3 pantallas de "súper alta definición" componen el modelo CT 3000p
  • 1080 x 1900 es la resolución de la imagen de cada una de las pantallas y cada una de las cámaras (una cámara por pantalla).
  • 65" es el tamaño de cada pantalla.
  • 4 enchufes de 20 Amperes se necesita para el CTP3000.
  • 10 paliet es lo que ocupa el CTP3000p cuando esta envalado.
  • 7975 es el modelo de telefono IP de Cisco que utilizan para controlar el equipo de Telepresencia (en ves de un control remoto).
  • 4 son los modelos de los end-point de telepresencia (3000, 3200, 1000 y 500).
  • 400KB o mas debe ser el buffer de entrada del switch donde se conecte el end-poing.
  • 1740 paquetes por segundo transmite el CTP3000 en su maxima calidad de imagen.
  • 1 Gbps debe ser la interfase del switch a la que se conecte.
  • 5.5 Mbps ocupa cada uno de los flujos de video (el CTP3000 usa 3 flujos ).
  • 200 ms de restardo es lo máximo permitido en el enlace de punto a punto.
  • 40 ms es el jitter máximo permitido
  • 0.2% de perdida de paquetes es lo máximo permitido

  • 48 son los flujos de video que puede manejar el equipo de Connferencia Multipuntos.
  • 15 ms es el delay agregado por el eqiupo de Multipunto (no hace transcoding).
  • 240 Mbps seria el cosumo maximo de red del equipo Multipunto.

  • Aproximadamente 1000 son los equipos ya instalados e el mundo.
  • pero cerca de 300 estan son de Cisco para uso interno.

y para terminar.... hablemos del precio, que aunque nunca lo mencionaron, estamos hablando de que montar dos puntos con un CTP3000 puede estar un poco por debajo de los u$d 500.000 !!!

» Las frases de la semana

Un Geek es un Nerd pero con vida social


Un Flogger es un Emo pero con colores