# Gestión de Registros: La herramienta syslog-ng

# Introducción

## Metas

- Aprender a usar syslog-ng para gestionar registros.

## Notas

- Los comandos precedidos por “$” implican que debe ejecutar el comando como usuario genérico - no como root
- Los comandos precedidos por “#” implican que debería estar trabajando como usuario root.
- Los comandos con inicios de línea más específicos como “rtrX>” o “mysql>” indican que debe ejecutar los comandos en un equipo remoto, o dentro de otro programa.

# Ejercicios

Por favor, hable con los compañeros de clase que están usando el mismo router que usted y formen un grupo para hacer los siguientes ejercicios juntos. El grupo elegirá a una persona para que acceda al router del grupo, pero todos ayudarán con la configuración.

# Configure sus enrutadores para enviar mensajes syslog a su servidor (srv1)

Configure los enrutadores a continuación para enviar registros a srv1-campusY.ws.nsrc.org (100.68.Y.130)

- bdr1-campusY.ws.nsrc.org
- core1-campusY.ws.nsrc.org
- dist1-b1-campusY.ws.nsrc.org
- dist1-b2-campusY.ws.nsrc.org

Acceda por SSH a los enrutadores de su grupo y haga lo siguiente:

    $ ssh campusY@bdr1-campusY.ws.nsrc.org
    bdr1-campusY> enable
    bdr1-campusY# config terminal

Repita el comando “logging 100.68.Y.130” para cada router de su grupo.

    bdr1-campusY(config)# logging 100.68.Y.130
    bdr1-campusY(config)# logging facility local0
    bdr1-campusY(config)# logging userinfo
    bdr1-campusY(config)# exit
    bdr1-campusY# write memory

Ejecutar ‘show logging’ para ver un resumen de la configuración de registro (logging).

    bdr1-campusY# show logging

Salir del router (exit)

    bdr1-campusY# exit

Eso es todo. El router debería estar enviando paquetes UDP SYSLOG a su PC en el puerto 514. Para verificarlo, acceda a su servidor ‘srv1-campusY.ws.nsrc.org’

    $ ssh sysadm@srv1-campusY.ws.nsrc.org

y haga lo siguiente:

    $ sudo -s
    # apt-get install tcpdump   (no se preocupe si ya está instalado)
    # tcpdump -s0 -nv -i eth0 port 514

Ahora una persona del grupo debe volver a entrar en el router y hacer lo siguiente:

    $ ssh campusY@bdr1-campusY.ws.nsrc.org
    bdr1-campusY> enable
    bdr1-campusY# config terminal
    (config)# exit
    bdr1-campusY> exit

Debería ver en la pantalla de su PC la salida de TCPDUMP. Será algo parecido a:

    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    14:05:02.620767 IP (tos 0x0, ttl 254, id 43, offset 0, flags [none], proto UDP (17), length 215)
        100.68.6.1.62222 > 100.68.6.130.514: [udp sum ok] SYSLOG, length: 187
            Facility local0 (16), Severity notice (5)
            Msg: 466: Feb 22 14:05:01.545: %SSH-5-SSH2_USERAUTH: User 'campus6' authentication for SSH2 Session from 100.64.0.241 (tty = 2) using crypto cipher 'aes128-cbc', hmac 'hmac-sha1' Succeeded

Ahora puede configurar el software de registro (logging) en su servidor para recibir esta información y registrarla en un nuevo conjunto de ficheros.

# Instalar syslog-ng

Acceder via SSH a su servidor

    $ ssh sysadm@srv1-campusY.ws.nsrc.org

Estos ejercicios se han de hacer como root. Si no entra como root en su máquina entonces debe pasar a ser root tecleando:

    $ sudo -s
    # apt-get install syslog-ng syslog-ng-core

# Modifique /etc/syslog-ng/syslog-ng.conf

    # nano /etc/syslog-ng/syslog-ng.conf

Encontrar las líneas:

    source s_src {
           system();
           internal();
    };

y cambiarlas a:

    source s_src {
           system();
           internal();
           udp();
    };

Guarde el fichero y salga.

Ahora cree una sección de configuración para los registros de la red:

    # cd /etc/syslog-ng/conf.d/
    # editor 10-network.conf

En este fichero, copiar y pegar lo siguiente:

        filter f_routers { facility(local0); };

        log {
                source(s_src);
                filter(f_routers);
                destination(routers);
        };

        destination routers {
         file("/var/log/network/$YEAR/$MONTH/$DAY/$HOST-$YEAR-$MONTH-$DAY-$HOUR.log"
         owner(root) group(root) perm(0644) dir_perm(0755) create_dirs(yes)
         template("$YEAR $DATE $HOST $MSG\n"));
        };

Guarde el fichero y salga.

# Cree la carpeta /var/log/network/

    # mkdir -p /var/log/network/

# Reiniciar syslog-ng:

    # systemctl restart syslog-ng

# Probar syslog

Para asegurarnos de que haya algunos mensajes de registros, entre de nuevo en el router y ejecute algún comando de configuración (config), luego salga, por ejemplo:

    # ssh campusY@bdr1-campusY.ws.nsrc.org
    bdr1-campusY> enable
    bdr1-campusY# config terminal
    bdr1-campusY(config)# exit
    bdr1-campusY> exit

Asegúrese de salir del router. Si mucha gente entra y luego no sale, entonces otros no podrán tener acceso al router.

# En su PC, ver si empiezan a aparecer mensajes en la carpeta /var/log/network/2015/…/

    # cd /var/log/network
    # ls
    2017

    # cd 2018
    # ls
    02 03

    ... esto mostrará la carpeta para el mes
    ... cd dentro de esta carpeta
    # cd 02
    # ls
    22 23

    ... repetir para el siguiente nivel (el día del mes)
    # cd 23
    # ls
    100.68.6.1-2017-02-22-14.log

Se puede ver el fichero de registros resultante usando programas como less, more, cat, etc.

Verás que el registro se captura como a continuación;

    # less 100.68.6.1-2017-02-22-14.log

    2017 Feb 22 14:11:04 100.68.6.1 %SYS-5-CONFIG_I: Configured from console by campusY on vty0 (100.64.0.241)
    2017 Feb 22 14:11:05 100.68.6.1 %SSH-5-SSH2_CLOSE: SSH2 Session from 100.64.0.241 (tty = 0) for user 'campus6' using crypto cipher 'aes128-cbc', hmac 'hmac-sha1' closed
    2017 Feb 22 14:12:24 100.68.6.1 %SSH-5-SSH2_SESSION: SSH2 Session request from 100.68.2.135 (tty = 0) using crypto cipher '', hmac '' Failed
    2017 Feb 22 14:12:24 100.68.6.1 %SSH-5-SSH2_CLOSE: SSH2 Session from 100.68.2.135 (tty = 0) for user '' using crypto cipher '', hmac '' closed

# Resolución de Problemas

Si no aparecen ficheros dentro de la carpeta /var/log/network, entonces otro comando a probar estando dentro del router, en modo configuración, es usar shutdown / no shutdown en un interfaz de Loopback, por ejemplo:

    $ ssh campusY@bdr1-campusY.ws.nsrc.org

    bdr1-campusY> enable
    bdr1-campusY# conf t
    bdr1-campusY(config)# interface Loopback 999
    bdr1-campusY(config-if)# shutdown

Espere unos segundos

    bdr1-campusY(config-if)# no shutdown

Luego salga y salve la configuración (“write mem”):

    bdr1-campusYconfig-if)# exit
    bdr1-campusY(config)# exit
    bdr1-campusY# write memory
    bdr1-campusY# exit

Comprobar los fichero de registros dentro de `/var/log/network`

    # cd /var/log/network
    # ls

… siga la cadena de carpetas

¿Todavía no aparecen ficheros con registros?

Intente el siguiente comando para enviar un mensaje de registro de prueba localmente:

    # logger -p local0.info "Hello World\!"

Si todavía no se ha creado ningún fichero dentro de `/var/log/network`, verifique la configuración en busca de posibles errores. No olvide reiniciar el servicio syslog-ng cada vez que se cambie la configuración.

¿Qué otros comandos piensa que se podrían ejecutar en el router (TENGA CUIDADO!) que generen mensajes syslog? Puede intentar entrar en el router y escribir una contraseña incorrecta para “enable”.

Usar el comando “ls” en la carpeta de registros para ver si se ha creado algún archivo de registros en algún momento.