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
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