Desde que puedo bootear Ubuntu desde mi servidor PXE por la red lo he empezado a usar con mas frecuencia para pruebas y situaciones en donde no puedo arrancar desde el disco rígido.

Hoy quise usar aMSN en una pc arrancada desde la red y como ya es costumbre quise instalar el último snapshot de la versión en desarrollo de aMSN desde los servidores SVN.

Ahora me doy cuenta por que no me gusta Ubuntu y por que me gusta tanto Gentoo.

Ubuntu de entrada no provee ni siquiera del mínimo necesario para compilar nada, después de googlear un poco, resulta que hay que instalar el paquete build-essential para disponer de GCC y poder compilar como dios manda.

Instalado GCC, no se pueden resolver algunas dependencias, hacen falta lo que supongo deben ser las cabeceras de TCL/TK, libpng y libjpeg y hay que instalarlas a mano.

Resumiendo, como instalar aMSN en un solo comando:

wget http://amsn.sourceforge.net/amsn_dev.tar.gz && sudo apt-get install build-essential tcl-dev tk-dev libpng12-dev libjpeg62-dev && tar -zxvf amsn* && cd msn && ./configure && make && sudo make install

Me lo dejo para no tener que googlear la próxima vez y por si le sirve a alguien mas.

No me gusta Ubuntu. ¿Ya lo dije?

Al que como yo se encuentre en un punto en donde se le vuelve tedioso ir servidor por servidor, dispositivo por dispositivo revisando los archivos de bitácora (logs) de cada uno, esto le resultará de utilidad.

syslog es un estándar de facto para el envío de mensajes de registro en una red informática IP. Por syslog se conoce tanto al protocolo de red como a la aplicación o biblioteca que envía los mensajes de registro.

Un mensaje de registro suele tener información sobre la seguridad del sistema, aunque puede contener cualquier información. Junto con cada mensaje se incluye la fecha y hora del envío.

Recibir los logs de otros servidores en un servidor Linux:

En mi caso, mi servidor central corre Syslog-NG, pretendo recibir en este servidor todos los logs que generan otros servidores corriendo Linux y Windows, cámaras de seguridad, routers y puntos de acceso inalámbricos que controlo.

Syslog puede enviar información sobre TCP o UDP indistintamente. Por convención se usa el puerto 514 UDP. La mayoría de los dispositivos del tipo access points wireless o cámaras de seguridad no permiten especificar puerto o protocolo así que lo mejor es crear una regla en el firewall que reenvíe todo el tráfico del puerto 514 UDP que es la configuración por defecto a nuestro Syslog server:

iptables -A PREROUTING -t nat -i eth0 -p udp –dport 514 -j DNAT –to 192.168.1.150

Una vez hecho esto, habilitar Syslog-NG para que reciba tráfico por UDP editando el archivo /etc/syslog-ng/syslog-ng.conf:

source src {
unix-stream(«/dev/log» max-connections(256));
internal();
file(«/proc/kmsg»);
udp();
};

Con eso ya tenemos suficiente como para recibir todos los logs de otros servidores y dispositivos en la red o desde internet en nuestro servidor central syslog.

Consultando los Logs:

Todos estos logs se pueden consultar en diferido usando:

less /var/log/messages

O verlos en tiempo real desde una consola:

tail -f /var/log/messages

O traerlos desde tty12 a la tty1 para una cómoda visualización nuevamente editando /etc/syslog-ng/syslog-ng.conf:

# By default messages are logged to tty12…
destination console_all { file(«/dev/tty1«); };

Trayendo logs remotos hasta nuestro servidor syslog:

El paso siguiente es traer todos los logs remotos a nuestro servidor central para poder administrarlos con mas comodidad. A continuación algunos ejemplos para diferentes escenarios.

Windows:

En el caso de servidores que corren windows, bastará con instalar NTsyslog (requiere .NET 2.0 y windows installer 3.0) y configurarlo para que envíe los logs hasta nuestro syslogserver usando el número de IP o el nombre de dominio del mismo.

Captura del programa NTsyslog

Linux:

Cuando el servidor remoto corre syslog-ng, agregar en el archivo de configuración:

destination remote { udp(«mi.servidor.com» port(514)); };

Cuando el servidor remoto corre rsyslog o similares, agregar en /etc/rsyslog.conf:

*.*     @mi.servidor.com

Otros dispositivos:

Dependerá del caso pero la gran mayoría de equipamiento de red de calidad permite el reenvío de logs a otros dispositivos, solo es cuestión de acceder a la página web de administración de los mismos y configurarlos según corresponda.

Por último, la frutillita del postre, acceder a estos logs usando un cliente web usando phpsyslogng, (requiere Apache/PHP/MySQL), eso lo dejo para la próxima entrada, que por hoy se me acabó el tiempo:

Ejemplo de phpsyslogng
Sigue en la parte 2: [HowTo] Controlar los logs generados por syslog desde una página web

Toda una mañana perdida tratando de descubrir por que udev no poblaba el arbol de dispositivos en /dev.

El mensaje de error decía algo así como:

Assuming that something failed as /dev/zero does not exists

Como resultado, /dev/sda no existía, por lo tanto fsck no podía controlarlo y la PC se quedaba trabada durante el arranque… Lo raro es que ingresando al sistema y creando el dispositivo a mano todo funcionaba normalmente:

mknod b 8 0 /dev/sda

mknod b 8 1 /dev/sda1

¿El problema?

La actualización a sys-apps/baselayout-1.12.13

¿La solución?

Como se plantea en este bug, vaciar el contenido de /sys:

rm -fr /sys/*

De todas formas estoy seguro de que los usuarios de Windows se enojan mas veces al año que los de linux, así que una vez mas, Gentoo: Estás perdonado.

Cada tanto de entre las miles de entradas en los blogs que hablan siempre de lo mismo de ubuntu se encuentra uno con una gema escondida. Esto es lo que me pasó ayer leyendo Bichotoblog. Me encontré con Nast.

A pesar de llevar muchos años en esto, nunca lo había visto, y eso que suelo darme una vueltita cada tanto por /usr/portage/net-analyzer a ver que hay de nuevo.

Nast viene a ser una especie de nmap/ettercap para principiantes, un analyzador de redes con capacidad de Sniffer.

De leerme un poco el manual me ha dejado encantado.

¿Por que?

Por su rapidez de uso; En lugar de tener que realizar 4 o 5 operaciones distintas con ettercap para inundar toda la subred con peticiones ARP para saber quien estan en línea, usando Nast, basta con ejecutar:

nast -m

El resultado:

¡Realmente no podría ser mas sencillo!

Otra posibilidad que me ha dejado encantado es la de romper conexiones al vuelo. Puede interceptar paquetes ACK y falsificar un RST como respuesta rompiendo cualquier conexión establecida:

Entre otras tantas funcionalidades interesantes, puede seguir conexiones TCP entre hosts, loguearlas en formato propio o compatible con tcpdump. Puede descubrir interfaces en modo promiscuo, detectar envenenamiento en la tabla ARP, detectar la topología de la red, autodetectar hosts en modo gateway (puerta de enlace), escanear puertos usando la tecnica half-open y un largo etcétera.

En definitiva, una herramienta mas para el arsenal. Imprescindible.

Desconozco en otras distribuciones pero en Gentoo basta con un:

emerge nast

¡Y andando !