Manual Operativo de Instalación y Configuración de Snort

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Snort es un sistema de detección de intrusos (IDS) y prevención de intrusos (IPS) de código abierto. Desarrollado por Cisco, ofrece funcionalidades de monitoreo de red y detección de ataques. Este manual detalla los pasos de instalación y configuración de Snort en un sistema basado en Linux.

Requisitos Previos

  1. Sistema Operativo: Una distribución basada en Linux (Ubuntu, Debian, CentOS, etc.).
  2. Privilegios de Root: Necesitarás permisos de superusuario para instalar y configurar Snort.
  3. Dependencias:
    • libpcap
    • libpcre3
    • libdumbnet
    • bison
    • flex
    • zlib

Instalación de Snort

Paso 1: Actualización del Sistema
sudo apt-get update && sudo apt-get upgrade -y
Paso 2: Instalación de Dependencias
sudo apt-get install -y build-essential libpcap-dev libpcre3-dev libdumbnet-dev bison flex zlib1g-dev
Paso 3: Descarga y Compilación de Snort
wget https://www.snort.org/downloads/snort/snort-2.9.20.tar.gz
tar -xvzf snort-2.9.20.tar.gz
cd snort-2.9.20
./configure --enable-sourcefire
make
sudo make install
Paso 4: Verificación de la Instalación
snort -V
Paso 5: Configuración de Directorios
sudo mkdir /etc/snort
sudo mkdir /etc/snort/rules
sudo mkdir /etc/snort/preproc_rules
sudo mkdir /etc/snort/so_rules
sudo mkdir /var/log/snort
sudo mkdir /usr/local/lib/snort_dynamicrules
Paso 6: Descarga de Reglas y Archivos de Configuración

Descarga las reglas más recientes desde el sitio web de Snort y colócalas en el directorio /etc/snort/rules. También necesitas el archivo de configuración snort.conf.

Configuración de Snort

El archivo de configuración principal de Snort es snort.conf, que se encuentra en /etc/snort/snort.conf. A continuación, se proporciona un ejemplo completo y detallado de este archivo.

Archivo de Configuración: /etc/snort/snort.conf
# Configuración básica
var HOME_NET any
var EXTERNAL_NET !$HOME_NET
var DNS_SERVERS $HOME_NET
var SMTP_SERVERS $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var TELNET_SERVERS $HOME_NET
var SSH_SERVERS $HOME_NET

# Configuración de preprocesadores
preprocessor stream5_global: track_tcp yes, track_udp yes, track_icmp no
preprocessor stream5_tcp: policy linux, detect_anomalies, require_3whs 180, overlap_limit 10, small_segments 3 bytes 150, timeout 180, ports both 21 23 25 42 53 79 110 111 135 136 137 139 143 445 513 514 1433 1521 3306 6665 6666 6667 6668 6669 7000
preprocessor stream5_udp: timeout 180
preprocessor stream5_icmp: timeout 30
preprocessor http_inspect: global iis_unicode_map unicode.map 1252
preprocessor http_inspect_server: server default profile all ports { 80 8080 8180 } oversize_dir_length 500
preprocessor rpc_decode: 111 32771
preprocessor bo: -nobrute
preprocessor frag3_global: max_frags 65536
preprocessor frag3_engine: policy linux bind_to $HOME_NET
preprocessor ftp_telnet: global inspection_type stateful encryption_deep_inspect no
preprocessor ftp_telnet_protocol: ftp server default def_max_param_len 1000
preprocessor smtp: ports { 25 465 587 691 }
preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }
preprocessor dcerpc2: memcap 102400, events [co ]

# Configuración de las reglas
include classification.config
include reference.config

# Reglas locales
include $RULE_PATH/local.rules

# Reglas predefinidas
include $RULE_PATH/community.rules
include $RULE_PATH/emerging.rules

# Registro y Salidas
output unified2: filename snort.log, limit 128

Reglas de Snort

Las reglas de Snort se almacenan en archivos con extensión .rules. A continuación se muestra un ejemplo de una regla básica para detectar un intento de acceso a un servidor web en el puerto 80:

alert tcp any any -> any 80 (msg:"Acceso HTTP detectado"; sid:1000001; rev:1;)
Ubicación de las Reglas

Por defecto, las reglas se colocan en el directorio /etc/snort/rules/. Puedes descargar y actualizar reglas de la comunidad de Snort o de Emerging Threats.

Iniciar y Detener Snort

Para iniciar Snort manualmente, puedes usar:

sudo snort -c /etc/snort/snort.conf -i eth0

Para detener Snort, simplemente encuentra el proceso y termínalo:

sudo pkill snort

Supervisión y Mantenimiento

  1. Verificación de Logs:
    Los logs de Snort se almacenan en /var/log/snort/. Puedes monitorizar los archivos de log para ver los eventos en tiempo real:

    tail -f /var/log/snort/snort.log
  2. Actualización de Reglas:
    Es importante mantener las reglas actualizadas para garantizar una detección eficiente de amenazas. Utiliza el siguiente comando para actualizar las reglas periódicamente:

    sudo snort -u snort -g snort -c /etc/snort/snort.conf -i eth0
  3. Optimización de Rendimiento:
    Revisa y ajusta la configuración de preprocesadores y reglas en snort.conf según la carga y el hardware disponible.

Con esto, has completado la instalación y configuración básica de Snort en tu sistema. Este manual puede servir como base para una implementación más avanzada, dependiendo de las necesidades específicas de tu red y políticas de seguridad.