S
yslog
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.
El
protocolo syslog es muy sencillo: existe un ordenador servidor
ejecutando el servidor de syslog, conocido como syslogd (demonio de
syslog). El cliente envía un pequeño mensaje de texto (de menos de
1024 bytes).
Los
mensajes de syslog
son
envia
dos
vía
UDP,
por
el puerto
514
,
en
formato de
texto plano.
6.1. INSTALACIÓN
DEL
SERVIDOR
Primeramente
para
el correcto funcionamiento de
LogAnalizer,
es necesario comprobar que los servicios: Web con soporte PHP, MySQL
y Apache esten funcionando correctamente o en su defecto instalarlos,
ya que LogAnalizer
trabajar en un entorno web:
#
apt
-get
install apache2-mpm-prefork mysql-server mysql-admin php5 php5-mysql php5-gd php5-mcrypt php5-imagick
6
.1.
1.
IN
S
TA
L
A
C
IÓN
DEL
SERVICIO RSYSLOG
Comprobados
los servicios indicados anteriormente,
se
proced
e
a instalar el servicio
r
syslog
con soporte para bases de datos MySQL y para el protocolo RELP
(Reliable Event Logging Protocol:
# apt-get install rsyslog-mysql rsyslog-relp
6.1.2. CONFIGURACIÓN
DEL SERVICIO RSYSLOG
El
primero paso será aceptar los mensajes syslog por el puerto 514
tanto TCP como UDP, lo cual será necesario para mantener la
compatibilidad con la mayoría de los dispositivos de red que emplean
o pueden utilizar un servidor centralizado de logs.
Para
ello
,
se
debe
descomentar las siguientes lineas en el
archivo
/etc/rsyslog.conf
#provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
El
segundo paso será habilitar el soporte para el protocolo RELP. Este
protocolo se encarga de transmitir y recibir registros syslog por la
red de forma más segura que a través de TCP. Para ello,
se
debe crear
el
archivo
/etc/rsyslog.d/relp.conf
con la siguiente información:
$ModLoad imrelp
$InputRELPServerRun 10514
El
tercer paso consiste en asegurar la viabilidad del servidor
centralizado de logs creando un sistema de buffering ya que deberá
asumir una gran cantidad de datos de syslog a la base de datos. P
a
r
a
ello, lo primero que
se
debe
realizar
es crear un directorio donde
se
almacena
rán
los
archivos
en
cola que sean necesarios:
# mkdir -p /var/rsyslog/queue
Posteriormente,
se
debe
añadir
al
final
archivo
/etc/rsyslog.conf,
las
siguientes líneas:
# Sistema de buffering:
$WorkDirectory /var/rsyslog/queue # directorio por defecto de los ficheros encolados
$ActionQueueType LinkedList # usar proceso asincrono
$ActionQueueFileName dbq ; # establece el nombre de fichero y tambien activa el modo disco
$ActionResumeRetryCount -1 ; # reintentos infinitos en caso de fallo de insercion
Una vez guardados los cambios, reiniciar el servicio de syslog:
# /etc/init.d/rsyslog restart
6.2. INSTALACIÓN
DEL PAQUETE LogAnalyzer
Ahora se procederá a instalar el software que permitirá ver los datos almacenados en la base de datos vía Web, desde cualquier equipo de la red. Para ello, lo primero que se hará es bajar el software, descomprimirlo y copialo al directorio donde se aloja el servidor web.
# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.4.
4
.tar.gz
# tar xvzf loganalyzer-3.4.
4
.tar.gz
# cd loganalyzer-3.4.
4
# mkdir /var/www/logs
# cp -R src/* /var/www/logs/
# cp contrib/* /var/www/logs/
# cd /var/www/logs/
Ahora se procederá a asignar atributos de ejecución a 2 scripts que vienen en el paquete y posterior a ejecutar uno de ellos:
# chmod +x configure.sh secure.sh
# ./configure.sh
Para activar la autenticación del software LogAnalyzer, se necesita crear una base de datos vacía para almacenar los usuarios y sus privilegios. Se puede indicar cualquier nombre para la base de datos. Para este tutorial, se usará el nombre Usuarios_LogAnalyzer y el usuario admin con la contraseña 123456.
Entonces
para crear la base, ejecutar las siguientes instrucciones:
# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.1.63-0+squeeze1 (Debian)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
cd ..
cd s
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Una vez que se ha conectado al servidor mysql, se procede a crear la base de datos
mysql> create database Usuarios_LogAnalyzer; mysql>grant all on Usuarios_LogAnalyzer.* to
root
@'localhost' identified by '
123456';
6.3. CONFIGURACIÓN
DE LogAnalyzer
Para
configurar el software,
se
debe
abrir
en
un
navegador
de
internet
y
escribir la siguiente
URL
:
http://
xxx.xxx.xxx.xxx
/logs/install.php
Ahora se
explicarán las opciones a configurar más destacables en el
asistente de configuración.
- Message
character limit for the main view = 80 (default)
- Enable the
user database.
Server: localhost
Port: 3306
Name: Usuarios_LogAnalyzer
User: root
Pass: ******
En el siguiente paso, se creará las tablas y datos necesarios.
- Se ha de crear por defecto el usuario administrador del software así que se recomienda que se tenga cuidado con los datos que se configuran ya que es imprescindible para gestionarlo.
- En el paso
de la configuración de la base de datos de logs
Source Type = MYSQL Native
Select View = Syslog Fields
Table type = MonitorWare
Database Host = localhost
Database Name = Syslog
Database Tablename = SystemEvents
Database User = rsyslog
Database Pass = (La password anterior ******)
Enable Row Counting = no
Si todo se ha hecho bien, se verá los registros del servidor centralizado de logs.
6.4. CONFIGURACIÓN
DE CLIENTES
PARA ENVÍO DE LOGS AL SERVIDOR CENTRALIZADO
A
la hora de configurar los clientes que van a enviar los logs al
servidor central, únicamente se tiene que especificar qué logs van a ir al servidor central, esto se lo hace en el archivo de configuración
/etc/syslog.conf
Una línea estandar es esta
por ejemplo, en la que se envía a /var/log/messages los logs
de cron, info, mail, etc:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
Para que estos logs se dejen de almacenar en el log local y pasen al remoto, únicamente hay que indicar con @ el hostname/ip del servidor syslogd. Si por ejemplo el servidor syslogd tiene el hostname syslogd01:
*.info;mail.none;authpriv.none;cron.none @syslogd01
Reinicar syslogd y automáticamente se comenzarán a enviar los logs al servidor centralizado:
# /etc/init.d/syslogd restart