Configurando Suricata en Pfsense

NUESTRO GRAN AMIGO SURI

 

Como lo prometido es deuda, veremos como realizar una configuración con Suricata básica, luego ustedes pueden investigar más a fondo todas sus posibilidades. Tengan en cuenta que antes de poder realizar esto han debido seguir el post Implementando Pfesense con Suricata.

Lo primero de todo es ir a Services/Suricata/Global Settings, en este apartado lo primero que encontramos son las reglas, utilizaremos las reglas Free, quien quiera puede utilizar las Pro, para ello necesitaremos crearnos una cuenta en snort.org con suscripción free e ir al menu downloads para ver la última versión en este caso snortrules-snapshot-29151.tar.gz (Importante no poner la versión 3 no es compatible) además necesitamos un Oinkode que podéis encontrar en vuestro perfil de snort.org tras suscribiros.

Ahora cada cuanto queremos que actualice y Geolite2 donde crearemos una cuenta gratuita.

Y por último en este apartado tenemos el intervalo de tiempo para borrar la lista de ips bloqueadas, donde copiamos los logs y si preservamos los setting en caso de desinstalar el paquete.

Salvamos y nos vamos a Services/Suricata/Updates y hacemos click en updates para ver si todo está correcto quedando de la siguiente manera.

En Alerts nos mostrara las alertas que se generan y el porque.

En Blocks veremos las ips bloqueadas.

Pass Lists y Supress será explicado más adelante.

La parte de Logs Mgmt echarle un vistazo y que cada uno lo configure a su gusto.

En SID mgmt lo dejaremos desactivado ya que vamos a utilizar reglas de snort

En IP Lists podemos utilizar las listas de IQRisk bajo suscripción o crear/subir las nuestras, no utilizaremos este apartado ya que en otro post os enseñaremos otra forma con listas muy buenas y gratuitas.

Ya tenemos lo básico, pasemos a las interfaces que queremos proteger dirigiéndonos a Services/Suricata/Interfaces

Una vez estamos en dicho apartado le damos a Add, donde nos encontraremos muchas opciones. En la parte Wan Settings es donde seleccionaremos nuestra interfaz Wan donde queremos activar el servicio, si tenemos más Wan tendremos que activar el servicio para cada Wan. 

Por cierto se me olvidó que pueden cambiar el lenguaje de la interfaz en System/General Setup. En la parte de logs seleccionamos Send Alerts to System Log para enviar los logs a nuestro firewall y que nivel.

Una opción muy interesante para los logs si dispones de ELK(Elasticsearch Logstash y Kibana) es la opción EVE Output Settings grabándolos en json, aquí no me voy a meter ahora porque no acabaríamos nunca pero si necesitáis ayuda escríbenos y os explicamos encantados.

La siguiente opción es muy importante, sin ella lo único que haríamos es generar logs nada más y lo que buscamos es bloquear por lo tanto habilitamos la opción para que bloquee todos los hosts que generen una alerta de Suricata.

Continuamos con el performance, donde las opciones por defecto trabajan muy bien para la mayoría de los casos, en entornos virtualizados si notáis bajo rendimiento mirar primero antes drivers, tools,...antes de modificar nada en este apartado, por ejemplo en Proxmox tenéis que seleccionar el driver E1000 ya que el VirtIO va de pena para FreeBSD e incluso se corta el tráfico.

En el siguiente apartado veremos que redes queremos proteger, la opción por defecto será válida para casi todos los usuarios, pero si tienes redes que el firewall no puede ver puedes crea un Pass List en Services/Suricata/Pass Lists con esas redes y selecciona dicha lista en cada apartado en función del tipo de red, como por ejemplo en este laboratorio deberíamos meter nuestra red local ya que es la pata de donde cuelga la wan de esta máquina con pfsense.

En la parte de Pass Lists haremos lo mismo, nos iremos a Services/Suricata/Pass Lists y creamos otra lista con todas las IPS que no deben ser bloqueadas, esto es muy recomendable para que no haya un falso positivo y te corte la comunicación de algo importante, ejemplo, si utilizáis Cloudflare las ips de Cloudflare deberían ser añadidas a esa lista.

Por último crearíamos una Suppress list en Service/Suricata/Suppress donde en lugar de poner ips añadiríamos filtros para que no se ejecuten, como por ejemplo una regla de Suricata que no se aplique a la ip x.x.x.x Esto iréis viéndolo vosotros mismos explicarlo en detalle es un mundo, pero ya sabéis contactarnos o poner un comentario y os echamos un cable.

Y por último Arguments here will be automatically inserted into the Suricata configuration, por si queremos modificar la configuración de Suricata añadiendo los parámetros linea por linea, esto os dejamos el enlace de la documentación de Suricata porque tiene mucha miga jeje Documentación.

Salvamos y hasta aquí la primera parte.

Pasemos a Wan Categories donde podremos seleccionar que categorías queremos activar de todas las que nos hemos bajado anteriormente de snort siempre y cuando NO activemos la opción Use IPS Policy ya que sería automático en función del paquete snort. Seleccionamos todas ellas para empezar en Select All y salvamos, luego cada cual puede limarlas, aunque lo suyo es afinar utilizando la Suppress List o en el siguiente apartado que veremos.

Dentro de cada categoría hay reglas que podremos ver en Wan Rules si las hemos activado en el paso anterior, aquí es una parte donde afinamos si tenemos reglas que por algún motivo nos da muchos quebraderos de cabeza pero no son vitales deshabilitando o bien utilizando su SID para crear reglas en la Suppress list. Comentar que por defecto no vienen todas activadas podéis dedicarle un buen tiempo a ver cuales hay y que hacen.

El resto de opciones consultar la documentación porque también tiene miga salvo Wan Barnyard que es un simple interprete que nos colocará las alertas en una base de datos Mysql para poder realizar estudios, esto gasta recursos y de momento no nos interesa y Wan IP Rep que no utilizaremos, usaremos otro paquete pfBlockerNG y que os contaremos en el siguiente post.

Una vez todo realizado y salvado solo tenemos que activar Suricata en la interfaz Services/Suricata/Interfaces y dar al símbolo play.

Un tema importante es que como cualquier servicio puede sufrir una parada por diferentes motivos, para evitar que se pare y no vuelva a arrancar podemos instalar el paquete watchdog

Una vez instalado en Services tendremos la opción Service Watchdog

Añadimos nuevo servicio y seleccionamos Suricata IDS

Si queremos estar informados de que se ha parado y lo ha reiniciado, una vez añadido el servicio marcamos la casilla Notify.

El último paso para recibir esas notificaciones sería ir a System/Advanced/Notifications y configurar nuestro servicio de correo y a donde queremos que nos envié los correos. Este paso dependerá de si hacemos uso de smtp relay o utilizamos una cuenta autenticada, es sencillo de rellenar y está muy bien explicado las descripciones de los campos.

Espero que os haya gustado, podréis completar la seguridad de vuestro firewall opensource con el próximo post Rematando con pfBlockerNG

TL.

Gracias por leer nuestros posts.

2 Comentarios
  • GecKo
    Escrito a las 00:46h, 06 marzo Responder

    Muchas gracias por la guia.
    Pude poner el modem en bridge hacia mi PfSense y queria algunas reglas standard de seguridad sin tener que liarmela tanto y sabia que Suricata era la opcion.
    Pero no encontraba nada en español y detallado, hasta que encontre tu pagina.

    Gracias por explicar y tomarte el tiempo, un gran saludo!

  • TL
    Escrito a las 08:37h, 07 marzo Responder

    Gracias por tu feedback, me alegro que te haya sido útil

Comenta la entrada