
# Recopilación de registros del sensor DShield con ELK
Este es un fork y una actualización significativa de la publicación inicial en el sitio web de ISC Storm Center por Scott Jensen como un documento BACS y los scripts publicados en Github.
https://github.com/fkadriver/Dshield-ELK
https://isc.sans.edu/diary/DShield+Sensor+Monitoring+with+a+Docker+ELK+Stack+Guest+Diary/30118
Esta es una buena referencia sobre cómo usar DShield-SIEM para análisis: https://isc.sans.edu/diary/30962/
Esto proporciona una descripción general de cómo se realiza la recopilación de registros con el sensor DShield.
https://github.com/bruneaug/DShield-SIEM/blob/main/Troubleshooting/DShield-SIEM-Flow.png
Este docker está construido a medida para usarse con el DShield Honeypot para recopilar y analizar los registros y recolectar los datos para facilitar la búsqueda con fines de investigación. La instalación sugerida es instalar el sensor DShield en una Rasperry usando PI Raspbian OS o en un sistema con Ubuntu 24.04 LTS, ya sea en su red o en la nube de su elección.
Nota: Esto debe instalarse en un servidor separado según las instrucciones a continuación.
Nota: Para actualizar los componentes del servidor ELK, siga estos pasos:
https://github.com/bruneaug/DShield-SIEM/blob/main/README.md#download-github-update
Instale Docker con la cuenta de usuario ($):````
sudo apt-get install ca-certificates curl gnupg network-manager txt2html
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Note: You may need to take the next line, remove the backlash () and put everythin in a single line in Notepad to run this echo.
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt upgrade
sudo reboot (if update were applied)
sudo apt-get install -y jq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin pip
sudo systemctl enable docker
sudo systemctl start docker.service
Confirma que el servicio de docker está en ejecución<br>````
sudo systemctl status docker.service
Añade el siguiente nombre de servidor ELK es01 kibana fleet-server heartbeat logstash filebeat filebeat01
a /etc/hosts después de la dirección IP y el nombre del servidor:
````
sudo vi /etc/hosts
Añade esto a /etc/hosts después de las direcciones IP del servidor ELK<br>
127.0.0.1 sensor es01 ...<br>
192.168.25.80 sensor es01 ...<br>````
es01 kibana fleet-server heartbeat logstash filebeat filebeat01
Edite el archivo sysctl.conf:
````
sudo vi /etc/sysctl.conf
Añade lo siguiente al final del archivo:<br>````
vm.max_map_count=262144
Agrégalo y guárdalo. Esto es para Elasticsearch cuando se usa Docker.
sudo iptables -nL

# Configurar e instalar DShield ELK
Usando la cuenta de usuario ($), ejecute los siguientes comandos:<br>````
git clone https://github.com/bruneaug/DShield-SIEM.git
mkdir scripts
mv DShield-SIEM/AddOnScripts/*.sh scripts
chmod 754 scripts/*.sh
cd ~/DShield-SIEM
Nota: Antes de la instalación, puedes editar el archivo .env (ls -la para verlo) para realizar los cambios deseados.
- La contraseña predeterminada actual para elastic es student
Los límites de memoria en .env son la memoria máxima que docker asignará para cada uno de los contenedores ELK.
Por defecto son 3GB para Elasticsearch, pero se pueden ampliar si tienes los recursos
Edita el archivo .env y configúralo para tu propio ELK Stack
````
vi .env
- Actualice las siguientes variables en el archivo **.env** para que coincidan con la información DNS de su servidor ELK, nombre de host, IP y la contraseña predeterminada de Elastic si desea cambiarla: <br>
- HOSTNAME="ubuntu"
- DNS_SERVER="9.9.9.9"
- IPADDRESS="192.168.25.231"
- ELASTIC_PASSWORD=student
- ES_MEM = Elasticsearch -> 4g, KB_MEM = Kibana -> 2g
- Si desea cambiar la información del/los servidor(es) de nombres predeterminado(s) y la ubicación de su red privada local para la dirección de destino (es decir, el mapeo del sensor DShield, actualmente configurado para **Ottawa, Canadá**), edite los archivos en el siguiente directorio antes de cargar docker:<br>````
cd logstash/pipeline
Edita heartbeat.yml para cambiar la IP del sensor (llamada PI) por la IP de tu propio sensor. Kibana heartbeat comprueba el estado de tus servicios y determina si están disponibles.
Actualiza esta IP y el nombre de host para reflejar tu sensor.
Nota: Puedes copiar y añadir las mismas 5 líneas si tienes más de un sensor que quieras monitorear
Esto se puede ver en Observability -> Uptime Monitors
