Suricata IDS/IPS 1.4b1 Instalación y configuración en Ubuntu mediante PPA. Custom HTTP logging.

Inicio este nuevo año «escolar» con un nuevo artículo sobre Suricata IDS/IPS. En esta ocasión vamos a instalarlo en Ubuntu 12.04 mediante PPA (Personal Package Archives), veremos nuevas características y aprovecharemos para avanzar un poco más (Custom HTTP Logging).

Instalación suricata mediante PPA (Personal Package Archives).

Añadimos el repositorio para las versiones beta de suricata.

alfon@ids0:~$ sudo add-apt-repository ppa:oisf/suricata-beta
You are about to add the following PPA to your system:
 Suricata IDS/IPS beta packages
 More info: https://launchpad.net/~oisf/+archive/suricata-beta
Press [ENTER] to continue or ctrl-c to cancel adding it

Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.MiJUPhIAGE --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80/ --recv 9F6FC9DDB1324714B78062CBD7F87B2966EB736F
gpg: solicitando clave 66EB736F de hkp servidor keyserver.ubuntu.com
gpg: clave 66EB736F: «Launchpad PPA for Peter Manev» sin cambios
gpg: Cantidad total procesada: 1
gpg:              sin cambios: 1

Hacemos update / upgrade.

alfon@ids0:~$ sudo apt-get update
alfon@ids0:~$ sudo apt-get upgrade

Instalamos suricata.

alfon@ids0:~$ sudo apt-get install suricata
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
  suricata
0 actualizados, 1 se instalarán, 0 para eliminar y 11 no actualizados.
Necesito descargar 610 kB de archivos.
Se utilizarán 1.815 kB de espacio de disco adicional después de esta operación.
Des:1 http://ppa.launchpad.net/oisf/suricata-beta/ubuntu/ precise/main suricata i386 1.4beta1-2ubuntu2 [610 kB]
Descargados 610 kB en 1seg. (363 kB/s)
Seleccionando paquete suricata previamente no seleccionado
(Leyendo la base de datos ... 146790 ficheros o directorios instalados actualmente.)
Desempaquetando suricata (de .../suricata_1.4beta1-2ubuntu2_i386.deb) ...
Configurando suricata (1.4beta1-2ubuntu2) ...

Ejecutamos suricata.

alfon@ids0:~$ sudo suricata -c /etc/suricata/suricata.yaml
11/9/2012 -- 13:37:11 - <Info> - This is Suricata version 1.4beta1 RELEASE
11/9/2012 -- 13:37:11 - <Info> - CPUs/cores online: 2
Failed to open file: /etc/suricata/suricata.yaml: No such file or directory

Vaya, nos falta crear las carpetas necesarias e incluir en ella los archivos necesarios, entre ellos el archivo de confguración suricata.yaml. Esos archivos se encuentran en http://www.openinfosecfoundation.org/download/suricata-1.4beta1.tar.gz

Configuración básica suricata.

La modificación de suricata.yaml, creación de carpetas, etc ya lo vimos pero no está mal recordarlo.

Antes que nada descargamos el tar.gz donde se encuentra los archivos de configuración necesarios.

wget http://www.openinfosecfoundation.org/download/suricata-1.4beta1.tar.gz
tar -xvzf suricata-1.4beta1.tar.gz
cd suricata-1.4beta1

Creamos las  carpetas.

sudo mkdir /var/log/suricata
sudo mkdir /etc/suricata

Y copiamos.

sudo cp suricata.yaml.in /etc/suricata/suricata.yaml
sudo cp classification.config /etc/suricata
sudo cp reference.config /etc/suricata
sudo cp threshold.config /etc/suricata

Ahora vamos a editar /etc/suricata/suricata.yaml

Modificamos el suricata log dir para ubicar los logs a /var/log/suricata

Estas dos líneas:

#magic-file: /usr/share/file/magic
magic-file: @e_magic_file@

lo dejamos así:

magic-file: /usr/share/file/magic
#magic-file: @e_magic_file@

también:

classification-file: @e_sysconfdir@classification.config
reference-config-file: @e_sysconfdir@reference.config

por:

classification-file: /etc/suricata/classification.config
reference-config-file: /etc/suricata/eference.config

Descomentamos:

# threshold-file: /etc/suricata/threshold.config

Reglas suricata Emerging threats.

Descargamos las reglas o suricata rules desde aquí: http://rules.emergingthreats.net/open/suricata/ ya que son reglas específicas para suricata.

cd /etc/suricata/
wget http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
tar xzvf emerging.rules.tar.gz

En la sección rule-files de /etc/suricata/suricata.yaml, que es donde se indican las rules a cargar, comentamos o descomentamos las reglas de nuestro interés. Es posible que alguna regla que esté en rule-files, no las tengamos.. se descomenta y listo.

Ahora ejecutamos:

sudo suricata -c /etc/suricata/suricata.yaml -i eth0

Listo.

Desistalación de suricata beta.

si queremos desistalar suricata:

apt-get remove suricata

Una vez desistalado podemos añadir el respositorio estable y e instalar de la misma forma:

sudo add-apt-repository ppa:oisf/suricata-stable

Las nuevas características de suricata 1.4

  • Custom HTTP logging contributed by Ignacio Sanchez (#530)
  • TLS certificate logging and fingerprint computation and keyword by Jean-Paul Roliers (#443)
  • TLS certificate store to disk feature Jean-Paul Roliers (#444)
  • Decoding of IPv4-in-IPv6, IPv6-in-IPv6 and Teredo tunnels (#462, #514, #480)
  • AF_PACKET IPS support (#516)
  • Rules can be set to inspect only IPv4 or IPv6 (#494)
  • filesize keyword for matching on sizes of files in HTTP (#489)
  • Delayed detect initialization. Starts processing packets right away and loads detection engine in the background (#522)
  • NFQ fail open support (#507)
  • Highly experimental lua scripting support for detection

En esta ocasión vamos a ver:

Custom HTTP logging.

Se trata de una configuración personalidad de los logs http que se encuentran en /var/log/http.log antes tenía un formato fijo y ahora lo podemos modificar mediate un formato Apache mod_logs_config (característica ésta que viene de Suricata 1.3.1).

En suricata.yaml tendremos las siguientes líneas al respecto:

  - http-log:
      enabled: yes
      filename: http.log
      append: yes
      #extended: yes     # enable this for extended logging information
      #custom: yes       # enabled the custom logging format (defined by customformat)
      #customformat: "%{%D-%H:%M:%S}t.%z %{X-Forwarded-For}i %H %m %h %u %s %B %a:%p -> %A:%P"
      #filetype: regular # 'regular', 'unix_stream' or 'unix_dgram'

El customformat lo podríamos modificar y dejarlo, por ejemplo, así:

- http-log:
      enabled: yes
      filename: http.log
      custom: yes # enable the custom logging format (defined by custom format)
      #customformat: "%{%D-%H:%M:%S}t.%z %{X-Forwarded-For}i %{User-agent}i %H %m %h %u %s %B %a:%p -> %A:%P
              customformat: "%h %l %u %t \"%r\" %>s %b"
      append: no
      #extended: yes     # enable this for extended logging information
      #filetype: regular # 'regular', 'unix_stream' or 'unix_dgram'

Para la extracción de ficheros en sesiones HTTP podéis consultar aquí: https://seguridadyredes.wordpress.com/2012/02/01/suricata-idsips-1-2-1-extraccion-de-ficheros-de-sesiones-http-trafico-de-red/

===============================================

Y hasta aquí por hoy, hasta la póxima.

Esta entrada fue publicada en Seguridad y redes, Suricata y etiquetada . Guarda el enlace permanente.

Una respuesta a Suricata IDS/IPS 1.4b1 Instalación y configuración en Ubuntu mediante PPA. Custom HTTP logging.

  1. Alvaro dijo:

    Muy buena entrada, gracias por el aporte

Deja un comentario