Implementando Syslog

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Redes - 2008/2009

Ingeniera en Informtica


Prctica 1
Pgina 1 de 5


Prctica 2
El protocolo Syslog de BSD




1 Objetivo

En esta prctica, se va a realizar una implementacin propietaria de syslog. Syslog es un
estardar de facto para el envo de mensajes de registro de una red o de un servidor. Por
syslog, se conoce tanto al protocolo de red, como a la aplicacin que enva los mensajes
de registro.

Un mensaje de registro, suele tener informacin sobre la seguridad del sistema, aunque el
mensaje, puede contener cualquier tipo de informacin, para posibles tareas forenses, se
suele almacenar la fecha y hora del envo de cada mensaje. Ejemplos de informacin que
se suelen registrar son:
Un intento de acceso con contrasea equivocada
Un acceso correcto al sistema
Anomalas: variaciones en el funcionamiento normal del sistema
Alertas cuando ocurre alguna condicin especial
Informacin sobre las actividades del sistema operativo
Errores del hardware o el software
Tambin es posible registrar el funcionamiento normal de los programas; por ejemplo,
guardar cada acceso que se hace a un servidor web, aunque esto suele estar separado
del resto de alertas.

2 Protocolo syslog.
El protocolo syslog es muy sencillo: existe un ordenador servidor ejecutando el servidor
de syslog, conocido como syslogd (demonio de syslog). El cliente enva un pequeo
mensaje de texto (de menos de 1024 bytes).
Los mensajes de syslog se suelen enviar va UDP, por el puerto 514, en formato de texto
plano. Aunque syslog tiene algunos problemas (de seguridad), su sencillez ha hecho que
muchos dispositivos lo implementen, tanto para enviar como para recibir. Eso hace
posible integrar mensajes de varios tipos de sistemas en un solo repositorio central.



3 Implementacin del protocolo.

Para la implementacin de nuestro servidor de syslog, se definir el siguiente protocolo.

1.- El servidor estar escuchando por el puerto udp 514.



Redes - 2008/2009
Ingeniera en Informtica


Prctica 1
Pgina 2 de 5


2.- Los mensajes intercambiados entre cliente y servidor seguirn el siguiente formato:

Fecha.
En formato dia-mes-ao hh:mm:ss
Severidad
Entero cuyos valores posibles para este campo se indican en la tabla adjunta.


Descripcin
Cadena de texto menor de 1000 caracteres.

3.- Tras la recepcin por parte del servidor de un mensaje del cliente, lo almacenar en el
fichero recibido por lnea de comandos, una lnea de texto por mensaje con la siguiente
sintaxis.

[Fecha] [Severidad] [Direccin IP del Cliente] [Descripcin]

4.- Una vez almacenado el mensaje en el fichero de log, el servidor devolver el mismo
mensaje recibido al cliente, para confirmar la recepcin, en caso de no recibir este
mensaje el cliente pasados 5 segundos, retransmitir el mensaje hasta recibir la
confirmacin del servidor. En caso de que el servidor, no pueda atender al cliente,
mandar un mensaje de ABORT, concluyendo este mensaje la ejecucin del cliente.




4 Implementacin del programa.

El alumno, realizar 2 programas, uno cliente y otro servidor que cumplan con la
especificacin de protocolo antes enumerado.

4.1 Servidor.
La sintaxis de la llamada al programa servidor ser:

# syslogserver nombre fichero log
0 Emergencia: el sistema est inutil i zabl e
1 Alerta: se debe actuar inmediatamente
2 Crtico: condiciones crt i cas
3 Error: condiciones de error
4 Peligro: condiciones de peligro
5 Aviso: normal, pero condiciones notabl es
6 Informacin: mensajes informati vos
7 Depuracin: mensajes de bajo ni vel



Redes - 2008/2009
Ingeniera en Informtica


Prctica 1
Pgina 3 de 5



Ejemplo:
# syslogserver /tmp/syslog_rii.log

A continuacin se describen los distintos parmetros de la llamada.

Nombre fichero log
Este parmetro se indicar el nombre del fichero donde se almacenar la informacin
de log transmitida por el cliente.

4.2 Cliente.

La sintaxis de la llamada al programa cliente ser:

# syslogclient host

Ejemplo:
# syslogclient localhost
# syslogclient 127.0.0.1

A continuacin se describen los distintos parmetros de la llamada.

host
Este parmetro se indicar siempre en la llamada al programa, en caso de no existir,
el programa indicar del formato de la llamada y terminar la ejecucin.

El formato de parmetro podr ser tanto formato punto (Ej: 127.0.0.1) como formato de
nombre (Ej: localhost).

5 Resolucin de direccin IP

En el caso de que el programa sea invocado con un nombre de host, es necesario para el
establecimiento del socket, traducir ese nombre en una direccin IP, esta operacin, se
realiza con la funcin gethostbyname(),cuya especificacin es la siguiente.

struct hostent *gethostbyname(nombre)
char *nombre;
struct hostent {
char *h_name; /* nombre oficial de la mquina */
char **h_aliases; /* lista de alias */
int h_addrtype; /* tipo de direccin */
int h_length; /* longitud de la direccin */
char **h_addr_list; /* lista de direcciones */
}



Redes - 2008/2009
Ingeniera en Informtica


Prctica 1
Pgina 4 de 5


Tras ejecutar la funcin anterior, en la estructura hostent, el sistema operativo dejar la
direccin IP en el campo h_addr , con su longitud en h_length, por lo que hay que copiar
la direccin IP al campo sin_addr de la estructura de la direccin del servidor.
Flujograma de servidor de log.

A continuacin se presenta el flujograma para la realizacin de cliente y servidor



6 Flujograma del cliente de log.

A continuacin se presenta el flujograma para la realizacin del cliente








7 Flujograma del servidor de log.
A continuacin se presenta el flujograma para la realizacin del servidor:



Redes - 2008/2009
Ingeniera en Informtica


Prctica 1
Pgina 5 de 5







8 Plazo para la realizacin de la prctica y evaluacin
Se dedicar CUATRO sesiones de laboratorio a la realizacin de esta prctica. La
realizacin de esta prctica permitir obtener hasta 0,6 puntos de la nota final del
laboratorio. El alumno deber entregar el cdigo fuente de la prctica al profesor, deber
ser capaz de demostrar el correcto funcionamiento de la prctica acorde a las
especificaciones y contra implementaciones estndar de este protocolo (tanto cliente
como servidor) y deber poder responder adecuadamente a las preguntas que le plantee
el profesor de la asignatura.

9 Bibliografa
Libros recomendados en el documento de presentacin de la asignatura.
RFC 3164. The BSD Syslog Protocol. http://www.faqs.org/ftp/rfc/pdf/rfc3164.txt.pdf
Pginas man de las funciones: select(), socket (), connect(), ,setsockopt (), getsockopt(),
sendto(), recvfrom(), fcntl(), getprotobyname(), gethostbyname().

También podría gustarte