Las malas noticias
No directamente, no de la manera que quieres. Puede especificar múltiples salidas de alerta, como se describe en la Sección 2.6 del manual. Sin embargo, esto simplemente enviará las mismas alertas a múltiples ubicaciones. Seguirá teniendo alertas de firmas importadas de ddos.rules
y log.rules
registradas juntas.
Las buenas nuevas
No temas, podemos hacerlo funcionar. Lo que tendrá que hacer es crear múltiples archivos de configuración y tener cada registro por separado. Dependiendo de la manera exacta en que desee dividir el tráfico, hay varias formas de hacerlo.
MultiConfig
Snort tiene un mecanismo incorporado que permite procesar diferentes flujos de paquetes contra diferentes archivos de configuración. Esto puede ser útil si segmenta sus aplicaciones basadas en red o VLAN. Es decir, todas las aplicaciones de correo están en una VLAN, los servidores web en otra, etc. Los detalles completos se proporcionan en Sección 2.10 del manual, pero los bits más relevantes a comprender son que depende de la VLAN o la red, y no puede haber duplicados. Lo que significa que esta es una configuración válida,
config binding: /etc/snort/snort.conf-ddos net 192.168.100.0/24
config binding: /etc/snort/snort.conf-log net 192.168.200.0/24
pero esto no es.
config binding: /etc/snort/snort.conf-ddos net 192.168.100.0/24
config binding: /etc/snort/snort.conf-log net 192.168.100.0/24
Para usar esta función en su situación, tendría que ejecutar ddos.rules
contra un conjunto de hosts y log.rules
contra otro. Dudo que quieras tomar este enfoque.
Instancias múltiples
Hasta la fecha, snort es de un solo hilo, por lo que cuando el procesamiento es lo suficientemente intenso como para utilizar un procesador completo, comenzará a eliminar paquetes. Gracias a esto, a menudo encontrará sensores de snort con varias versiones de snort en ejecución. En general, esto funciona usando algo llamado PF_RING, que es como un equilibrador de carga de paquetes, o al recortar el espacio de su red y ejecutar una versión de snort por bloque. Así que una instancia de snortd
monitoreando 192.168.1.0/25
y otra mirando 192.168.1.128/25
. En la mayoría de los casos, cada proceso utilizará el mismo archivo de configuración, pero solo observará ciertas direcciones.
Podemos adoptar ese enfoque y activarlo un poco para que funcione en su situación. Vamos a crear dos archivos de configuración y establecer así las partes relevantes.
/etc/snort/snort.conf-ddos
output alert_syslog: LOG_LOCAL0 LOG_ALERT
include $RULE_PATH/ddos.rules
/etc/snort/snort.conf-log
output alert_syslog: LOG_LOCAL1 LOG_ALERT
include $RULE_PATH/log.rules
Luego, configuramos el motor de syslog y lo reiniciamos después de hacer el cambio, por supuesto.
local0.alert /var/log/snort/alert-ddos.log
local1.alert /var/log/snort/alert-log.log
Ahora cuando ejecutas snort lo haces dos veces, cada uno usando la opción -c
. La primera vez usaremos -c /etc/snort/snort.conf-ddos
y la segunda con -c /etc/snort/snort.conf-log
.
Ahora debería tener dos instancias de snortd
en ejecución, una solo con las firmas ddos.rules
y el registro en LOCAL0 y una con las firmas log.rules
y el registro en LOCAL1. Siempre que se esté comportando syslog, debes tener tus alertas registrando por separado sin mezcla.