Athem
  • Descarga de Responsabilidades
  • CTF
    • 🐧Trust - dockerlabs.es
    • 🙂FirstHacking - dokerlabs.es
    • 🏖️Vacaciones - dokerlabs.es
    • 💉Injection
  • 🔧Herramientas
    • Detección de sistema operativo por TTL
  • 💙Blue Team
    • ⛑️Instalación de ``Splunk Universal Forwarder``
    • Wazuh
Powered by GitBook
On this page
  • Instalación de Splunk Universal Forwarder
  • ¿Qué es Splunk Universal Forwarder?
  • Instalación
  • Enviar datos a SPLUNK
  • Comandos útiles para debug
  1. Blue Team

Instalación de ``Splunk Universal Forwarder``

Instalación de Splunk Universal Forwarder

¿Qué es Splunk Universal Forwarder?

Universal Forwarder recopila datos de una variedad de lugares , ya sean fuentes de datos u otros reenviadores , y luego los envía a un reenviador o a una implementación de Splunk. Entonces, ¿Qué puedes hacer con los reenviadores universales? Las capacidades incluyen:

  • Etiquetado de metadatos (fuente, tipo de fuente y host)

  • Configuración de búfer

  • Comprimir datos

  • Aseguramiento a través de SSL

  • Usando cualquier puerto de red disponible

al final del día le podemos conocer como agente, que será el encargado de recolectar la información interesante y enviarla a splunk, pero si hay que tomar en cuenta que splunk cuenta con diferentes tipos de Forwarders y cada uno agrega mas funciones y su forma de ejecución es distinta:

  • Universal Forwarder contiene solo los componentes necesarios para reenviar datos, nada más, nada menos. En general, es la mejor herramienta para enviar datos a los indexadores.

  • heavy forwarder es una instancia completa de splunk eso puede indexar, buscar, cambiar y reenviar datos. Ciertas características de una instancia completa de Splunk Enterprise están deshabilitadas para reducir el uso de recursos del sistema.

  • light forwarder también es una instancia completa de Splunk Enterprise, con aún más características deshabilitadas para lograr una huella de recursos lo más pequeña posible. Deprecado a partir de la versión 6.0 de Splunk Enterprise, el light forwarder es reemplazado por el Universal Forwarder para casi todos los propósitos.

para un entorno de pocos clientes y baja carga de datos podemos usar Universal Forwarder siempre configurando de manera correcta la ingesta, ya que el licenciamiento de splunk se basa en la ingesta, así que solo buscamos enviar logs críticos y con información relevante.

Instalación

  • ejecutar el Universal Forwarder con el usuario root no es una practica que se recomiende, tomando esto en cuenta lo ejecutaremos con un usuario con menos privilegios o como se le denomina en el mundo de la ciber, las características mínimas indispensables ´para que funcione.

useradd -M splunk
groupadd splunk
  • Donde

    • useradd -> comando de creación de usuarios en sistemas *nix por cli

    • -M -> no crea un directorio personal en /home

    • groupadd comando para crear un grupo en sistemas *nix

  • para agilizar un poco el trabajo vamos a crear una variable de nombre SPLUNK_HOME este nombre es totalmente personalizable, pero es el que recomienda el manual de administración de splunk

export SPLUNK_HOME="/opt/splunkforwarder"
mkdir $SPLUNK_HOME

esto nos ayudara a acceder de manera mas pronta a las diferentes rutas de Splunk pero este paso es totalmente opcional.

  • una ves teniendo el usuario ejecutamos el siguiente comando

chmod 644 splunkforwarder_paquete_nombre.rpm
rpm - en splunkforwarder_package_name.rpm

en mi caso estoy usando de cliente una instancia de Fedora en caso de ser Debian o alguna distribución basada en este solo hay que hacer los cambios correspondientes.

  • como les mencionaba no es correcto usar root como el dueño y señor del Forwarder asi que procedemos a cambiar el propietario.

chown -R splunk:splunk $SPLUNK_HOME
  • con esto cambiado es hora de ejecutar el demonio de splunk en nuestro cliente

$SPLUNK_HOME/bin/splunk enable boot-start -systemd-managed 1 -user <username> -group <groupname>
systemctl start SplunkForwarder.service

el primer comando crea el archivo .service de SplunkForwarder y agrega las capability necesaria para un correcto funcionamiento pero con un usuario no root.

con esto tenemos configurado e instalado nuestro Forwarder.

Enviar datos a SPLUNK

Antes de configurar el cliente o Splunk Forwarder vamos a verificar que en splunk web este configurado un reciving, en palabra sencillas vamos a verificar que Splunk server este configurado para recibir datos de un cliente.

para esto vamos a Settings -> Forwarding and receiving, seleccionamos "Configure receiving." en caso de que no veamos alguno configurado, creamos uno nuevo .

en caso de que quieras trabar todo por cli puedes usar este comando parta habilitar un reciving, ojo este comando se ejecuta en el servidor de splunk

./splunk enable listen 9997 -auth admin:password

una ves creado ya tenemos todo listo para mandar los logs de nuestro Forwarder.

Configuración de envió de data desde el Forwarder

  • hay diferentes formas de configurar la data que se envía a splunk una de ellas es editando los archivos:

    • inputs.conf -> controla cómo el reenviador recopila datos

    • outputs.conf -> controla cómo el reenviador envía datos a un indexador u otro reenviador.

    • server.conf -> para la conexión y ajuste de rendimiento.

    • deploymentclient.conf -> para conectarse a un servidor de implementación.

  • Aunque podemos editar el contenido de los archivos usar el CLI es mucho mas rapido y se puede organizar de mejor manera, asi que para empezar hay que decirle a nuestro Forwarder a donde enviar la data es decir donde esta el servidor o el reciving:

$SPLUNK_HOME/bin/splunk add forward-server <host name or ip address>:<listening port>

una ves configurado el servidor vamos a configurar monitores es decir vamos a decirle al forwarder que enviar, a mi me gusta organizar los logs por tipo de log o por tipo de información, para esto creo siempre un indexer, la creación de este no la agregare en este post ya que estas configuración las dejare para futuros post.

creamos un monitor para el archivo de secure

$SPLUNK_HOME/bin/splunk add monitor /var/log/secure -index linux -sourcetype linux_secure

Donde:

  • -index -> el indice donde se guardaran los datos

una ves echo esto ya podemos ver data en splunk

Comandos útiles para debug

como en cualquier implementación pude haber errores asi que te dejo algunos comando para que puedas hacer debug de manera rapida

Comprobar que el servidor esta conectado al forwarder

/opt/splunkforwarder/bin/splunk list forward-server

salida esperada:

Active forwards:
    10.0.0.1:9997

en caso de que veas otra comprueba que:

  • El puerto este abierto mediante telnet+

  • Verifica que el el firewall del servidor permita la comunicación al puerto

  • Verifica que la configuración del reciving este correcta

Verifica palabras claves en los logs del Forwarder

grep -i 'tcpoutputproc\|error\|warn' /opt/splunkforwarder/var/log/splunk/splunkd.log | tail -n 50
  • Con esto conocerás mas a fondo las fallas de la conexión

Verificación de permisos

sudo -u splunk ls -l /var/log/secure
  • que en el caso de /var/log este porblema es normal ya que los logs de sistema siempre son de root:root

para solucionar esto me gusta usar setfacl que aplica controles de ACL (Acces Contrl List) y agregamos una propiedad de solo lectura para el usuario de splunk, esto sin cambiar propietario o grupo, o afectar los permisos del archivo con 777 o similar

Ejemplo:

sudo setfacl -m u:splunk:r /var/log/secure

puede verificar las acl de los archivo con el comando getfacl

getfacl /var/log/secure

existen mas errores, pero esto son los mas comunes.

BYE,BYE ..........

PreviousBlue TeamNextWazuh

Last updated 2 months ago

-sourcetype -> el tipo de estructura que envía el archivo, este dato es importante ya que con esto splunk identifica como normalizarlo, en caso de que no conozcas este datos no te preocupes te dejo el enlace a la documentación oficial de

💙
⛑️
sourcetypes
Capbility en el archivo .service
reciving