Proteja su red de intrusos y ataques no solicitados instalando y configurando Snort IDS.

Si se toma en serio la seguridad de la red, es imprescindible instalar una solución IPS o IDS para fortalecer el perímetro de la red y desviar el tráfico de red potencialmente no deseado.

Snort es una de esas famosas soluciones IPS/IDS de código abierto y gratuitas para uso personal. Aprendamos cómo puede instalar y configurar Snort en Linux para defender su red de ataques cibernéticos.

¿Qué es Snort?

Snort es un código abierto Sistema de detección y prevención de intrusiones en la red (NIDS/IPS) que, como su nombre indica, ayuda a proteger el perímetro de su red mediante la aplicación de reglas y filtros que detectan y descartan paquetes potencialmente maliciosos inyectados en su red.

Con Snort, podrá realizar registros avanzados de tráfico de red, rastreo y análisis de paquetes, y establecer crear un sólido sistema de prevención de intrusiones que defienda su red de ataques no deseados y potencialmente maliciosos tráfico.

instagram viewer

Requisitos previos para instalar Snort

Antes de instalar Snort, hay que hacer una configuración preliminar. Esto incluye principalmente actualizar y actualizar su sistema e instalar las dependencias requeridas por Snort para funcionar correctamente.

Comience por actualizar y mejorar su sistema.

En Ubuntu- y Distribuciones de Linux basadas en Debian:

sudo apt actualizar && apt actualizar -y

En Arch Linux y sus derivados:

sudo pacman-syu

En RHEL y Fedora:

actualización sudo dnf

Con su sistema actualizado, continúe instalando las dependencias requeridas por Snort. Estos son los comandos que necesita ejecutar:

En Ubuntu y Debian, ejecute:

sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev

En Arch Linux, ejecute:

sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pullporkxz zlib cmake pkgconf

Para RHEL y Fedora, emita el siguiente comando:

sudo dnf install gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y

Además, también debe instalar manualmente la biblioteca de adquisición de datos, LibDAQ para que Snort funcione correctamente y también gperftools para generar los archivos de compilación.

Primero, descargue los archivos fuente de LibDAQ del sitio web oficial usando el comando wget. Luego, extraiga el archivo y muévase al directorio usando cd. Dentro del directorio, ejecute el oreja y configurar luego proceda a preparar los archivos con make e instálelos con el hacer instalar dominio.

wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
librería de cd*
./oreja
./configurar
hacer
sudo hacer instalar

Con LibDAQ instalado, debe instalar una última dependencia: gperftools. Comience tomando los archivos fuente del repositorio de GitHub. Extraiga los archivos, muévase al directorio y ejecute el script de configuración. Finalmente, instale el paquete usando los comandos make y make install.

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./configurar
hacer
sudo hacer instalar

Una vez que se hayan instalado estas dependencias, puede continuar con los siguientes pasos para instalar Snort.

Instalar Snort desde la fuente en Linux

Con la configuración preliminar eliminada, ahora puede concentrarse en instalar el software real. Lo construirá desde la fuente, así que tome primero los archivos de compilación requeridos.

Use el comando wget o descargue los archivos manualmente desde la página de descarga oficial:

wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz

Descargar:Bufido

Una vez que el archivo que contiene los archivos de compilación haya terminado de descargarse, extráigalo con el comando tar:

tar -xzvf bufido*

Vaya a la carpeta extraída, ejecute el script de configuración, use el comando make para preparar los archivos y finalmente instálelos con hacer instalar:

resoplido de cd*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
compilación de CD
hacer
sudo hacer instalar

Snort ahora se instalará con éxito en su sistema. Sin embargo, solo hay un paso más que debe completar. Cuando se instala manualmente un nuevo software, es posible que el directorio de instalación y las bibliotecas requeridas no se incluyan automáticamente en la ruta predeterminada del sistema. Por lo tanto, es posible que encuentre errores al iniciar la aplicación.

Para evitar este problema, debe ejecutar el comando ldconfig. Sincronizará la caché de la biblioteca compartida del sistema con las bibliotecas y binarios recién instalados. Ejecute el comando ldconfig desde un shell raíz o use el prefijo sudo:

sudo ldconfig

Ahora ha cubierto todos los pasos importantes necesarios para instalar Snort. Para verificar la instalación, ejecute el comando Snort con el -V marca, y debería ver una salida que devuelve el nombre de la versión y otros datos.

resoplido -V

Una vez que haya verificado la instalación de Snort, continúe con los siguientes pasos para configurarlo como un IDS/IPS completo.

Configuración inicial de Snort en Linux

La eficiencia de Snort depende casi por completo de la calidad de los conjuntos de reglas con los que se suministra.

Sin embargo, antes de configurar las reglas, debe configurar las tarjetas de red para que funcionen con Snort y también debe probar cómo Snort maneja la configuración predeterminada. Comience configurando las tarjetas de red.

Configure la interfaz de red en modo promiscuo:

sudo ip link set dev interface_name promisc on

Con ethtool, deshabilite la descarga de recepción genérica (GRO) y la descarga de recepción grande (LRO) para evitar que se trunquen los paquetes de red más grandes:

sudo ethtool -K nombre_interfaz gro off lro off

Pruebe cómo funciona Snort con la configuración predeterminada:

resoplido -c /usr/local/etc/snort/snort.lua

Esto debería devolver una señal de salida exitosa que ha instalado y configurado Snort correctamente en su sistema. Ahora puede jugar con sus características y experimentar con diferentes configuraciones para encontrar el mejor conjunto de reglas para proteger su red.

Establece reglas y hazlas cumplir con Snort

Con la configuración básica en su lugar, Snort ahora está listo para defender su perímetro. Como sabe, Snort necesita conjuntos de reglas para determinar la validez del tráfico, configuremos algunos conjuntos de reglas gratuitos creados por la comunidad para Snort.

Snort lee conjuntos de reglas y configuraciones de directorios específicos. Primero, usando los comandos mkdir y touch, cree algunos directorios importantes para almacenar reglas y otros datos relevantes para Snort:

sudo mkdir -p /usr/local/etc/{listas, so_rules, reglas} 
sudo touch /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist

Con estos directorios creados, puede descargar el conjunto de reglas de la comunidad desde el sitio web oficial usando el comando wget:

wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz

Una vez que el conjunto de reglas termine de descargarse, extráigalo y cópielo en el /usr/local/etc/rules/ directorio.

tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/

Para ejecutar Snort con el conjunto de reglas, ejecute este comando:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i nombre_interfaz -s 65535 -k ninguno

Desglose del comando:

  • -C establece la ruta al archivo de configuración predeterminado
  • -R establece la ruta al conjunto de reglas para hacer cumplir
  • -i establece la interfaz
  • -s límite de descartes snaplen
  • -k ignora las sumas de comprobación

Esto debería validar la configuración y hacer cumplir todos los conjuntos de reglas en Snort. Tan pronto como detecte cualquier perturbación en la red, lo alertará con un mensaje de consola.

Si desea crear y hacer cumplir su propio conjunto de reglas, puede obtener más información al respecto en el páginas de documentación oficial.

Configurar registro con Snort

De forma predeterminada, Snort no genera ningún registro. Debe especificar con el -L marcar para iniciar Snort en modo de registro, definir el tipo de archivo de registro y -l marca para configurar el directorio de registro para que Snort descargue los registros.

Aquí está el comando para iniciar Snort con el registro habilitado:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i nombre_interfaz -s 65535 -k ninguno -L tipo_archivo -l /var/log /bufido

Desglose del comando:

  • -C establece la ruta al archivo de configuración predeterminado
  • -R establece la ruta al conjunto de reglas para hacer cumplir
  • -i establece la interfaz
  • -s límite de descartes snaplen
  • -k ignora las sumas de comprobación
  • -L habilita el modo de registro y define el tipo de archivo de registro
  • -l define la ruta para almacenar registros

Tenga en cuenta que en el comando de ejemplo, el directorio de registro se establece en /var/log/snort. Aunque esta es una práctica recomendada, puede almacenar sus registros en otro lugar.

Puede leer los archivos de registro de Snort desde el directorio que definió o pasarlos al software SIEM como Splunk para su posterior análisis.

Agregar Snort como demonio de inicio del sistema

Aunque instaló y configuró Snort, debe asegurarse de que comience a ejecutarse al inicio y se ejecute como un demonio en segundo plano. Agregarlo como un servicio de sistema de inicio automático asegurará que Snort esté activo y defendiendo su sistema en todo momento que esté en línea.

Aquí se explica cómo agregar un demonio de inicio de Snort en Linux:

  1. Comience creando un nuevo archivo de servicio systemd:
    toque /lib/systemd/system/snort.servicio
  2. Abra el archivo en un editor de texto de su elección y complételo con los siguientes datos. Puede modificar las banderas para que se ajusten a sus necesidades:
    [Unidad]
    Descripción=Demonio Snort
    After=syslog.objetivo red.objetivo
    [Servicio]
    Tipo=sencillo
    ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k ninguno -l /var /log/snort -D -L pcap -i ens33
    [Instalar]
    WantedBy=multi-usuario.objetivo
  3. Guardar y salir del archivo. Entonces, usando el servicio y comandos systemctl, habilite e inicie el script:
    sudo systemctl habilitar snort.servicio
    inicio de resoplido sudo

El demonio de fondo de Snort ahora debería estar en funcionamiento. Puede verificar el estado del script usando el resoplido de estado systemctl dominio. Debería devolver una salida positiva.

Ahora ya sabes cómo proteger tu red con Snort IDS

Si bien implementar IDS es una buena práctica, es una medida pasiva más que activa. La mejor manera de mejorar y garantizar la seguridad de su red es probándola continuamente y buscando fallas para corregir.

Las pruebas de penetración son una excelente manera de encontrar vulnerabilidades explotables y parchearlas.