Sistema de detección de intrusiones de red (IDS). Se basa en reglas para detectar una variedad de ataques/sondeos mediante la búsqueda de contenido de paquetes. Este nuevo motor admite la detección automática de múltiples subprocesos (IP, TCP, UDP, ICMP, HTTP, TLS, FTP y SMB), descompresión de Gzip y coincidencia rápida de IP.
Especificar la IP local en el archivo de configuración:
# nano /etc/suricata/suricata.yaml
vars:
address-groups:
HOME_NET: "[192.168.18.14/24]"
# systemctl status suricata.service
# suricata --list-runmodes
# suricata -c /etc/suricata/suricata.yaml -i eth0 -D
# suricata-update
# suricata -T
# suricata -T -c /etc/suricata/suricata.yaml -v
# suricata --build-info
# suricata --engine-analysis
# suricata --dump-config
# suricata --dump-features
# suricata --list-app-layer-protos
# suricata --list-keywords=all | less
# suricata-update update-sources
# suricata-update list-sources
# suricata-update list-enabled-sources
# suricata-update enable-source oisf/trafficid
# suricata-update
# nano /var/log/suricata/stats.log
# nano /var/lib/suricata/rules/suricata.rules
# tail -f /var/log/suricata/fast.log
# grep "$(date +%Y-%m-%d)" /var/log/suricata/eve.json | jq 'select(.event_type=="alert") | .alert.signature' | sort | uniq -c | sort -nr
# tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert") | {hora: .timestamp, alerta: .alert.signature, gravedad: .alert.severity, src_ip: .src_ip, dst_ip: .dest_ip}'
# sudo tail -f /var/log/suricata/eve.json | jq 'select(.src_ip=="192.168.18.14" and .event_type=="alert") | {hora: .timestamp, alerta: .alert.signature, gravedad: .alert.severity, dst_ip: .dest_ip}'
# grep "$(date +%Y-%m-%d)" /var/log/suricata/eve.json | jq 'select(.src_ip=="192.168.18.14" and .alert.severity <= 2) | .alert.signature' | sort | uniq -c
1.-
Comprobaciones con ataques
# jq 'select(.event_type=="alert") | .alert.signature' /var/log/suricata/eve.json | sort | uniq -c | sort -nr | head -10
# jq 'select(.event_type=="alert") | .src_ip' /var/log/suricata/eve.json | sort | uniq -c | sort -nr | head -10
# jq 'select(.event_type=="alert") | .timestamp[11:13]' /var/log/suricata/eve.json | sort | uniq -c
2.-
Crear una regla local para que suricata ignore conexiones a ifconfig.me, como ejemplo.
# nano /etc/suricata/rules/local.rules
# Ignorar completamente cualquier cosa relacionada con ifconfig.me (sin logs, sin alertas)
drop dns any any -> any any (msg:"IGNORED - ifconfig.me DNS"; dns.query; content:"ifconfig.me"; nocase; sid:9991001; rev:1;)
drop tcp any any -> any any (msg:"IGNORED - ifconfig.me directo"; content:"ifconfig.me"; nocase; sid:9991002; rev:1;)
# Ignorar APT (actualizaciones normales)
drop tcp any any -> any any (msg:"IGNORED - APT updates"; http.user_agent; content:"APT"; nocase; sid:9991003; rev:1;)
# suricata -T -c /etc/suricata/suricata.yaml
# systemctl restart suricata
3.-
Otras comprobaciones sobre quien abre conexiones ifconfig.me
$ grep -r "ifconfig.me" /etc/cron* /var/spool/cron/ 2>/dev/null
$ grep -r "ifconfig.me" ~/.* ~/.config/ ~/.local/ 2>/dev/null | grep -v ".cache"
# grep -r "ifconfig.me" /etc/systemd/system/ 2>/dev/null