Cómo instalar y configurar Snort en un sistema Linux para la detección de intrusiones

La detección de intrusiones puede ser un tema confuso para los administradores de sistemas. Cuando se desarrolla un sistema de detección de intrusiones (IDS), hay varios aspectos a tener en cuenta, como:

  • ·        Cómo monitorear el sistema en busca de intentos de intrusión.
  • ·        Qué tráfico debe ser monitoreado.
  • ·        Cómo registrar los intentos de intrusión.
  • ·        Qué hacer cuando se detecta un intento de intrusión.

Existen varios paquetes disponibles para automatizar y simplificar el proceso de detección de intrusiones, y Snort es uno de los mejores. Aunque Snort ha sido descrito como un sistema de detección de intrusiones "liviano", esta descripción se refiere más a la facilidad con la que Snort puede ser implementado en una red de tamaño pequeño a mediano que a las capacidades de esta utilidad altamente flexible. En este artículo, cubriremos los procedimientos para la instalación y configuración de Snort en un sistema Linux.

Índice de Contenido
  1. Descargando e instalando Snort
  2. Interfaces de red en modo promiscuo
  3. Configuración del registro para Snort
  4. Ejecución de Snort
  5. La opción -l
  6. Si Snort se ejecuta en modo de registro de paquetes solo con la opción -l, puede haber problemas al nombrar el directorio donde se almacenan los paquetes. Supongamos que estoy ejecutando Snort desde un host en la red 192.168.10.0 y quiero que Snort registre los paquetes relacionados con la red 192.168.20.0 en el host local. Para asegurarme de que Snort nombre los directorios de registro según el nombre del host remoto, utilizaría el comando:snort -dev /var/log/snort -h 192.16820.0/24
  7. Ejecución de Snort en modo de Detección de Intrusiones

Descargando e instalando Snort

Para este artículo, instalé Snort en un sistema que ejecuta Red Hat 7.0. Aunque puede haber diferencias entre las distribuciones, los procedimientos serán similares en todos los sistemas Linux y UNIX.

Antes de instalar Snort, debe instalar primero la biblioteca de captura de paquetes, libpcap. El paquete libpcap está disponible en el Grupo de Investigación en Red de LBNL y también está disponible en la mayoría de los proveedores de Linux. Una vez que haya descargado libpcap, ejecute los siguientes comandos como superusuario para instalar y configurar libpcap:

tar -zxvf libpcap.tar.Z
cd libpcap-0.4
./configure
make install ; make install-incl; make install-man

Una vez que tenga instalado libpcap, estará listo para instalar Snort.

Para este artículo, utilicé snort-1.7-1.i386.rpm, que se puede obtener en el sitio web oficial de Snort. Una vez descargado Snort, instale el paquete rpm con el siguiente comando:

Tipos de autenticación en seguridad informática y redes
rpm -ivh snort-1.7-1.i386.rpm

Si la instalación se realiza sin problemas, los archivos y directorios enumerados en Tabla A serán creados en su sistema.

Tabla A
Archivo/DirectorioPropósito
/usr/bin/snortEste es el ejecutable binario de Snort.
/etc/snortEste directorio contiene el archivo de configuración de Snort y las reglas de Snort.
/usr/share/doc/snortEsta es la documentación de Snort.

Interfaces de red en modo promiscuo

Para utilizar Snort correctamente, la tarjeta de interfaz de red (NIC) debe estar ejecutándose en modo promiscuo. Cuando el modo promiscuo está habilitado, la tarjeta de red escucha todo el tráfico en el segmento de red en el que se encuentra. En la mayoría de los sistemas Linux, la NIC se coloca en modo promiscuo con el siguiente comando:

/sbin/ifconfig -eth0 -promisc

Configuración del registro para Snort

La instalación predeterminada de Snort utiliza el directorio /var/log/snort para registrar los mensajes generados por Snort. Para crear este directorio en su sistema, ejecute el siguiente comando como superusuario:

mkdir /var/log/snort

Rulesets de Snort

La verdadera fortaleza de Snort radica en su capacidad para emplear rulesets para monitorear el tráfico de red. Los rulesets de Snort se encuentran en los archivos lib en el directorio /etc/snort. La versión actual de Snort viene con 18 rulesets existentes. Todos los rulesets utilizan la siguiente convención de nomenclatura:

<nombre-de-ruleset>-lib

Por ejemplo, podría usar:

Cómo configurar un firewall en Linux de forma rápida y sencilla con Lokkit
scan-lib.

Cada biblioteca contiene un ruleset. Estos rulesets determinan qué acción se tomará cuando se detecte un intento de intrusión en particular. Todos los rulesets contienen dos secciones: el encabezado de la regla y las opciones de la regla. El encabezado de la regla define las siguientes propiedades:

  • ·        La acción tomada por la regla cuando se detecta un intento de intrusión
  • ·        El protocolo al que aplica la regla
  • ·        Las direcciones IP de origen y destino y las máscaras de red afectadas por la regla
  • ·        Los puertos de origen y destino

La sección de opciones de la regla define estas propiedades:

  • ·        Qué parte de un paquete IP se inspeccionará para cumplir con una regla específica
  • ·        Cualquier mensaje de alerta emitido cuando se detecta un intento de intrusión

Existen cinco tipos de acciones que puede realizar una regla de Snort:

  1. 1.      Alerta: genera un mensaje de alerta
  2. 2.      Registro: registra el paquete IP especificado
  3. 3.      Pasar: ignora el paquete IP especificado
  4. 4.      Activar: envía un mensaje de alerta y luego activa una regla dinámica
  5. 5.      Dinámica: activada por una regla de activación, esta regla luego actúa como una regla de registro

Tabla B enumera las opciones que se pueden utilizar con los rulesets de Snort.

Tabla B
OpciónFunción
contentBusca contenido especificado en paquetes entrantes o salientes.
flagsPrueba las banderas TCP en los paquetes IP en busca de configuraciones específicas.
ttlVerifica el tiempo de vida en los paquetes IP.
itypeBusca concordancias en el campo de tipo ICMP.
IcodeBusca concordancias en el campo de código ICMP.
minfragEstablece el valor mínimo para la fragmentación IP.
IdVerifica la cabecera IP en busca de un valor especificado.
ackVerifica un número de reconocimiento especificado.
seqVerifica un número de secuencia TCP especificado.
logtoRegistra los paquetes que coinciden con esta regla en el archivo especificado.
dsizeVerifica el tamaño de la carga útil del paquete.
offsetSe utiliza para modificar la opción de contenido. Especifica el número de bytes desde la posición de inicio para comenzar a buscar contenido.
depthSe utiliza para modificar la opción de contenido. Especifica el número de bytes desde la posición de inicio para buscar.
msgEspecifica el mensaje que se enviará cuando se cumpla una regla.

Ahora veamos una regla típica de Snort y cómo funciona. Una regla típica se vería así.

Esta regla utiliza los siguientes procedimientos:

Comparación de técnicas de seguridad para servicios web seguros
  • ·        Se utiliza la opción de alerta. Esto significa que el administrador será notificado cuando se detecte un intento de intrusión.
  • ·        El protocolo que se está monitoreando es el Protocolo de Datagramas de Usuario (UDP).
  • ·        Se monitorea el tráfico desde cualquier dirección IP de origen fuera de la red local y desde cualquier puerto de origen (!$HOME_NET any).
  • ·        Cualquier tráfico UDP destinado al puerto 31337 en la máquina de monitoreo generará el mensaje de alerta "Backdoor - Back Orifice".

Ahora veamos otra regla. La regla que se muestra aquí está configurada para monitorear el protocolo utilizado en un paquete entrante y el puerto al que el paquete está intentando acceder. Esta regla está destinada a monitorear intentos de conexión a un servidor FTP utilizando SATAN.

Ahora veamos cómo esta regla monitorea los intentos de intrusión:

  • ·        Esta regla está monitoreando direcciones IP desde fuera de la red local en cualquier puerto de origen.
  • ·        El protocolo que se está monitoreando es el Protocolo de Control de Transporte (TCP).
  • ·        El puerto que se está monitoreando en la red local es el puerto 21 ($HOME_NET 21).
  • ·        Las banderas TCP están configuradas en push (P) y ACK (A).
  • ·        Los paquetes entrantes deben contener "pass -satan".
  • ·        Cuando se cumplen todas estas condiciones, esta regla registrará el mensaje "Port 21-scanned-SATAN".

Es importante destacar que la redacción de reglas para Snort está más allá del alcance de este artículo. Hasta que haya adquirido algo de experiencia utilizando Snort y, lo que es más importante, experiencia con el conjunto de protocolos TCP/IP, la mejor opción es utilizar rulesets preempaquetados que están disponibles en el sitio web de Snort. Estas reglas son confiables y están disponibles para casi cualquier situación que pueda enfrentar como administrador.

Ejecución de Snort

Snort se ejecuta típicamente en uno de los siguientes tres modos:

  1. 1.      Analizador de paquetes: Snort lee los paquetes IP y los muestra en la consola.
  2. 2.      Registrador de paquetes: Snort registra los paquetes IP.
  3. 3.      Sistema de Detección de Intrusiones: Snort utiliza rulesets para inspeccionar los paquetes IP. Cuando un paquete IP coincide con las características de una regla determinada, Snort puede tomar una o más acciones.

El modo en que se ejecuta Snort depende de las banderas utilizadas con el comando Snort. Tabla C enumera las banderas disponibles con el comando Snort.

Tabla C
BanderaFunción
-vVer los encabezados de los paquetes en la consola.
-dVer los datos de aplicación con los encabezados IP.
-DEjecutar Snort como un demonio.
-eMostrar encabezados de capa de enlace de datos.
-lEjecutar en modo registrador de paquetes.
-hRegistrar información relativa a la red de origen.
-bRegistrar información en un único archivo binario en el directorio de registro.
-rLeer paquetes contenidos en un archivo de registro.
NDeshabilitar el registro de paquetes.
-cEspecificar qué archivo se utilizará para proporcionar un ruleset para la detección de intrusiones.

Veamos cómo se podría utilizar el comando snort para especificar cómo se ejecuta Snort. Para ver los encabezados de los paquetes IP en la consola, utilice el comando:

Los diferentes tipos de firewalls y cómo evolucionaron para proteger las redes corporativas
snort -v

Para ejecutar Snort en modo de registro de paquetes, utilice el comando:

snort -dev -l /var/log/snort

La opción -l

Cuando se utiliza la opción -l, Snort sabe que se ha seleccionado el modo de registro de paquetes.

Si Snort se ejecuta en modo de registro de paquetes solo con la opción -l, puede haber problemas al nombrar el directorio donde se almacenan los paquetes. Supongamos que estoy ejecutando Snort desde un host en la red 192.168.10.0 y quiero que Snort registre los paquetes relacionados con la red 192.168.20.0 en el host local. Para asegurarme de que Snort nombre los directorios de registro según el nombre del host remoto, utilizaría el comando:
snort -dev /var/log/snort -h 192.16820.0/24

El comando anterior le dice a Snort que quiero registrar los datos de enlace de datos, la cabecera IP y los datos de la aplicación en /var/log/snort. Este comando también asegura que los paquetes que se están registrando se almacenen en directorios relativos a la dirección de red remota (192.168.20.0). Estos directorios se crearán como subdirectorios de /var/log/snort.

El registro de paquetes en formato binario es un poco diferente. Debido a que el modo binario registra todos los paquetes en el mismo formato utilizado por tcpdump, todos los paquetes se registran en un solo archivo binario en el directorio de registro.

Para registrar paquetes en formato binario en /var/log/snort, utilice el siguiente comando:

snort -l /var/log/snort -b

Ejecución de Snort en modo de Detección de Intrusiones

El problema con la ejecución de Snort en modo de captura de paquetes o en modo de registro de paquetes es que se registran todos los paquetes. Esto generará una gran cantidad de información para analizar. Cuando se ejecuta en modo de Detección de Intrusiones de Red, Snort no registra todos los paquetes. Solo se registran los paquetes que coinciden con una regla específica. La forma más sencilla de ejecutar Snort para la detección de intrusiones es registrar los paquetes en formato de texto ASCII en una estructura jerárquica de directorios. Si no se especifica un archivo de registro, los paquetes se registran en /var/snort /log. Para ejecutar Snort para la detección de intrusiones y registrar todos los paquetes en relación a la red 192.168.10.0, utilice el siguiente comando:

Cómo solucionar problemas de políticas de grupo con RSoP
snort -d -h 192.168.10.0 -l -c snort.conf

La opción -c snort.conf le indica a Snort que utilice el archivo de configuración predeterminado /etc/snort.conf creado cuando se instaló Snort. Este archivo instruye a Snort a utilizar todos los rulesets contenidos en los archivos lib creados en /etc/snort al momento de la instalación.

Uso de Snort con Samba

Snort también puede configurarse para enviar alertas a las estaciones de trabajo conectadas al servidor a través de Samba.

Para utilizar este modo, el código fuente de Snort debe configurarse con las opciones:

./configure -enable-smbalerts

Pros y contras de utilizar Snort

Pros:

Por qué los firewalls no son suficientes para asegurar tu empresa
  • ·        Snort se instala y ejecuta rápidamente en su red.
  • ·        Las reglas de Snort son bastante fáciles de escribir.
  • ·        Snort cuenta con un buen soporte disponible en el sitio web de Snort, así como en su propia lista de correo.
  • ·        Snort es fácil de utilizar como un sistema de detección de intrusiones (IDS) distribuido.
  • ·        Snort es gratuito. Esto es una buena noticia para los administradores que necesitan un IDS rentable.

Contras:

  • ·        El administrador debe desarrollar métodos personalizados de registro y generación de informes.
  • ·        Snort no admite la tecnología de Token Ring.
  • ·        Aunque Snort es flexible, carece de algunas características que se encuentran en sistemas comerciales de detección de intrusiones.
  • ·        Las reglas de Snort deben ser desarrolladas cuidadosamente. Esto es necesario para reducir el número de falsas alarmas de información generada y para reducir la cantidad de información registrada.

Conclusión

Snort se puede utilizar de varias formas, incluyendo como analizador de paquetes, registrador de paquetes o sistema de detección de intrusiones (IDS). Con la capacidad de utilizar rulesets para monitorear paquetes IP, Snort es una excelente opción para los administradores responsables de la seguridad en redes de tamaño pequeño a mediano.

La facilidad con la que Snort se puede implementar en una red permite la instalación rápida de un IDS flexible y muy rentable.

Todo lo que necesitas saber sobre los identificadores de seguridad (SIDs) en Windows

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a Cómo instalar y configurar Snort en un sistema Linux para la detección de intrusiones , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.