Banner 1

glTail.rb. Visualización gráfica en tiempo real de ficheros logs en servidores.

Hemos visto muchas herramientas para visualización gráfica de capturas de red, logs, etc. Tenéis mucha más información y artículos en la serie creada al respecto: Visualización gráfica tráfico de red.
En esta ocasión vamos a estudiar una heramienta desarrollada en ruby que, conectando a un servidor local o remoto mediante SSH, es capaz de mostrar en tiempo real una serie de datos que toma de los ficheros logs. De esta forma es capaz de mostrar datos de logs de herramientas como Apache, Rails, IIS, Postfix/spamd/clamd, Nginx, Squid, PostgreSQL, PureFTPD, MySQL, Tshark, qmail/vmpop3d. Además es capaz de mostrarlos de forma simultánea. Esta herramiente es glTail.rb.
Muestra, en tiempo real, datos como: dirección de orígen/destino, protocolos usados, peticiones por minuto, ancho de banda, etc.

Instalando glTail.rb.

Para instalar glTail.rb he seguido la siguiente secuencia:
sudo apt-get install rubygems rake ruby1.8-dev libgl1-mesa-dev libglu1-mesa-dev libglut3-dev build-essential
sudo gem install net-ssh ruby-opengl -r
sudo gem install -y file-tail -r
Ahora descargamos glTail.rb:
wget http://rubyforge.org/frs/download.php/39787/gltail-0.1.8.tgz
tar -zxf gltail-0.1.8.tgz
cd gltail-0.1.8
Ahora tenemos que modificar / personalizar el archivo config.yaml que se ubica en gltail-0.1.8/dist/config.yaml para incluir lo servidores y comentar lo que no proceda. En mi caso y para este primer ejemplo:

servers:
    site1:
        host: 192.168.1.96
        user: preludeids
        password: tatachintatachan
        command: tail -f -n0
        #files: /var/log/apache/access_log
        files: /var/log/apache2/other_vhosts_access.log
        parser: apache
        color: 0.2, 1.0, 0.2, 1.0
#    rails:
#        host: anotherfunsite.com
#        user: anotherfunuser
#        port: 222
#        command: tail -f -n0
#        files: /var/www/apps/funapp/current/log/production.log
#        parser: rails
#        color: 0.2, 0.2, 1.0, 1.0
#    dev:
#        host: clockingit.com
#        source: local
#        files: /var/www/clockingit/logs/production.log
#        parser: rails
#        color: 0.2, 0.2, 1.0, 1.0

¿ Qué hemos hecho ?.
Hemos indicado para el site1 la IP del host remoto, usuario y contraseña para conectar mediante SSH y en files la ubicación del archivo log de apache.
Este sería una configuración de los más simple. Podríamos configurar dos fuentes de datos. Por ejemplo logs de Apache y Tshark:

Observad como he sustutuido el por defecto site1 por algo más personalizado para mi server donde se ubica prewikka (SIEM Prelude IDS / IPS) y otro para la ubicación de un log de Tshark donde estoy ejecutando esta herramienta en tiempo real.
La línea de comandos simple para volcar la salida de tshark en un fichero log sería:
tshark -ieth0 > tshark.log
También podemos, en el tag config, modificar dimensiones, tamaño de nodos, etc.

Ejecutando glTail.rb.

Ejemplo.1

En este primer ejemplo voy a usar un solo site. Un servidor HTTP Apache:

    prewikka_1:
        host: 192.168.1.96
        user: preludeids
        password: tatachintatachan
        command: tail -f -n0
        #files: /var/log/apache/access_log
        files: /var/log/apache2/other_vhosts_access.log
        parser: apache
        color: 0.2, 1.0, 0.2, 1.0

Una vez salvado el archivo y dentro de la carpeta bin donde se encuentra gl_tail, ejecutamos de la forma:
alfon@alfonubuntu:~/gltail-0.1.8/bin$ ./gl_tail ../dist/config.yaml
El resultado es:

Tenemos 3 columnas:
  • Columna izquierda. Tenemos información del site o sites. En este caso el site (prewikka_1).  Vemos un resúmen del contenido de las peticiones (imagenes, hojas de estilo, javascript..). Status HTTP y usuarios, en este aso dos IP que realizan peticiones al servidorHTTP  Apache junto a las peticiones o requests por minuto (r/m).
  • Columna central. Representa la información grafica, en tiempo real de los request o peticiones (de izquierda a derecha)  y las respuestas del servidor mediante nodos en 3D. El tamaño corresponde al “volumen” de la petición. Como respuesta del servidor, tendremos otros nodos que irán de derecha a izquierda.
  • Columna derecha. Información sobre las URLs requeridas por el origen de las peticiones junto a requests/minuto. Información de User Agent usado por el user o usuario que realiza las peticiones.
La información de las columnas varian dependiendo del parser usado. En este caso se trata del parse apache. Para Tshark, Poxfix, etc sería distinta la información.
Sobre visualización gráfica de logs de apache tenéis también:

Representación gráfica Apache access.log con apache2dot y Graphviz

Ejemplo.2

Bien, ahora vamos a usar Inguma-0.4 y nikto para realizar una auditoría del sitio web y vamos a observar el tráfico. El resultado es:

Observad la cantidad de requerst / minuto que genera nikto y en la columna de la derecha aparece una nueva columna: WARNINGS. código 404.
El User Agent, que no se aprecia bien en la captura, es Python urllib/2.6. GlTail ha detectado que se trata de un script de python.
Si realizáis esta prueba veréis en movimiento (tiempo real) todas estas “transacciones” y los nodos más pequeños de respuestas del servidor (de derecha a izquierda).

Ejemplo.3

Ahora voy a desactivar le site prewikka_1 y activar el site y parser Tshark. Ponemos en marcha Tshark.
sudo tshark -ieth0 > tshark.log
Ahora para probar realizo un scan con nmap.
En este caso solo tendremos información en columna izquierda y central:

Aquí vemos un nuevo tag de información que es TYPE. Referidos a los protocolos. En este caso TCP con 293.04  r/m.
==========
Hasta aqui por hoy. Hasta la próxima.

Fuente:https://seguridadyredes.wordpress.com/2011/09/16/gltail-rb-visualizacion-grafica-en-tiempo-real-de-ficheros-logs-en-servidores/

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay