Instalando Suricata

Post honetan ikusi egingo ditugu Suricata Debian batean instalatzeko jarraitu beharreko pausoak 10.6. Suricata sare-motor bat da, errendimendu handikoa, IDS gisa (Sare-sarrerako Detekzio Sistema), IPS (Sare-sarrerako Prebentzio Sistema) eta sarearen monitorizazio sistema moduan erabiltzen da, eta jakina, ¡Iturburu irekia!!

Suricatari esker gure sarean zer gertatzen ari den unean bertan jakin ahal izango dugu, zer gertatzen ari den ikasi ahal izango dugu, zein makinek zeinarekin komunikatzen duten… besteak beste, gure intereseko trafikoari buruz jakinarazteko arauak egin ahal izango ditugu, oso ondo. Beste dokumentu batean ikusiko dugu Suricatak bildu dituen datuak nola esportatu Elasticsearch-era, y así, Kibana edo Grafanarekin trafiko hori ikusgai egiteko.

Debian Buster-en Suricata instalatzen dugu honako hau exekutatuz:

echo "deb http://http.debian.net/debian buster-backports main" > /etc/apt/sources.list.d/backports.list
apt-get update
apt-get install suricata -t buster-backports
apt-get install suricata-oinkmaster

 

Suricata konfigurazio-fitxategian (/etc/suricata/suricata.yaml) gutxienez sare-interfazearen izena zuzen idatzi behar dugu trafikoa entzuten duen, podremos definir cuáles son los rangos IP locales y habilitaremos si queremos la irteera en vista simple de una línea (como en Snort):

af-packet:
  - interface: ens192


HOME_NET: "[192.168.1.0/24,192.168.0.0/24,192.168.33.0/24]"

outputs:
  - fast:
      enabled: yes
 fitxategi-izena: fast.log
 append: bai

 

Anteriormente hemos instalado Oinkmaster, lo utilizaremos para gestionar y mantener actualizadas las reglas. En su fichero de configuración (/etc/oinkmaster.conf) añadimos la siguiente URL:

url = http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz

 

Recargamos y actualizamos las reglas:

systemctl restart suricata
systemctl status suricata
suricata-oinkmaster-updater

 

Como comentábamos, podremos crear ficheros con reglas (/etc/suricata/rules/misreglas.rules), por ejemplo esta primera, que si detecta que hay tráfico ICMP (de cualquier origen a cualquier destino) que nos genere un registro en el fichero de log. Así que si detecta que alguien hace un PING nos lo indicará, añadimos:

alert icmp any any -> any any (msg: "ICMP detectado";)

 

Recordar que debemos indicar en el fichero de configuración de Suricata (/etc/suricata/suricata.yaml) el nombre del fichero con las reglas que acabamos de definir:

rule-files:
  ...
  - misreglas.rules

 

Reiniciamos Suricata para que lea los últimos cambios realizados:

systemctl restart suricata
systemctl status suricata

 

Y podremos hacer un PING a cualquier IP desde cualquier equipo y debería quedar registrado en los outputs que hayamos indicado:

ping 8.8.8.8
tail -f /var/log/suricata/eve.json
tail -f /var/log/suricata/fast.log

 

Por ahora muy chulo para poder ir conociendo posibilidades, podremos ir registrando todo lo que ve nuestro Suricata. Recuerda que si lo has desplegado como máquina virtual, has de habilitar el modo promiscuo, o si tu switch puede, que le redirija todo el tráfico a su puerto. Os dejo unos ejemplos de otras reglas iniciales para darle algo de juego:

alert tcp any any -> any any (edukia:"gmail"; msg: "detectamos gmail"; sid:1000002;)
alert icmp any any -> any any (msg: "ICMP detectado";)
alert icmp $HOME_NET any -> $EXTERNAL_NET any (msg: "ICMP de salida detectado"; sid:1; rev:1; classtype:icmp-custom-event;)
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg: "ICMP de entrada detectado"; sid:2; rev:1; classtype:icmp-custom-event;)
alert icmp $HOME_NET any -> $HOME_NET any (msg: "ICMP en la red local detectado"; sid:3; rev:1; classtype:icmp-custom-event;)
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg: "Conexión de Internet a LAN"; sid:5; rev:1;)
alert tcp 192.168.1.254 any -> 192.168.1.XXX any (msg: "Conexión de Internet a Jitsi"; sid:6; rev:1;)
alert tcp 192.168.1.254 any -> 192.168.1.XXX any (msg: "Conexión de Internet a Grafana"; sid:7; rev:1;)
alert tcp 192.168.1.254 any -> 192.168.1.XXX any (msg: "Conexión de Internet a NextCloud"; sid:8; rev:1;)
alert tcp 192.168.1.254 any -> 192.168.1.XXX any (msg: "Conexión de Internet a OTRS"; sid:9; rev:1;)
alert tcp any any -> 192.168.1.XXX any (msg: "Conexión de Internet a Citrix"; sid:10; rev:1;)

Eta esan bezala, este es un primer documento donde vemos cómo instalar y montar Suricata, cómo dejarlo plenamente funtzional que seguiremos garando con futuros dokumentos, al menos con la intención de depositarlo como dijimos en Elasticsearch y visualizarlo con Grafana o Kibana, al gusto.

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!