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 instalar y configurar Snort en un sistema Linux para la detección de intrusiones - Video](https://i.ytimg.com/vi/MwqdKevOas0/hqdefault.jpg)
- · 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.
- Descargando e instalando Snort
- Interfaces de red en modo promiscuo
- Configuración del registro para Snort
- Ejecución de Snort
- La opción -l
- 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
- 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:
![](https://newsmatic.com.ar/wp-content/uploads/tipos-de-autenticacion-en-seguridad-informatica-y-redes-150x150.jpg)
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.
Archivo/Directorio | Propósito |
/usr/bin/snort | Este es el ejecutable binario de Snort. |
/etc/snort | Este directorio contiene el archivo de configuración de Snort y las reglas de Snort. |
/usr/share/doc/snort | Esta 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:
![](https://newsmatic.com.ar/wp-content/uploads/asegura-tu-seguridad-rapidamente-con-lokkit-imagen-1-150x150.webp)
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. Alerta: genera un mensaje de alerta
- 2. Registro: registra el paquete IP especificado
- 3. Pasar: ignora el paquete IP especificado
- 4. Activar: envía un mensaje de alerta y luego activa una regla dinámica
- 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.
Opción | Función |
content | Busca contenido especificado en paquetes entrantes o salientes. |
flags | Prueba las banderas TCP en los paquetes IP en busca de configuraciones específicas. |
ttl | Verifica el tiempo de vida en los paquetes IP. |
itype | Busca concordancias en el campo de tipo ICMP. |
Icode | Busca concordancias en el campo de código ICMP. |
minfrag | Establece el valor mínimo para la fragmentación IP. |
Id | Verifica la cabecera IP en busca de un valor especificado. |
ack | Verifica un número de reconocimiento especificado. |
seq | Verifica un número de secuencia TCP especificado. |
logto | Registra los paquetes que coinciden con esta regla en el archivo especificado. |
dsize | Verifica el tamaño de la carga útil del paquete. |
offset | Se 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. |
depth | Se utiliza para modificar la opción de contenido. Especifica el número de bytes desde la posición de inicio para buscar. |
msg | Especifica 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:
![](https://newsmatic.com.ar/wp-content/uploads/comparacion-de-tecnicas-de-seguridad-para-servicios-web-seguros-150x150.png)
- · 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. Analizador de paquetes: Snort lee los paquetes IP y los muestra en la consola.
- 2. Registrador de paquetes: Snort registra los paquetes IP.
- 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.
Bandera | Función |
-v | Ver los encabezados de los paquetes en la consola. |
-d | Ver los datos de aplicación con los encabezados IP. |
-D | Ejecutar Snort como un demonio. |
-e | Mostrar encabezados de capa de enlace de datos. |
-l | Ejecutar en modo registrador de paquetes. |
-h | Registrar información relativa a la red de origen. |
-b | Registrar información en un único archivo binario en el directorio de registro. |
-r | Leer paquetes contenidos en un archivo de registro. |
N | Deshabilitar el registro de paquetes. |
-c | Especificar 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:
![](https://newsmatic.com.ar/wp-content/uploads/los-diferentes-tipos-de-firewalls-y-como-evolucionaron-para-proteger-las-redes-corporativas-150x150.jpg)
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
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:
![](https://newsmatic.com.ar/wp-content/uploads/solucionar-problemas-politicas-grupo-windows-xp-asistente-resultado-politica-imagen-2-150x150.webp)
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:
![](https://newsmatic.com.ar/wp-content/uploads/el-cortafuegos-en-un-enfoque-de-seguridad-multicapa-imagen-2-150x150.webp)
- · 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.
![](https://newsmatic.com.ar/wp-content/uploads/entender-anatomia-identificadores-seguridad-imagen-1-150x150.webp)
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