Actualizar las reglas de Snort con Pulledork

Después de haber instalado y configurado Snort, puede ser mucho más practico actualizar las reglas brindadas por los desarrolladores de Snort de forma automática. Para hacerlo se utiliza Pulledork que se basa en un script en Perl.

Primero se instalan algunas dependencias:

yum install perl-Crypt-SSLeay perl-libwww-perl perl-Archive-Tar

Se descarga el programa:

cd /usr/src

wget https://pulledpork.googlecode.com/files/pulledpork-0.6.1.tar.gz

Se descomprime:

tar -xf pulledpork-0.6.1.tar.gz

Se entra en la carpeta creada:

cd pulledpork-0.6.1

se copia el script en una carpeta distinta:

cp pulledpork.pl /usr/local/bin/

Como las reglas se guardarán en un único archivo, se crea un carpeta donde guardarlas:

mkdir /etc/snort/pullrules

se cambian los permisos de la carpeta creada:

chown -Rf snort:snort /etc/snort/pullrules

Y se configura el programa:

nano /etc/snort/pulledpork.conf

Se copian las siguientes líneas:

rule_url=https://www.snort.org/reg-rules/|snortrules-snapshot.tar.gz|<oinkcode>
ignore=deleted.rules,experimental.rules,local.rules
temp_path=/tmp
rule_path=/etc/snort/pullrules/snort.rules
local_rules=/etc/snort/rules/local.rules
sid_msg=/etc/snort/sid-msg.map
sid_changelog=/var/log/sid_changes.log
sorule_path=/usr/local/lib/snort_dynamicrules
snort_path=/usr/local/bin/snort
config_path=/etc/snort/snort.conf
sostub_path=/etc/snort/pullrules/so_rules.rules
distro=RHEL-6.0
pid_path=/var/run/snort_eth0.pid
version=0.6.0

Como sabemos para descargar la regla se necesita una cuenta en www.snort.org. En la primera línea en lugar de <oinkcode> se pone el código generado como explicado en el articulo anterior.

Como se ha cambiado la carpeta donde guardar las reglas descargadas, hay que modificar el archivo de configuración de Snort:

nano /etc/snort/snort.conf

Se modifican estas tres líneas:

var RULE_PATH rules
var SO_RULE_PATH so_rules
include $RULE_PATH/local.rules

para que queden:

var RULE_PATH pullrules
var SO_RULE_PATH pullrules
include /etc/snort/rules/local.rules

Después de la ultima linea se añade:

include /etc/snort/pullrules/snort.rules

include /etc/snort/pullrules/so_rules.rules

Luego se comentan las siguientes lineas:

include $PREPROC_RULE_PATH/preprocessor.rules
include $PREPROC_RULE_PATH/decoder.rules
include $PREPROC_RULE_PATH/sensitive-data.rules

Para que queden:

#include $PREPROC_RULE_PATH/preprocessor.rules
#include $PREPROC_RULE_PATH/decoder.rules
#include $PREPROC_RULE_PATH/sensitive-data.rules

Se guardan los cambios. Como todas las reglas se guardan en dos archivos, se eliminan las líneas que empiezan con:

include $RULE_PATH

include $SO_RULE_PATH/

Con:

sed -i '/^include $RULE_PATH/d' /etc/snort/snort.conf

sed -i '/^include $SO_RULE_PATH/d' /etc/snort/snort.conf

Se prueba el servicio de actualización desde la consola:

/usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf

Aparecerá:

Captura

Terminada la operación, se reinicia Snort:

service snortd restart

Para que las reglas se actualicen cada día de forma automática, se crea una entrada en crontab:

crontab -e

Se copia la siguiente línea:

0 0 * * * root /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf

Se guardan los cambios y listo!

Vota el Articulo: 

Sin votos (todavía)
Evalúa la calidad del articulo
Suscribirse a Comentarios de "Actualizar las reglas de Snort con Pulledork" Suscribirse a VozToVoice - Todos los comentarios