Un IDS es un software detector de intrusos y sirve para agregar una capa extra a la seguridad de nuestro servidor. Un firewall es una capa con reglas que podemos configurar para hacer bloqueo de ips o puertos, mientras que un IDS hace un análisis más inteligente y de comportamiento para bloquear posibles amenazas, por ejemplo intento de ataques a vulnerabilidades conocidas en CMS como joomla o wordpress, así como ataques DoS.

Desde hace unos años estuve utilizando el IDS atomicorp, pero últimamente ha estado muy inestable así que me di a la tarea de buscar un IDS libre y gratuito ya que aotmicorp incrementó muy considerablemente sus precios y fue cuando instalé suricata, que, aunque también tiene sus detalles, es una buena alternativa para conocer.

Suricata tiene entre sus características de multiprocesamiento, detección automática de protocolo, aceleración de gráficos y reputación IP.

Para empezar, accesamos vía consola al servidor donde lo queremos instalar

Si es servidor externo


ssh root@miservidor

Si estás en el servidor donde se va a instalar, sólo abre la consola.

Requisito:


yum install epel-release

yum -y install gcc libpcap-devel pcre-devel libyaml-devel file-devel \
zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make \
libnetfilter_queue-devel lua-devel

Creamos una carpeta para descargar y compilar suricata y entramos a la carpeta


mkdir suricata

cd suricata

Descargamos suricata

Nota: Al momento de escribir el post, la versión 3.2 es la última, pero de preferencia visita la dirección https://suricata-ids.org/download/ para revisar la última versión y descargar esa.


wget https://www.openinfosecfoundation.org/download/suricata-3.2.tar.gz

Descomprimir suricata (colocando el nombre del archivo que se descargó, en éste ejemplo es suricata-3.2.tar.gz)


tar -xzvf suricata-3.2.tar-gz

Se entra a la carpeta creada en la descompresión (cambiar la ruta correspondiente a la versión que se descargó)


cd suricata-3.2

Ahora hacemos la configuración


./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-nfqueue --enable-lua

Y ahora hacemos la instalación completa, que ya contiene la configuración predeterminada con las reglas ya listas para utilizar


make install-full

ldconfig

Una vez que terminó de instalarse, verificamos nuestra IP e interfaces de red


ifconfig

Por ejemplo


eth1 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:0.0.0.0 Bcast:0.0.0.0 Mask:0.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3531948931 errors:1398 dropped:1938662 overruns:0 frame:1398
TX packets:7645318047 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1488440926834 (1.3 TiB) TX bytes:9181021943951 (8.3 TiB)
Interrupt:177 Memory:df900000-df920000

eth1:cp1 Link encap:Ethernet HWaddr 00:00:00:00:00:00
inet addr:0.0.0.0 Bcast:0.0.0.0 Mask:0.0.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:177 Memory:df900000-df920000

Debemos identificar la interfaz de nuestro dispositivo, en éste ejemplo es eth1, así también, debemos identificar la o las IPs que maneja nuestro servidor, en éste ejemplo los quité y puse en su lugar 0.0.0.0, pero se pueden identificar porque están en la sección “inet addr:”

Ahora haremos unas configuraciones en /etc/suricata/suricata.yaml


nano /etc/suricata/suricata.yaml

Y en la sección “vars” encontraremos la variable “HOME_NET” en la cual colocaremos nuestras IPs separadas por comas que identificamos con ifconfig

De HOME_NET: “[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]”

A HOME_NET: “[IP1, IP2, IP3…]”

Donde IP1, IP2, IP3 son las IPs que tienes.

En la sección port-groups, verifica que los puertos estén correctos, por ejemplo si cambiaste tu puerto de http o ssh, entonces aquí colocas el correcto.

En la sección “rule-files” se podrá indicar cuáles reglas estarán activas en el IDS, para activar las reglas sól oque hay quitar el signo “#” al principio de la línea.

Si se desea que también genere un log de http en el cual se registrará los elementos que son pedidos al servidor web, se debe ir a la sección “- http-log:” y cambiar “enabled: no” por “enabled: yes”

Se guarda con control + o y se sale con control + x

Y ahora ejecutamos suricata pasando como parámetro la interfaz de red que identificamos con ifconfig (en el ejemplo anterior eth1)


/usr/bin/suricata -c /etc/suricata//suricata.yaml -i eth1

Y ahora revisaremos si está escribiendo a los logs

Log de ataques (Todo lo que hacen en contra de nuestro servidor y ni nos dábamos cuenta)


tail -f /var/log/suricata/fast.log

Log de solicitudes a nuestro servidor web


tail -f /var/log/suricata/http.log

Y ahora que vimos que está funcionando, entonces cancelamos la ejecución de suricata con control + c en donde lo habíamos corrido, y ahora lo ejecutamos como servicio con el parámetro “-D”


/usr/bin/suricata -c /etc/suricata//suricata.yaml -i eth0 -D

Y listo, ya está corriendo nuestro IDS en el servidor

 


angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana. Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

2 Comentarios

María José Farfán · 28 mayo, 2020 a las 10:26

Hola, muchas gracias por el tutorial. Quisiera saber cuáles son los requisitos técnicos que debiese tener el servidor (disco, ram, procesador) y si tienes algo en relación a cómo hacer para que no se llene el log y deje de registrar los eventos. Desde ya muchas gracias! saludos

Aqib · 30 noviembre, 2020 a las 03:55

Hola, y para desinstalar? gracias

Deja un comentario