25 septiembre 2014

Centralizando Logs con Rsyslog en Linux CentOS


Cuando trabajamos como Administradores de Sistemas una de nuestras responsabilidades es revisar periódicamente los Logs de los equipos para detectar cualquier anomalía. Hay muchos que piensan que los Logs de los equipos son solo un registro de lo que hacen los equipos y que realmente a veces no ayudan en mucho, pero en realidad si, con esto podemos detectar incluso hasta intentos de intrusiones o registros de algún comportamiento anormal del equipo o sistema que estamos administrando. Asi que es de vital importancia que los revisemos a menudo.
El tema está que a veces tenemos tantos equipos que se nos vuelve tedioso revisar una a uno, y realmente es conveniente tener un sistema que nos permita centralizar esos logs de todos esos equipos y que podamos revisarlo desde una interfaz donde podamos filtrar y demás. Es Aquí que entran Rsyslog y LogAnalyzer.
rsyslog-loganalyzerRsyslog es una herramienta Open Source utilizada en las versiones más recientes de Linux y que reemplaza a syslogd. Permite reenviar y recibir los mensajes de logs de varios equipos en una red de comunicación. Implementa el protocolo básico de Syslog extendiendo sus capacidades a filtrado basado en contenido, configuración flexible y añade características importantes como usar TCP para el transporte.
Dada la importancia que tiene que todo administrador de sistemas le de seguimiento a los Logs, vamos a ver aquí como podemos montar un servidor para esta tarea y podamos visualizar todo desde un navegador web.
Lo primero hacer una instalación limpia, en este caso usaré Linux Centos 6.5
Una vez Listo, Instalamos LAMP (Linux, Apache, MySQL-MariaDB, PHP)
Ahora procedemos a instalar Rsyslog
# yum install rsyslog*
Modificamos el Script que crea la Base de datos en MySQL.
# vi /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
CREATE DATABASE rsyslogdb;
USE rsyslogdb;
Guardamos y Salimos.
Creamos la Base de datos y la Tabla de Eventos en MySQL
#mysql -u root -pmysql> source /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sqlmysql> grant all on rsyslogdb.* to ‘rsysloguser’@’localhost’ identified by ‘rsyslog’;mysql> flush privileges;mysql> exit
Ahora procedemos a modificar el archivo de configuración de Rsyslog y hacemos las modificaciones que indico a continuación.
# vi /etc/rsyslog.conf
Quitamos el Comentario en las opciones que resalto.
# rsyslog v5 configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
#### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides –MARK– message capability
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
Agregamos lo Siguente
##Directivas adicionales##
$ModLoad ommysql
$ModLoad ommysql
*.* :ommysql:127.0.0.1,rsyslogdb,rsysloguser,rsyslog
$AllowedSender UDP, 127.0.0.1, 192.168.5.0/24, 192.168.10.0/24
$AllowedSender TCP, 127.0.0.1, 192.168.5.0/24, 192.168.10.0/24
local7.* /var/log/cisco.log

Aqui le estamos especificando los datos de la base de datos que creamos y en $AllowedSender le estamos especificando los clientes que tiene permitido enviar los logs hacia este servidor. La linea local7.* /var/log/cisco.log, es para recibir los logs de equipos Cisco. previamente se debe crear el archivo de log, # touch /var/log/cisco.log
iniciamos el servicio de Rsyslog y lo agregamos al booteo.
#service rsyslog start# chkconfig rsyslog on
Ahora procedemos a instalar la interfaz web donde visualizaremos los logs desde nuestro navegador. Este FrontEnd se llama LogAnalyzer.
LogAnalyzer es una interfaz gráfica a rsyslog y todos los datos de eventos. Provee una interfaz sencilla de navegación, análisis en tiempo real de eventos de red y servicios de reportería.
Vamos a proceder con la instalación.
# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.5.tar.gz# tar xzvf loganalyzer-3.6.5.tar.gz# cd loganalyzer-3.6.5
Copiamos los archivos web al Document Root.
#mkdir /var/log/www/loganalyzer# mv loganalyzer-3.6.5/src/* /var/log/www/loganalyzer/# mv loganalyzer-3.6.5/contrib/* /var/log/www/loganalyzer/
Cambiamos los permisos para correr el script de configuración.
# cd /var/www/html/loganalyzer/# chmod +x configure.sh secure.sh# ./configure.sh
Esto creará un archivo php en blanco.
Antes de entrar al ambiente web es necesario que deshabilitemos Selinux en centos.
# setenforce 0
Nota: No es recomendable deshabilitar SELinux en un servidor de Producción por cuestiones de Seguridad, Este simplemente debe ser configurado según sean los servicios que vamos a correr. Más adelante publico sobre este tema.
Ahora accedemos al ambiente web desde el navegador.
http://IP-Servidor/loganalyzer
Screenshot from 2014-07-28 18:56:34
Aqui daremos click donde dice here.
Luego a Next para que compruebe de que todo esta en orden.
Screenshot from 2014-07-28 19:01:19
Debe comprobar que el archivo configure.sh debe ser modificable. Si todo está bien le damos next nuevamente, aquí caemos en el paso 3.
Screenshot from 2014-07-28 19:04:24
En la Opción “Enable User Database” seleccionamos Yes y llenamos los datos de la base de datos que creamos previamente y le damos a Next.
Seguimos a la pantalla de crear las tablas, simplemente le damos a next.
Screenshot from 2014-07-28 19:07:09
Nos pide que revisemos por errores, si todo esta bien le damos a next.
Screenshot from 2014-07-28 19:08:02
Ahora Creamos el usuario de Administrador, y le creamos una contrasena, Damos click a next.
Screenshot from 2014-07-28 19:09:29
Ahora configuramos la fuente de los mensajes de Syslog.
En “Source Type” seleccionamos MYSQL NATIVE. Y llenamos los datos de la base de datos debajo.
Nota: Donde dice Database TableName esto debe estar igual que el script de creación de base de datos, en este caso SystemEvents y no systemevents como lo coloca por defecto.
Screenshot from 2014-07-28 19:14:37
Finalmente le damos a next. Y ya tenemos instalado LogAnalyzer.
Screenshot from 2014-07-28 19:15:05
Vamos a la linea de comandos y reiniciamos el servicio de Rsyslog.
# service rsyslog restart
Volvemos al navegador. Damos click a Finish y nos lleva a la pantalla de logueo.
Screenshot from 2014-07-28 19:16:24
Ingresamos los datos de la cuenta de adminsitrador que creamos durante la instalación y accedemos a la interfaz.
Screenshot from 2014-07-28 19:19:45
Ya solo es configurar sus equipos de comunicación y servidores Linux para que envien sus logs al servidor centralizado. En el caso de Servidores de Linux estaré publicando un tutorial sobre como hacerlo.
No olviden comentar,

Tomado de: http://www.ociolinux.org/linux/centralizando-logs-con-rsyslog-en-linux-centos/

No hay comentarios: