26 mayo 2010

Notificación privada mediante TweetMe!

Históricamente, el protocolo de notificación de los diferentes dispositivos que conforman las estructuras de red en las grandes empresas, ha sido SNMP. También son canales válidos, el correo electrónico o syslog como mecanismo de centralización de eventos.

Sin embargo, el mundo 2.0 ha ido haciendo que los que vivimos en él tengamos que evolucionar al mismo tiempo, al menos intentarlo, adaptándonos a los mecanismos de notificación y sociabilidad que el dospuntocerismo trae consigo, en vez de quedarnos anclados a como se hacían las cosas en el pasado.

Hace casi dos años ya, que Yago publicó una revolucionaria herramienta que permitía publicar en el timeline un usuario twitter el syslog de una máquina mediante Sys2Twit. La utilidad es patente, aunque en el caso de que ese timeline sea público, podría considerarse como un problema de seguridad. Sin embargo esto mismo, enviado mediante Direct Messages podría ser una posible solución.

Para otras herramientas publicadas en este blog como amISpammer y Brute12UNX, tuve la tentación de añadir opciones de notificación mediante twitter, cuando una IP ha sido incluida en alguna lista negra o cuando se ha obtenido la contraseña de un #PKCS12. Actualmente, en ambas herramientas, se permite notificar mediante un correo electrónico. Aunque no descarto implementar la notificación a Twitter en un futuro cercano, he preferido crear una herramienta global que permita notificar a un usuario Twitter mediante Direct Messages.

El "original" nombre de la herramienta, TweetMe!, es una implementación por línea de comandos que permite enviar un mensaje, ya sea por parámetros de entrada como el resultado de la salida de otro comando.

Para ello, y aprovechando que los Direct Messages en Twitter soportan una longitud de hasta 920 caracteres, TweetMe! enviará de esa longitud, y si el mensaje a enviar es mayor, lo troceará cuanto sea necesario y lo enviará reordenado al usuario elegido.

Una aplicación muy interesante de esta herramienta es la creación de un nuevo mecanismo de notificación de eventos para plataformas de Nagios.

Las dos formas de ejecutarlo son:

  • tweetme.pl <usuariotwitter> <"El mensaje que queramos">
  • comando | tweetme.pl <usuariotwitter> -> envía la salida de al usuariotwitter por DMs

Para incorporar la mencionada funcionalidad en Nagios, hay que añadir lo siguiente al fichero /etc/nagios/misccommands.cfg:


define command

{

command_name notify-by-twitter


command_line /bin/printf "$SERVICESTATE$ alert for $HOSTALIAS$/$SERVICEDESC$ $OUTPUT$" | /usr/local/bin/tweetme.pl <usuariotwitter>

}

y luego en el fichero /etc/nagios/contacts.cfg indicar para qué usuario(s) queremos añadir notificación por twitter mediante: "service_notification_commands notify-by-twitter"

En mi caso, por ejemplo lo utilizo encadenado con amispammer en el cron para comprobarlo diariamente:

29 5 * * * /usr/local/bin/amispammer | /usr/local/bin/tweetme.pl <usuariotwitter>

A vuestra disposición queda el script para que lo descarguéis desde aquí o aquí

6 comments :

miguel dijo...

Nunca he usado twitter. En mi trabajo usamos nagios, tenemos alertas via email. Que ganamos con que avise via twitter? Es que no lo termino de ver...En un entorno pequeño tal vez, pero en un entorno grande en el que te pueden llegar del orden de 20-50 alarmas (a veces timeouts) diarias...A lo mejor me estoy perdiendo algo

Seifreed dijo...

Hola!
Lorenzo el enlace de http://www.securitybydefault.com/www.lorenzomartinez.es/projs/tweetme
No funciona :S
Ahora mismo lo pruebo y hago entrada :D!
Un saludo

Anónimo dijo...

Esa misma pregunta es la que tengo yo. Que si, que usar twitter es muy 2.0 pero aporta alguna ventaja.

No soy ningún experto en seguridad, pero el uso del twitter no puede ser en realidad una fuente de inseguridad.

Lorenzo Martínez dijo...

@Seifreed -> tienes razón, es que el enlace estaba mal. Es http://www.lorenzomartinez.es/projs/tweetme.

Ya está arreglado!


@Miguel -> Te aporta tener otro mecanismo de notificación más, aparte del correo (que en un momento dado puede dejar de funcionar) y una empresa grande no puede darse el lujo de quedarse sin alertas. Las mismas 20-50 alarmas las recibes por email y las tienes que leer igual no? Siempre puedes tener una cuenta twitter separada para las notificaciones, compartida con el equipo de personas que necesiten estar enterados de ello.

@Anonimo -> ¿Por qué puede ser inseguro recibir mensajes por DM si sólo tiene acceso a lectura una o pocas personas?

Anónimo dijo...

¡¡¡Que buena idea!!!!...publicar las alarmas del nagios en el twitter podría ser la alternativa para conseguir que el jefe o el cliente se tome en serio eso de renovar el parque de servidores XD.

Espera que se lo cuente a mi comercial, se va a frontar las manos.

Jordi Prats dijo...

@Anonimo: IMHO, que la seguridad dependa de un tercero no significa que sea menos seguro, solo eso: que depende de un tercero.

Lo mismo pasa si tienes el correo en gmail o usas el exchange o no te has revisado linea a linea el código del daemon de correo de turno (qmail, postfix...) --> si no es así, estas ""confiando""