La combinación de Logwatch y OSSEC - Parte 4

18 de febrero 2010 por Chris Dejar una respuesta »

En mi último post instalamos Logwatch así como OSSEC. Ahora es el momento para obtener Logwatch y OSSEC jugando juntos en el mismo entorno limitado. En este post voy a hablar de cómo obtener Logwatch para resumir la información generada por OSSEC.

Opciones de implementación

Tenemos dos caminos que puede seguir para configurar esto:

  1. Han Logwatch analizar los registros OSSEC directamente.
  2. Han OSSEC enviar sus alertas a un servidor de tipo Syslog, a continuación, ejecute Logwatch en el servidor syslog.

El beneficio para la opción # 1 es que sólo tenemos un sistema. Logwatch se llevará a cabo en el sistema que aloja el servidor OSSEC. El problema que se va a ejecutar en el embargo implica el archivo de alerta OSSEC. Las entradas de registro no se normaliza. Esto significa que el formato puede cambiar a partir de la entrada a entrada, e incluso puede extenderse en varias líneas. Va a ser una verdadera pesadilla para crear un script Logwatch que filtrar y resumir la información de alerta.

Si vamos con la opción # 2, se requerirá otra caja para que actúe como nuestro servidor de registro centralizado. Con el fin de que el servidor OSSEC aceptar entradas de registro de no-agente, tiene que escuchar en UDP/514. Este puerto es el mismo utilizado por un servidor de registro centralizado, y no se puede tener dos aplicaciones comparten el mismo puerto (excepto con Windows, pero el acceso es muy complicado socket). En el lado positivo, las entradas de alerta se normalizan cuando se transmite al servidor Syslog para la creación de un guión resumen Logwatch será mucho más fácil. Además, Logwatch ya sabe acerca de los archivos Syslog estándar, así que vamos a tener menos trabajo de personalización que hacer.

Finalmente, he mencionado en un post anterior que OSSEC no está diseñado para ser una tarjeta SIM. Esto se debe a que no todo registro, sólo los eventos que generan una alerta. Así que probablemente va a querer un servidor centralizado de todos modos, y tiene sentido tener que almacenar la información generada por OSSEC.

Así que si suena como que estoy de dirección hacia la opción # 2, que son absolutamente correctas. Con eso dicho, de hecho voy a cubrir la opción # 1, ya que es una instalación mucho más compleja.

Lidiando con fecha / hora

Echa un vistazo a el archivo de registro OSSEC principal y usted debe ver similar a lo siguiente:

[Root @ Fubar registros] # tail -3 / var / ossec / logs / ossec.log

02/18/2010 12:32:05 ossec-rootcheck: INFO: Poner fin a escanear rootcheck.

02/18/2010 14:27:06 ossec-syscheckd: INFO: A partir syscheck exploración.

02/18/2010 14:39:21 ossec-syscheckd: INFO: Hasta syscheck exploración.

Tenga en cuenta la forma en que se formateó el sello de fecha / hora. Esto es diferente a la mayoría de las aplicaciones, así que lo primero que tendremos que hacer es decirle a Logwatch cómo lidiar con este formato. Tendremos que crear un script que se puede llamar cuando se necesita que leen el formato se muestra arriba.

Para empezar, entrando en el directorio de scripts compartidos:

cd / usr / share / logwatch / scripts / compartidos

Utilizando su editor favorito, cree un archivo llamado "applylongdate":

vi applylongdate

Esto es lo que necesita dentro de ese archivo. Siéntase libre de copiar / pegar desde esta página:

uso Logwatch: fechas;

my $ Debug = $ ENV {'LOGWATCH_DEBUG'} | | 0;

$ SearchDate = TimeFilter ("% Y /% m /% H% d:% M:% S ');

if ($ Depurar> 5) {

print STDERR "DEBUG: ApplyLongDate interior ... \ n";

print STDERR "DEBUG: Buscando a:". $ SearchDate. "\ N";

}

mientras que (defined ($ ThisLine = <STDIN>)) {

if ($ ThisLine = ~ m / ^ $ SearchDate / o) {

print $ ThisLine = ~ s / ^ .... \ / .. \ / .. ..:..:.. / /;

print $ ThisLine;

}

}

# Vi: tabulación = 3 = sintaxis perl TabStop = 3 y

Una vez guardado el archivo, ahora tenemos que establecer los permisos adecuados:

chmod 755 applylongdate

Configurar los archivos de registro

A continuación tenemos que decir Logwatch en los archivos de registro OSSEC se encuentran. Cada vez que añada nuevos ficheros de registro o crear nuevos servicios para controlar en Logwatch, debe colocar los cambios en el directorio / etc / logwatch. Vamos a crear dos archivos de configuración. El primero se encargará de mensajes OSSEC, y el segundo se encargará de alertas y cambios OSSEC respuesta activa.

Vamos a empezar con la creación del archivo de configuración para el archivo de registro principal OSSEC:

cd / etc / logwatch / conf / archivos de registro

vi ossec.conf

El contenido del archivo debe ser la siguiente manera:

LogFile = / var / ossec / logs / ossec.log

* ApplyLongDate =

Ahora puede guardar y salir del archivo. A continuación, vamos a crear el archivo de configuración para el resto de los archivos de registro:

vi ossec-alert.conf

El contenido de este archivo debe ser la siguiente manera:

LogFile = / var / ossec / logs / activo responses.log

LogFile = / var / ossec / logs / alertas / alerts.log

LogFile = / var / ossec / logs / firewall / firewall.log

Una vez terminado, guardar y salir. Los permisos por defecto debe ser aceptable para nuestra configuración.

Configuración de los servicios OSSEC

A continuación, tenemos que definir los servicios OSSEC e identificar lo que queremos usar como un título cuando los informes se generan. Así es como para crear el primer archivo:

cd / etc / logwatch / conf / servicios

vi ossec.conf

El contenido de este archivo es muy simple:

Title = "OSSEC Mensajes"

LogFile = ossec

Una vez terminada, se puede guardar y salir. Tenemos que crear un archivo más en este directorio:

vi ossec-alert.conf

El contenido de este archivo debe ser:

Title = "OSSEC alertas"

LogFile = ossec de alerta

Una vez terminado, guardar y salir como de costumbre.

El análisis de los comentarios

A continuación, tenemos que decirle Logwatch cómo dar formato a las entradas del registro en el informe. Tendremos que crear un script de personalización para cada grupo de servicios. Vamos a comenzar con un Logwatch suministrado script de prueba, sólo para asegurarse de que todo.

Empiece moviendo en el directorio correspondiente:

cd / etc / logwatch / scripts / servicios

Utilice su editor preferido para crear su primer guión:

vi ossec

El contenido de la escritura debe ser la siguiente manera:

#! / Bin / bash

# Este es el argumento de tan agradable que le mostrará las líneas que se

# Ser el procesamiento y presentación de informes sobre. En primer lugar, se mostrará el

# Variables de entorno estándar y luego se STDIN y

# Volcar de vuelta a STDOUT.

# Estas son las variables de entorno estándar. Puede definir

# Más en su archivo de configuración de servicios (véase más arriba).

echo "Fecha Entre: $ LOGWATCH_DATE_RANGE"

echo "Nivel de detalle: $ LOGWATCH_DETAIL_LEVEL"

echo "Temp Dir: $ LOGWATCH_TEMP_DIR"

echo "nivel de depuración: $ LOGWATCH_DEBUG"

# Desde aquí, tomar STDIN y lo descarga en STDOUT

gato

Cree su segundo guión:

vi ossec de alerta

e incluyen el mismo contenido exacto:

#! / Bin / bash

# Este es el argumento de tan agradable que le mostrará las líneas que se

# Ser el procesamiento y presentación de informes sobre. En primer lugar, se mostrará el

# Variables de entorno estándar y luego se STDIN y

# Volcar de vuelta a STDOUT.

# Estas son las variables de entorno estándar. Puede definir

# Más en su archivo de configuración de servicios (véase más arriba).

echo "Fecha Entre: $ LOGWATCH_DATE_RANGE"

echo "Nivel de detalle: $ LOGWATCH_DETAIL_LEVEL"

echo "Temp Dir: $ LOGWATCH_TEMP_DIR"

echo "nivel de depuración: $ LOGWATCH_DEBUG"

# Desde aquí, tomar STDIN y lo descarga en STDOUT

gato

Por último, tenemos que establecer los permisos adecuados:

chmod 755 ossec *

Prueba de la configuración

La forma más fácil de probar nuestra nueva configuración es ejecutar el comando:

logwatch | less

Si sólo desea ver los cambios, puede ejecutar un informe sobre cada servicio, una a la vez:

logwatch servicio ossec | less

logwatch servicio ossec alerta | less

Una mayor personalización

Una vez que llegue a todos los que trabajan más arriba, usted puede centrarse en conseguir Logwatch para filtrar y resumir las entradas del registro. Logwatch es bastante flexible, y se puede personalizar la salida de la forma que desee. Una de las cosas buenas de la escritura de la prueba por encima de lo anterior es que se le muestra exactamente lo que tiene que trabajar. Así que con un poco de magia expresión regular puede resumir las entradas según considere oportuno. Para algunas ideas, puedes ver los archivos que se encuentran en:

/ Usr / share / logwatch / scripts / servicios

Estos son los scripts de resumen por defecto incluido en Logwatch. En concreto, echar un vistazo a los archivos "pam" y "sshd". Ellos son grandes ejemplos tanto de un simple y un complejo conjunto de filtros de síntesis.

A medida que desarrolla sus guiones, prestar mucha atención a los $ LOGWATCH_DETAIL_LEVEL "variable. Esto le permitirá personalizar el nivel de salida del informe en función de la cantidad de nivel de detalle que el usuario está buscando. Por ejemplo, mientras usted todavía está en el directorio de servicios anteriores, ejecute el comando siguiente:

menos sshd

Cuando la primera página del contenido del archivo se muestra, escriba:

/ Detalle <Introducir clave>

La barra invertida nos permite buscar en el archivo de una cadena de texto en particular. En este caso estamos buscando la palabra "detalle". Una vez que se pulsa Intro la búsqueda saltar a través del archivo hasta que encuentra la primera instancia de la cadena de texto. También se hará hincapié en la cadena de búsqueda. En el primer partido se dará cuenta de que el autor asigna a la variable "$ detalle" a ser la misma que la variable $ LOGWATCH_DETAIL_LEVEL ". Esto es para ahorrar un poco de mecanografía.

Ahora pulse la tecla de barra invertida de nuevo seguido de la tecla Enter. Esto salta a través del archivo a la siguiente instancia de "Detalle". Usted debe ver:

if ($ Detalle> = 20) {

$ Usuarios {$ usuario} {$ host} {$ Método} + +;

} Else {

if ($ host ~ / $ IgnoreHost /) {

$ Usuarios {$ usuario} {} {$ host "(todos los )"}++;

Tenga en cuenta que el autor ofrece más información si el nivel de detalle se establece en 20 (a medio camino entre baja y media) o superior. Seguir saltando a través del archivo y verás otros ejemplos donde el autor aprovechado esta técnica.

Ahora la página hasta el final del archivo y usted debería ver la siguiente declaración:

if (otralista llaves%) {

print "\ n ** Las entradas sin igual ** \ n";

print "$ _: $ otralista {$ _} tiempo (s) \ n" foreach otralista% teclas;

}

Esta sección es muy importante, ya que es un cajón de sastre final. Pensar en una política de firewall por un momento. La mayoría de nosotros crear una regla final que dice: "Si no me permiten específicamente a través de un patrón de tráfico, lo niegan". En otras palabras, si ocurre algo inesperado, así es como quiero que manejar la situación.

La afirmación anterior tiene el mismo propósito al analizar el archivo de registro. Todas las anteriores declaraciones "if" intentar igualar una cadena de texto en la entrada del registro con el fin de darle formato correctamente. Esta entrada dice: "Si no se han emparejado y se imprime una entrada de registro específico, sin embargo, se imprima en una sección titulada" ** ** Las entradas sin igual ". Este paso es muy importante porque sin ella nunca vamos a ver las entradas inesperadas. Se trata de las entradas inesperadas que son probablemente los más importantes y más interesantes.

Resumen ejecutivo

Ambos OSSEC y Logwatch son excelentes herramientas complementarias. OSSEC destaca en la advertencia de que cuando un patrón de ataque conocido se lleva a cabo. Logwatch es un magnífico instrumento para resumir una parte de los registros de tiempo para que los humanos pueden realmente entender lo que está pasando. Mediante la combinación de las dos herramientas que pueden crear una defensa mucho más sólida en profundidad la postura. El conjunto es mayor que la suma de las partes.

Puestos relacionados con:

  1. La combinación de Logwatch y OSSEC
  2. La combinación de Logwatch y OSSEC - Parte 3
  3. La combinación de Logwatch y OSSEC - Parte 2
  4. Configurar un sistema de gestión de seguridad de la información-Parte 5
  5. Configurar un sistema de gestión de seguridad de la información-Part4

Anuncio

3 comentarios

  1. John Li , dice:

    Gracias por el gran trabajo. Estoy usando dos OSSEC y logwatch y que sin duda puede mejorar la postura con la orientación aquí.

  2. Chris dice:

    Me alegro de poder ayudar! :)

  3. cozmic dice:

    Buenos consejos para combinar los registros de ossec con logwatch!
    ¿Ha conseguido aplicar formato de fecha para el archivo de registro ossec de alerta también?

    Ahora mismo tengo todo el archivo de registro ossec de alerta en mi resumen, no sólo las fechas especificadas en logwatch (es decir, ayer). Funciona bien para el ossec.log.

    Gracias

Deja un comentario