martes, abril 24, 2007

Adium

Durante bastante tiempo, he estado usando ichat para conectarme a la red Jabber de Google Talk. Para el Messenger he usado el cliente de Microsoft. Sin embargo, algo que siempre me ha fastidiado de ambos es lo mal que se llevan con los proxys. Decidí probar el el Adium, un cliente gratuito, muy configurable y que puede ser usado para varias redes. Podéis ver algunas de las capturas de pantalla. La interfaz de usuario es la clásica con pestañas - frente a los otros clientes que suelen usar múltiples ventanas -

Como sistema de notificación que utiliza es growl (usado por otras aplicaciones). Aparte tiene soporte de AppleScript para aquellos que les guste programar la aplicación. Por supuesto, muy programable (sonidos, diversas maneras de decorar las ventanas, eventos que se dispararán, etc).

Una cosa muy interesante es que permite la creación de grupos con los distintos contactos, con independencia de la red a la que pertenezcan. Aparte, permite usar cifrado para la comunicación entre los diferentes contactos.

Para implementar los protocolos de red, Adium utiliza la librería libpurple, publicada con licencia GPL y usada por otros clientes de mensajería instantánea en el mundo Linux. Sin embargo, al no tener - de momento - soporte para voz y vídeo, Adium no dispone de esta funcionalidad. Existen varios proyectos que intentan implementar esta funcionalidad en Adium.

miércoles, abril 18, 2007

Snort: Algunas notas

Ultimamente estoy manejando bastente Snort, el IDS opensource que actualmente mantiene Sourcefire. En principio, he estado probando el que viene con la Debian 4.0 Etch, pero está bastante desactualizado, así que he decidido usar la última versión desde código fuente.

Compilar snort tiene pocas dependencias, sólo libpcap y pcre. Así que los pasos tradicionales para compilarlo:

./configure --prefix=/usr/local
make
make install #Como root

Ahora hay que bajarse las reglas. Sourcefire, presenta varios servicios de subscrición (de pago, sirve para financiar el desarrollo de Snort), una serie de reglas que puede bajarse los usuarios registrados (gratuitas, van algunos días retrasados con respecto a las de subscrición). Lo que se hace es bajarlas, y situarlas es un directorio adecuado (mirar este enlace).

Aparte de las reglas oficiales de SourceFire, existen una serie de reglas con licencia GPL que también se puede usar Snort. Son las llamadas Community Rules, y por último las de bleedingsnort, reglas más experimentales.

En mi caso lo que hago es lo siguiente. Crear el directorio /usr/local/etc/snort, donde voy a situar las reglas y la configuración. Las reglas las instalo en un subdirectorio rules, el fichero snort.conf - fichero de configuración - y modificarlo de manera adecuada (poner una variable que defina los paths a las reglas, definir la longitud de captura - debido a que al querer usar el sistema unified de log, necesito que me guarde todo el paquete.

El análisis de los logs lo quiero usar unos scripts en Python que he programado (originalmente, el objetivo de los mismos es sustituir los snort con conexión a base de datos en un despliegue de ossim). Por otra parte siempre se puede mirar el programa oinkmaster, pero eso lo dejo para otro post, cuando me lea la documentación.

Technorati Tags:

lunes, abril 16, 2007

Algunas notas más de Debian Etch

Siguiendo con la configuración del sistema Debian que utilizo de server en casa, y aquí van algunas notas de cosas que he usado.

En primer lugar el soporte de wpa está implementado en el paquete wpasupplicant, e integrado sin ningún problemas en el /etc/network/interfaces. Así usar una simple clave wpa-psk se hace de la siguiente manera:

iface ath0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        wpa-driver madwifi
        wpa-ssid  wifi
        wpa-psk clave-de-accesop
En este caso especifico el driver (madwifi), aunque lo normal es poder usar las extensiones wireless del kernel (wext).

Al cambiar la libc, algunos programas compilados me dan advertencias (mldonkey), con lo cual tengo que recompilarlos de nuevos (supongo que con el soportte ocaml). Por otra parte hay paquetes con versiones mucho más antiguas que la actual (por ejemplo snort, que es la 2.3.3, frente a la versión actual 2.6.x, y en beta la 2.7), pero eso es endémico de las Debian.La versión de qmail y las deamontools que tengo compilada con la versión antigua de Debian funcionan sin ningún tipo de problemas tampoco.

Poco más de las notas de mi actualización :)

Technorati Tags: ,

martes, abril 10, 2007

Debian, kernels,madwifi . Notas varias

Normalmente, al usar Debian en un update, no actualiza el kernel y deja la máquina con la versión que estás usando. Ayer, tras actualizar Debian Woody a Etch, decidí actualizar su 2.4.30 el último de la serie 2.6.20.6. En principio, quería usar por pereza (y por no pasarme 5 horas compilando un kernel en un K6-2 a 450 Mhz) usar la imagen 2.6.18 que trae la distribución. El problema es que esta imagen oficial no trae soporte para la wifi Atheros, el driver madwifi. Total, después de ver la documentación en Debian, me animé a usar el module-assistan, una serie de scripts para poder instalar módulos desde fuentes, que no están incluido en Debian por diversos motivos. El principal que estaba con un 2.4.x, pero necesitaba compilar para el 2.6.x e instalar antes de reiniciar, puesto que dicha máquina no tiene ni teclado ni monitor y la administro en remoto a través de la wifi.

No me salió demasiado bien la jugada, así que decidí tirar por el modelo clásico de Linux: bajarme un kernel, configurarlo, compilarlo (o sea 5 horas en esta máquina), meter el módulo de madwifi, compilarlo e instalarlo, en remoto. Así:

# cd linux-2.6.20.6 # make menuconfig # make bzImage # make modules # make modules-install # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.20.6 # cp System.map /boot/vmlinuz-2.6.20.6 # cp .config /boot/config-2.6.20.6 # cd .. # cd madwifi-0.9.3 # make KERNELSOURCE=/usr/src/linux-2.6.20.6 # make KERNELRELEASE=2.6.20 # cd / # update-initramfs -k 2.6.20.6 -c # rm vmlinuz # ln -s /boot/vmlinuz-2.6.20.6 vmlinuz # rm initrd.img # ln -s /boot/initrd.img-2.6.20.6 initrd.img # /sbin/lilo -v
El único paso importante en este caso es no olvidar hacer el initrd.img. Hay que asegurarse que la entrada correspondiente en el lilo.conf al kernel que estamos usando tiene el parámetro initrd=/initrd.img, ya que sino, lo más probable es que el kernel no arranque al faltarle algún módulo básico (ext3 por ejemplo)

Podría usar el make-kpkg que tiene Debian para hacer un paquete de kernel propio, pero al final, siempre me resulta más cómodo terminar haciendo la instalación manual.

Technorati Tags: ,

lunes, abril 09, 2007

Debian Etch, 64 bits y ossim

Acaba de salir la nueva versión de Debian Stable, Etch. Puesto que tengo acceso a un PowerEdge 1950 con dos Xeon que tienen las extensiones AMD 64 (Intel las llama EMT64T), me ha dado por probar que tal la instalación del sistema. Usando el disco de Netinstall de Debian, no ha habido ningún problema para instalar el sistema base.

Luego, he decido probar la compilación de ossim para la plataforma AMD64, utilizando las fuentes del cvs, en especial por la parte del server. Se ha compilado sin problemas y creado los paquetes .deb correspondientes. Ahora espero poder poner el server a funcionar y ver que tal reacciona. Al usar como plataforma de portabilidad la librería glib, no deberían existir problemas por el tamaño de los punteros ni nada por el estilo (he seguido estas instrucciones de instalación en el wiki de Ossim).

Los paquetes que genera ossim para Debian son los siguientes:

FicheroDescripción
ossim_0.9.9~rc4-3_amd64.deb Metapaquete para que instale el resto de los paquetes de ossim
ossim-agent_0.9.9~rc4-3_amd64.deb Agente de OSSIM. Este programa permite recopilar los datos desde los diferentes sensores (snort, p0f, arpwatch,...) eventos para enviárselos al server para su posterior correlación y proceso.
ossim-contrib_0.9.9~rc4-3_amd64.deb Diverso parches para herramientas y ejemplos de configuración para ossim, útil para desarrolladores.
ossim-framework_0.9.9~rc4-3_amd64.deb Frontend web para ossim.
ossim-framework-daemon_0.9.9~rc4-3_amd64.deb Daemon encargado de actualizar los ficheros de datos del frameworks (ficheros rrd, gráficas)
ossim-mysql_0.9.9~rc4-3_amd64.deb Scripts para realizar la carga de datos necesarios para el funcionamiento de OSSIM
ossim-server_0.9.9~rc4-3_amd64.deb Servidor de correlación de eventos de OSSIM.
ossim-utils_0.9.9~rc4-3_amd64.deb Scripts en Perl para el manejo de diversos aspectos de OSSIM

Tengo ganas de probar ossim sobre CentOS puesto que es una distribución que conozco más. A ver si tengo algo de tiempo, y genero los .spec para poder generar los paquetes adecuadamente.

Technorati Tags: , ,

jueves, abril 05, 2007

Simuladores de vuelo caseros

Mientras leía el foro de tacs he dado con un interesante post donde se habla de una afición que existe en internet de construir cabinas completas de aviones comerciales para simular su pilotaje. Conforme avanzaba en la lectura de los diferentes comentarios que han ido virtiendo los autores, me he quedado sorprendido de la cantidad de gente que hay en Internet dedicado a estos temas.

Voy a empezar dejándo un enlace al siguiente video:

Lo que estáis viendo es un simulador de vuelo de la cabina de un 737 construido por un mallorquín en su casa. El dinero y tiempo que habrá tenido que dedicar para crear esa cabina.

Siguiendo con la lectura de los post, me entero de la existencia del proyecto opencockpits, donde los entusiastas de este tipo simuladores se reunen para intercambiar conocimientos sobre el diseño, uso y simulación de estas cabinas. Merece la pena mirar las cabinas de Manuel Vélez y Jose Carlos López para ver el grado de realismo que llegan a tener o bien este simulador que está en el aeropuerto de Bilbao.

Quizás, me llama la atención la parte técnica de la construcción de estos simuladores. Muchos de ellos utilizan el Microsoft Flight Simulator para crear las imágenes, pero que puede ser extendido para que otros programas calculen todo el comportamiento del avión. Así por ejemplo Project Magenta suministra una serie de módulos de software como pmSystem que permite simular toda la lógica de un avión de transporte (y módulos que simulan a los sistemas de Boeing o Airbus. De hecho, este software puede ejecutarse en otros ordenadores y comunicarse con el Fligt Simulator (en versiones FS98, FS2000, FS2002, FS2004 and FSX.).

Hay empresas dedicadas a vender réplicas para construir los simuladores como Cockpitsonic, gente que escribe programas como FSUIPC para poder comunicar el Flight Simulator con otros programas (como por ejemplo los de Project Magenta), o bien datos de navegación.

La verdad, gracias a la gente del foro de tcas por postear cosas tan interesantes. Yo hace años que no toco un simulador de vuelo, y es impresionante el grado de realismo que alcanzan a día de hoy en los ordenadores personales. Me hace gracia pensar en los antiguos juegos de la época de los 8 bits o algunos que he jugado en PC y como ha evolucionado todo.

miércoles, abril 04, 2007

Dell Poweredge 1950 y Linux

Estoy probando con Linux un Dell PowerEdge 1950. Es un servidor de 1U, que puede venir equipado hasta con dos Xeon de última hornada, FSB a 1333 Mhz, hast 32 GB de RAM, discos SAS (Serial-Attached SCSI) y PCI-Express (especificaciones completas aqui)

Una cosa importante de ver son los drivers que utiliza el hardware que trae:

  • Tarjetas de red: Dos Broadcom NextStreme II 5708, gigabit ethernet. Usa el módulo del kernel bnx2
  • Lleva discos SAS y existen varias opciones para las controladoras. La que tiene este Dell se identifica como SAS 5, usando el módulo del kernel megaraid_sas. Este controlador no soporta RAID hardware. Existen sin embargo opciones para instalar controladoras con soporte de RAID (en el caso de Dell siempre se puede dar uno un paseo por aqui para ver que opciones y drivers existen para las controladoras de disco de sus máquinas).
  • Tarjeta gráfica ATI ES1000 integrada con 16 MB de RAM.

Probando el arranque con la Debian Estable no me detecta ni la controladora de discos ni la tarjeta de red. Sin embargo, con la Debian testing no hay ningún problema para detectar el hardware, ni con la CentOS 4.

Para preparar el sistema voy a usar la Debian Testing y usar RAID1 (mirror) a través de software para los discos. El instalador de Debian deja crear sin problemas los dos dispositivos RAID (uno para el sistema de ficheros y otro para la partición de swap).

A la hora de monitorizar hardware, he empezado buscando en esta página de Dell donde se describen diversos programas creados por el fabricante para ello. Puesto que los servidores soporta ipmi, con lo cual decidí probar el paquete openipmi para ver que tal funciona con el Dell. (ver los servidores de Dell que implementan ipmi). En el caso que nos ocupa, implementa la versión 2.0 de la especificación y tipo de interfaz KCS. Por ejemplo podemos ver el dmesg de los módulos:

ipmi message handler version 39.0
IPMI System Interface driver.
ipmi_si: Trying SMBIOS-specified KCS state machine at I/O address 0xca8, slave address 0x20, irq 0
ipmi: Found new BMC (man_id: 0x0002a2,  prod_id: 0x0100, dev_id: 0x20)
 IPMI KCS interface initialized
ipmi device interface
IPMI Watchdog: driver initialized
Copyright (C) 2004 MontaVista Software - IPMI Powerdown via sys_reboot.
IPMI poweroff: Found a chassis style poweroff function

También se puede mirar OMSA 5.0, un soft GPL de la propia Dell para la monitorización de sus servidores. De hecho, si vamos buscando por la sección de soporte tenemos varias utilidades para monitorizar y realizar operaciones de diagnóstico.

  • Dell 32 Bit Diagnostics, Diagnostics Utility, English, Multi System, v.5077A0, A5077
  • Dell MIBs for PowerEdge
  • Dell OpenManage Server Administrator Managed Node

Technorati Tags:

Verificando la sintaxis de una MIB (ASN.1)

Por motivos del guión he tenido que escribir una pequeña mib para las alarmas generadas por ossim. He necesitado algún software para comprobar que la mib que estaba escribiendo es correcta (al menos que pasa la compilación), y he encontrado libsmi, una librería de fuentes abiertas que permiten el análisis de ficheros en sintaxis ASN.1, en concreto la utilidad smilint que te informa de los errores que se comente a la hora de definir la mib.

Aparte la librería permite:

  • Analizar y mantener ficheros MIB y PIB.
  • Una serie de utilidades para comprobar, conventir y comprar módulos MIB y PIB
  • La colección de todos los estándares MIB y PIB publicados por IANA e IETF