Este navegador no dispone de las características necesarias para poder funcionar. Por favor usa otro navegador mejor que este :D

Para una mejore experiencia deberías usar: Chrome, Safari or Firefox browser.

naidbot

Por:

¿Qué es naidbot?

naidbot es un bot diseñado para ser un asistente de un sistema Unix.

Tecnologías

naidbot usa un conjunto de tecnologías que componen todo su potencial:

node.js

Es un entorno de programación en la capa del servidor basado en Javascript, con un sistema de E/S de datos en una arquitectura orientada a eventos, y basado en el motor Javascript V8 de Google.

MongoDB

Es un sistema de base de datos NoSQL orientado a documentos. En lugar de guardar los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de datos en documentos tipo JSON con un esquema dinámico llamado BSON haciendo que la integración de los datos en ciertas aplicaciones sea más fácil y rápida.

XMPP

Extensible Messaging and Presence Protocol, más conocido como XMPP es un protocolo abierto y extensible basado en XML, originalmente ideado para mensajería instantánea.

Este es el protocolo es usado por Google Talk, Facebook, Tuenti, WhatsApp Messenger, entre otras, para su chat.

¿algo pequeño?
Mejor algo grande!* * y muchas más funcionalidades...
Chat

Usamos un cliente de chat que nos permita poder comunicarnos con nuestro servidor.

CLI

También tenemos una interfaz basada en consola para poder controlar naidbot.

Sockets

Además naidbot usa un sistema de sockets que nos permite poder enviar mensajes desde otras aplicaciones.

Todo esto gracias a los comandos.

Los comandos son órdenes que recibe naidbot, procesa y ejecuta.

¿Qué es capaz de ejecutar?

naidbot es capaz de ejecutar una gran variedad de scripts.

* todos aquellos que se puedan ejecutar desde un terminal
Muy bien, ¿y la seguridad?

naidbot es un proceso que se ejecuta con los permisos que ejecuta el usuario que arranca la aplicación, por lo que hay que tener cuidado con qué usuario se ejecuta y a qué usuarios otorgamos permisos para ejecutar qué comandos.

Por lo demás...

naidbot filtra los comandos que considera peligrosos para el sistema.

Lo podríamos llamar shell injection

Muy bien, pero ¿Cómo funciona?

Pues de una manera muy sencilla...

Necesitamos dos cuentas para el funcionamiento:

Y otra cuenta para la administración, un usuario que llamaremos Main Admin

El Main Admin es el usuario que se encarga de toda la administración de naidbot pudiendo añadir, eliminar, cambiar usuarios, comandos, permisos...

Además recibe una notificación de todas las acciones administrativas que requieran de su atención o que puedan poner en peligro el funcionamiento de la aplicación.

Dependiendo del comando tenemos dos maneras de poder ejecutarlos...

Modelo básico:

comando [modificador de comando] [parámetro 1] [parámetro N] service restart ssh

Modelo experto:

comando [modificador de comando] [parámetro]:[valor] add contact u:[email protected] g:admin,user n:"Nombre de contacto"
Sobre el futuro...

La idea es continuar con el desarrollo de naidbot y añadir cosas como:

Contribuir

Siempre seguimos el principio:

KISS (keep it simple, stupid)

Let's naidbot!!!

Alejandro El Informático - 2012

Thanks!