LinuxParty
Suricata es un motor de detección de amenazas potente, versátil y de código abierto que proporciona funcionalidades para la detección de intrusos (IDS), la prevención de intrusos (IPS) y el monitoreo de la seguridad de la red . Realiza una inspección profunda de paquetes junto con la coincidencia de patrones, una combinación que es increíblemente poderosa en la detección de amenazas.
Al momento de escribir esta guía, la última versión de Suricata es la 6.0.5 .
Características de Suricata
- IDS/IPS : Suricata es un motor de prevención y detección de intrusiones basado en reglas que aprovecha los conjuntos de reglas desarrollados externamente, como el conjunto de reglas de Talos y el conjunto de reglas de Emerging Threats Suricata para monitorear el tráfico de red en busca de cualquier actividad maliciosa, violaciones de políticas y amenazas.
- Detección automática de protocolos : el motor de Suricata detecta automáticamente protocolos como HTTP y HTTPS. FTP y SMB en cualquier puerto y aplique la lógica adecuada de detección y registro. Esto es útil para detectar malware y canales CnC.
- Secuencias de comandos de Lua : Suricata puede invocar secuencias de comandos de Lua que brindan detección avanzada de malware para detectar y decodificar el tráfico de malware que, de otro modo, sería difícil de detectar.
- Subprocesos múltiples : Suricata proporciona velocidad e importancia en la determinación del tráfico de red. El motor está desarrollado para aplicar la mayor potencia de procesamiento que ofrecen los conjuntos de chips de hardware multinúcleo modernos.
Instalación de la herramienta de detección de intrusos Suricata en Linux
En esta sección, demostraremos cómo instalar Suricata en distribuciones basadas en Debian y RHEL .
Instale Suricata en Debian/Ubuntu y Mint
Suricata es proporcionado por los repositorios de Debian/Ubuntu y se puede instalar fácilmente usando el administrador de paquetes apt . Sin embargo, vale la pena señalar que esto no instala la última versión de Suricata. Para instalar la última versión, debe instalarla desde una fuente que cubriremos más adelante en esta guía.
Para instalar Suricata usando el administrador de paquetes apt , ejecute el comando:
$ sudo apt install suricata -y
Instalar Suricata en Ubuntu
Suricata se inicia automáticamente una vez instalado. Puede confirmar esto de la siguiente manera.
$ sudo systemctl status suricata
Compruebe Suricata en Ubuntu
Instale Suricata en RHEL, Rocky, Almalinux y Fedora
Para instalar Suricata en distribuciones RHEL como CentOS Stream, Rocky Linux, AlmaLinux, Fedora y RHEL, primero debe habilitar el repositorio EPEL .
$ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9] $ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8] $ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 7]
Una vez que EPEL esté habilitado, instale los siguientes paquetes de requisitos y agregue el repositorio OISF a su sistema.
----------- En los sistemas Fedora ----------- $ sudo dnf install dnf-plugins-core $ sudo dnf copr enable @oisf/suricata-6.0----------- En sistemas RHEL ----------- $ sudo dnf install yum-plugin-copr $ sudo dnf copr enable @oisf/suricata-6.0
Luego, instale Suricata usando el administrador de paquetes dnf o el administrador de paquetes yum como se muestra.
$ sudo dnf install suricata -y O $ sudo yum install suricata -y
Instalar Suricata en RHEL
Una vez instalado Suricata , inicie y verifique su estado.
$ sudo systemctl start suricata $ sudo systemctl status suricata
Compruebe Suricata en RHEL
Instale Suricata desde la fuente en Linux
Los repositorios predeterminados del sistema operativo no proporcionan la última versión de Suricata . Si su objetivo es instalar la última versión de Suricata , debe instalarla desde la fuente.
Al momento de escribir esta guía, la última versión de Suricata es la 6.0.5 . Para instalar Suricata desde el origen en las distribuciones Ubuntu/Debian y RHEL , instale las siguientes bibliotecas, herramientas de compilación y dependencias.
----------- En sistemas Debian ----------- $ sudo apt install rustc build-essential cargo libpcre3 libpcre3-dbg libpcre3-dev make autoconf automake \ libtool libcap-ng0 make libmagic-dev libjansson-dev libjansson4 libpcap-dev libnet1-dev \ libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev pkg-config libnetfilter-queue1 libnfnetlink0 \ libnetfilter-queue-dev libnfnetlink-dev -y----------- En sistemas RHEL ----------- $ sudo yum install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel \ libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel lua-devel PyYAML libmaxminddb-devel \ rustc cargo lz4-devel -y
A continuación, instale la herramienta de actualización de suricata para actualizar las reglas de Suricata.
$ sudo apt install python3-pip [En Debian] $ sudo yum install python3-pip [En RHEL] $ pip3 install --upgrade suricata-update
Luego cree un enlace simbólico a /usr/bin/suricata-update .
$ sudo ln -s /usr/local/bin/suricata-update /usr/bin/suricata-update
Ahora diríjase a la página de descarga oficial de Suricata y descargue el archivo tarball más reciente para Linux usando el comando wget .
$ wget https://www.openinfosecfoundation.org/download/suricata-6.0.6.tar.gz
Una vez descargado, extraiga el archivo tarball e instálelo.
$ sudo tar -xvf suricata-6.0.6.tar.gz $ cd suricata-6.0.6 $ ./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var $ make $ make install-full
Configurando Suricata en Linux
Para comenzar a configurar Suricata , necesitamos especificar la IP interna y la red externa. Para ello, acceda al archivo de configuración.
$ sudo vim /etc/suricata/suricata.yaml
Para la directiva HOME_NET , especifique la dirección IP de su sistema Linux.
HOME_NET: "[173.82.235.7]"
A continuación, establezca la directiva EXTERNAL_NET en “ !$HOME_NET “.
EXTERNAL_NET: "!$HOME_NET"
Configurar Suricata en Linux
A continuación, especifique la interfaz de red en la que Suricata inspeccionará el tráfico de red. En nuestro caso, esta es la interfaz eth0 .
Puede verificar su interfaz de red activa usando el comando ip :
$ ip a
En el archivo de configuración, actualice la directiva de interfaz con el nombre de la interfaz de red.
- interface: eth0
Configurar la interfaz de red de Suricata
A continuación, asegúrese de que el atributo default-rule-path esté establecido en /etc/suricata/rules .
Configurar las reglas de Suricata
Luego guarde los cambios y cierre el archivo de configuración. Luego reinicie Suricata para que se apliquen los cambios.
$ sudo systemctl status suricata
Actualización de conjuntos de reglas de Suricata en Linux
De forma predeterminada, Suricata se envía con un conjunto limitado de reglas de detección ubicadas en el directorio /etc/suricata/rules . Sin embargo, estos se consideran débiles e ineficaces para detectar intrusiones. Debe cargar las reglas de amenazas emergentes ( ET ), que se consideran los conjuntos de reglas más completos para Suricata.
Suricata proporciona una herramienta conocida como suricata-update que obtiene conjuntos de reglas de proveedores externos. Para obtener un conjunto de reglas actualizado para su servidor, ejecute el siguiente comando.
$ sudo suricata-update -o /etc/suricata/rules
Actualización de conjuntos de reglas de Suricata
Descargar las reglas de amenazas emergentes de Suricata
Desde el resultado, puede ver la actualización de suricata obteniendo las reglas abiertas de ET de Emerging Threats gratuitas y guardándolas en el archivo de reglas /etc/suricata/rules/suricata de Suricata . Además, indica el número de reglas procesadas. En este ejemplo, se agregaron un total de 35941 . De ellos, se habilitaron 28221 , se eliminaron 18 y se modificaron 1249 .
Agregar conjuntos de reglas de Suricata en Linux
La herramienta de actualización de suricata le permite obtener reglas de proveedores de conjuntos de reglas. Algunos son gratuitos, como el conjunto ET Open , mientras que otros requieren una suscripción paga.
Para enumerar el conjunto predeterminado de proveedores de reglas, ejecute el comando suricata-update como se muestra.
$ sudo suricata-update list-sources
Lista de proveedores de reglas de Suricata
Para agregar un conjunto de reglas, por ejemplo, el conjunto de reglas tgreen/hunting , ejecute el siguiente comando.
$ sudo suricata-update enable-source tgreen/hunting
Agregar conjunto de reglas de Suricata
Una vez que haya agregado el conjunto de reglas , ejecute el comando suricata-update una vez más con la -o /etc/suricata/rules
bandera.
$ sudo suricata-update -o /etc/suricata/rules
Actualizar conjunto de reglas de Suricata
Prueba de las reglas de Suricata en Linux
Antes de comenzar a probar Suricata , se recomienda probar si la configuración está bien. Para hacerlo, ejecute el siguiente comando:
$ sudo suricata -T -c /etc/suricata/suricata.yaml -v
Asegúrese de que no se notifiquen errores. Si está ejecutando RHEL, CentOS Stream, Fedora y Rocky Linux, inicie y habilite Suricata.
$ sudo systemctl start suricata $ sudo systemctl enable suricata
Hasta ahora, hemos instalado y configurado correctamente Suricata y actualizado los conjuntos de reglas. El conjunto de reglas abiertas de ET contiene más de 30 000 reglas para detectar tráfico malicioso. En esta sección, pondremos a prueba a Suricata y comprobaremos si puede detectar tráfico de red sospechoso.
Probaremos el conjunto de reglas de ET Open simulando una intrusión según lo recomendado por la guía de inicio rápido de Suricata .
La funcionalidad de IDS se probará con una ID de firma de 2100498 mediante el envío de una solicitud HTTP al sitio web testmynids.org , que es un marco NIDS ( Sistema de detección e intrusión de red ).
$ curl http://testmynids.org/uid/index.html
Deberías obtener el siguiente resultado.
uid=0(root) gid=0(root) groups=0(root)
La solicitud HTTP enviada está diseñada para activar una alerta al imitar la salida del comando id que podría ejecutarse en un sistema remoto comprometido a través de un shell.
Ahora analicemos los registros de Suricata en busca de una alerta correspondiente. Suricata se envía con dos archivos de registro que vienen habilitados de forma predeterminada.
/var/log/suricata/fast.log /var/log/suricata/eve.log
Buscaremos una entrada de registro en el archivo de registro /var/log/suricata/fast.log que corresponda a la solicitud curl mediante el comando grep . Buscaremos las entradas de registro utilizando el identificador de regla 2100498 de la documentación de inicio rápido.
$ grep 2100948 /var/log/suricata/fast.log
Obtendrá el siguiente resultado que significa una intrusión. Aquí, 173.82.235.7 es la dirección IP pública del servidor.
09/09/2022-22:17:06.796434 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 13.226.210.123:80 -> 173.82.235.7:33822
Ver registros de Suricata
Como alternativa, puede consultar el archivo de registro /var/log/suricata/eve.log para el ID de firma de 2100498 como se muestra.
$ jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json
Verifique el registro de Suricata para la identificación de la firma
Esta fue una guía completa sobre cómo instalar y configurar Suricata en Linux. Hemos analizado varios métodos de instalación, cómo configurar Suricata y actualizar las reglas de Suricata , así como también cómo administrar el servicio systemd de Suricata y realizar pruebas de intrusión en la red.
Esperamos que ahora pueda instalar y usar cómodamente Suricata para proteger su sistema de intrusiones en la red o tráfico malicioso.
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros