Bienvenidos

Bienvenidos al libro digital de Micro Outsourcing, aquí encontraras una serie de artículos preparados por nuestros profesionales con base a nuestras experiencias y conocimientos, con el compromiso de aclarar tus inquietudes y solucionar los problemas que se presentan a diario en el campo informático.

lunes, 21 de noviembre de 2011

Archivo de Configuracion OSSEC


El ossec.conf es el archivo de configuración principal del sistema de detección de intrusos Ossec, está basado en código xml para que sea de fácil entendimiento y además por su organización basada en tags o etiquetas.
La ruta de este archivo es la siguiente: /var/ossec/etc/
El archivo ossec.conf está conformado por una etiqueta global llamada <ossec_config>
Dentro de esta etiqueta global se encuentran el siguiente listado de etiquetas.

ETIQUETA
DESCRIPCION
<global>
Configuración general usada en las instalaciones locales y de servidor.
<alerts>
Opciones de email y alertas de log
<email_alerts>
Opciones de alerta granular de email
<rules>
Lista de reglas incluidas
<syscheck>
Directorios del sistema a chequear
<localfile>
Archivos a monitorizar localmente en el equipo
<command>
Archivos .sh que se ejecuta según orden de active-response
<active-response>
Configuración de la respuesta activa


Etiqueta <global>  -  Dentro de la etiqueta global van las siguientes etiquetas:

<email_notificacion>   - En esta etiqueta van dos valores yes o no, al escribir yes activamos la notificación por email y con el valor no lo desactivamos.
<email_to>  - Esta etiqueta me permite escribir la dirección a la cual deseo recibir dichas notificaciones de email.
<smtp_server>  - Aquí va indicada la dirección ip del servidor de correos.
<email_from>  - En esta subetiqueta escribo la dirección a la cual deseo recibir los email.

Ejemplo:

<global>
   <email_notification>yes</email_notification>
   <email_to>root@arreaga.com</email_to>
   <smtp_server>192.168.3.121</smtp_server>
   <email_from>ossecm@jonathan.arreaga.com</email_from>
</global>



Etiqueta <alerts>  -  Dentro de la etiqueta alerts van las siguientes etiquetas:

<log_alert_level> -
Esta etiqueta indica desde que nivel, deseo las alertas de registro.

<email_alert_level> -
En esta etiqueta indico desde que nivel deseo mis alertas mediante email.

Ejemplo:

<alert>
  <log_alert_level>1</log_alert_level>
  <email_alert_level>7</email_alert_level>
</alerts>



Etiqueta <email_alerts>  -  Dentro de la etiqueta alerts van las siguientes etiquetas:

<email_to> -
Con esta etiqueta se puede indicar a que dirección de correo deseo alertar.

<level> -
Esta etiqueta me permite indicar el nivel de alerta que se desee enviar el correo.

<group> -
En esta etiqueta especifico a que grupo de reglas que están en la etiqueta <rules> deseo las alertas de email. VER Sección 3.2.

Ejemplo1:
<email_alerts>
  <email_to>root@arreaga.com</email_to>
  <level>8</level>
  <group>sshd</group>
 </email_alerts>
Ejemplo 2:
 <email_alerts>
   <email_to>root@arreaga.com</email_to>
   <level>6</level>
   <group>apache</group>
</email_alerts>



Etiqueta <rules>

<include> -
Esta etiqueta permite incluir el archivo .xml de una regla que se encuentra en la siguiente ruta: /var/ossec/rules

Ejemplo:


<rules>
  <include>rules_config.xml</include>
  <include>sshd_rules.xml</include>
  <include>telnetd_rules.xml</include>
  ………………………
 </rules>


Etiqueta <syscheck>  - Dentro de la etiqueta syscheck van las siguientes etiquetas:

<frequency> -
Esta etiqueta especifica la frecuencia en la cual syscheck se ejecuta

<directories> -
Con esta etiqueta indico que directorios van a ser chequeados por syscheck.
La etiqueta tiene varias opciones y su sintaxis seria asi: <directories opción = “yes”>

Opciones:
check_all  =  Realiza todos los disponibles chequeos de integridad.
check_sum  =  Usa md5/sha1 para chequear la integridad de los archivos.
check_size =  Chequea archivos por cambios de tamaño.
check_owner  =  Chequea archivos por cambio de propietario.
check_group  =  Chequea archivos por cambio de propietario de grupo.
check_perm =  Chequea archivos por cambios de permiso.

<ignore> -
Aquí yo específico los directorios o archivos a ignorar.


Ejemplo:

<syscheck>
  <frequency>79200</frequency>
  <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
  <directories check_all="yes">/bin,/sbin</directories>
  <directories check_all="yes">/var/www/html</directories>
  <ignore>/etc/utmpx</ignore>
  <ignore>/etc/dumpdates</ignore>
  <ignore>/etc/svc/volatile</ignore>
</syscheck>


Etiqueta <localfile> - Dentro de la etiqueta localfile van las siguientes etiquetas:

<log_format> - Formato del archivo log a ser monitorizado, si el archivo log es tiene entradas por línea se recomienda el formato syslog.
<location> - La ruta entera del archivo log.


Ejemplo1: 
<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/maillog</location>
</localfile>
Ejemplo2:
<localfile>
  <log_format>apache</log_format>
  <location>/var/log/httpd/error_log</location>
</localfile>




Etiqueta <command> - En esta etiqueta configuro la integración del archivo ejecutable .sh que se encuentra en la ruta “/var/ossec/active-response/bin”, para luego ser usado en respuesta activa.

<name> -
Dentro de esta etiqueta se pone el nombre del comando.
<executable> -
En esta etiqueta se escribe el nombre del archivo ejecutable script .sh
<expect> - El destino del comando a ejecutarse, puede ser:
<expect>
user</expect>
<expect>
srcip</expect>
<timeout_allowed> -
Permisión del tiempo que culmina el comando, puede ser yes o no.

Ejemplo:
<command>
  <name>firewall-drop</name>
  <executable>firewall-drop.sh</executable>
  <expect>srcip</expect>
  <timeout_allowed>yes</timeout_allowed>
</command>


Etiqueta <active-response> - Esta etiqueta permite ejecutar automaticamente un comando establecido por la etiqueta command, siempre y cuando se cumplan las condiciones establecidas por esta etiqueta.

<disabled> -
Contiene dos valores yes o no, no para activar y yes para desactivar la respuesta activa.
<command> -
Esta etiqueta se referencia algún comando que incluí en las etiquetas <command> previamente.
<location> -
Aquí se define donde el comando es ejecutado, puede ser: local, server, defined-agent y all.
<level> -
Nos permite configurar a partir de qué nivel deseo se active el active response cuando exista alguna coincidencia de regla.
<rules_id> - Aquí va el identificador numérico de una regla en particular.
<rules_group> -
El comando es ejecutado por cualquier regla y grupo de regla que coincida con mi configuración. (ver reglas tema 3.2)
<timeout> -
El tiempo en segundos que dura la respuesta activa.


Ejemplo:


<active-response>
  <disabled>no</disabled>
  <command>firewall-drop</command>
  <location>local</location>
  <level>10</level>
  <rules_id>5712,5720</rules_id>
  <rules_group>authentication_failures</rules_group>
</active-response>

En este ejemplo vemos que en esta respuesta activa se ejecutará el comando firewall-drop localmente a partir del nivel 10 de las regla número 5712 y 5720 que pertenecen al grupo de regla authentication_failures.

Entendiendo las Reglas de OSSEC


Las Reglas son las políticas de seguridad que contiene cada programa o aplicativo que consta dentro del grupo de reglas de ossec, estas reglas las podemos invocar con nuestro archivo de configuración llamado ossec.conf, aquí tenemos algunos ejemplos de reglas: ssh_rules, pam_rules, apache_rules, etc.
Las reglas son codificadas en código xml y se encuentran en la siguiente ruta:

/var/ossec/rules
Si lo listamos con el comando ls –la, podemos ver las reglas .xml que tiene el ossec



Ahora para entender las reglas vamos abrir el archivo sshd_rules.xml, como se muestra en la imagen:




Y  dentro del achivo tendríamos lo siguiente:
 






La parte que esta sombreada, nos indica un bloque de una regla especifica del archivo sshd_rules.xml

<rule  id = “numero de regla”  level = “Numero del nivel de regla” >
Etiqueta <description> Aquí se muestra la descripción de la regla  </description>
Etiqueta <group>Aquí va el nombre del grupo que la regla pertenece</group>
</rule>

martes, 8 de noviembre de 2011

Instalación OSSEC

  1. Abrimos la terminal de comandos, nos logeamos como root

  2. Descargamos OSSEC con el comando:
    # wget http://www.ossec.net/files/ossec-hids-latest.tar.gz

    (por defecto el archivo se guardara en la ubicación actual al ejecutar el comando)

  3. Ejecutamos el comando: # wget http://www.ossec.net/files/ossec-hids-2.6_checksum.txt

  4. Comprobamos la integridad del .tar.gz con el comando: # md5sum ossec-hids-latest.tar.gz

  5. Comprobamos la integridad del .tar.gz con el comando: # sha1sum ossec-hids-latest.tar.gz

  6. Extraemos el comprimido con el comando: # tar -zxvf ossec-hids-*.tar.gz 

  7. Ingresamos al directorio del archivo ya comprimido# cd ossec-hids-2.6

  8. Dentro de ese directorio ejecutamos el instalador con el comando:

    # ./install.sh

  9. Al ejecutar el comando nos saldrá lo siguiente:
    Y a su vez escribimos las 2 iniciales del idioma que desee la instalación




  10. Seleccionamos el tipo de instalación:

    1) Escribimos Local

    2) Damos ENTER para aceptar la ruta por defecto de instalación


  11.  Seleccionamos la dirección y servidor de correo

    3.1)    Damos "y" para aceptar notificaciones por e-mail

    - Escribimos la direccion de nuestro servidor de correo previamente configurado
      en este caso: root@arreaga.com
    - Damos "y" para aceptar la direccion 127.0.0.1 que apunta a la dirección local o
       aveces la propia ip.


  12. Realizamos los siguiente:

    3.2) Escribimos "y"

    3.3) Escribimos "y"


  13.  Opciones de respuestas activa

    3.4) Escribimos "y" para aceptar esta opcion
            (Se explicara posteriormente)


  14. Nos pregunta si deseamos activar el comando firewall-drop en active response, aceptamos con "y"


  15. Damos "n" para no agregar mas ips a la lista blanca caso contrario "y".


  16.  Presionamos ENTER y termina la instalación


    Activación, desactivación y reinicio del Servicio de OSSEC


    Una vez instalado OSSEC tenemos que activar el servicio con el siguiente comando:

    # /var/ossec/bin/ossec-control start

    Paramos el servicio de OSSEC con el siguiente comando:
    # /var/ossec/bin/ossec-control stop

    Reiniciamos el servicio de OSSEC con el siguiente comando:
    # /var/ossec/bin/ossec-control restart