
DShield Sensor-Log-Erfassung mit ELK
Dies ist ein Fork und eine wesentliche Aktualisierung der ursprünglichen Veröffentlichung auf der ISC-Storm-Center-Website von Scott Jensen als BACS-Paper sowie der auf GitHub veröffentlichten Skripte.
https://github.com/fkadriver/Dshield-ELK
https://isc.sans.edu/diary/DShield+Sensor+Monitoring+with+a+Docker+ELK+Stack+Guest+Diary/30118
Dies ist eine gute Referenz zur Nutzung von DShield-SIEM für Analysen: https://isc.sans.edu/diary/30962/
Dies bietet einen Überblick darüber, wie die Protokollerfassung mit dem DShield-Sensor durchgeführt wird.
https://github.com/bruneaug/DShield-SIEM/blob/main/Troubleshooting/DShield-SIEM-Flow.png
Dieser Docker-Container ist speziell für die Verwendung mit dem DShield-Honeypot gebaut, um die Protokolle zu sammeln und zu analysieren und die Daten so aufzubereiten, dass sie für Forschungszwecke leicht durchsuchbar sind. Die empfohlene Installation besteht darin, den DShield-Sensor auf einem Raspberry Pi mit Raspbian OS oder auf einem System mit Ubuntu 24.04 LTS zu installieren – entweder in Ihrem Netzwerk oder in der Cloud Ihrer Wahl.
Hinweis: Dies muss gemäß der folgenden Anleitung auf einem separaten Server installiert werden.
Hinweis: Befolgen Sie diese Schritte, um die ELK-Serverkomponenten zu aktualisieren:
https://github.com/bruneaug/DShield-SIEM/blob/main/README.md#download-github-update
Docker als Benutzerkonto ($) installieren:````
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
Stellen Sie sicher, dass der docker-Dienst läuft<br>````
sudo systemctl status docker.service
Fügen Sie den folgenden ELK-Servernamen es01 kibana fleet-server heartbeat logstash filebeat filebeat01
nach der IP-Adresse und dem Servernamen zu /etc/hosts hinzu:
````
sudo vi /etc/hosts
Fügen Sie dies nach den ELK-Server-IP-Adressen zu /etc/hosts hinzu<br>
127.0.0.1 sensor es01 ...<br>
192.168.25.80 sensor es01 ...<br>````
es01 kibana fleet-server heartbeat logstash filebeat filebeat01
Bearbeiten Sie die Datei sysctl.conf:
````
sudo vi /etc/sysctl.conf
Fügen Sie Folgendes am Ende der Datei hinzu:<br>````
vm.max_map_count=262144
Fügen Sie es hinzu und speichern Sie es. Dies ist für Elasticsearch, wenn Docker verwendet wird.
sudo iptables -nL

# DShield ELK konfigurieren und installieren
Führen Sie die folgenden Befehle mit dem Benutzerkonto ($) aus:<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
Hinweis: Vor der Installation kannst du die .env-Datei (ls -la, um sie zu sehen) bearbeiten, um alle gewünschten Änderungen vorzunehmen.
- Aktuelles Standardpasswort für elastic ist student
Speicherlimits in .env sind die maximale Speichermenge, die Docker für jeden der ELK-Container zuweist.
Standardmäßig 3GB für Elasticsearch, aber erweiterbar, wenn du die Ressourcen hast
Bearbeite die .env-Datei und konfiguriere sie für deinen eigenen ELK-Stack.
````
vi .env
EINGABE:
- Aktualisieren Sie die folgenden Variablen in der Datei **.env**, um sie an die DNS-Informationen, den Hostnamen, die IP-Adresse und das Standard-Elastic-Passwort Ihres ELK-Servers anzupassen, falls Sie diese ändern möchten: <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
- Wenn Sie die Standard-Nameserver-Informationen und den Standort Ihres lokalen privaten Netzwerks für die Zieladresse ändern möchten (d. h. DShield-Sensor-Zuordnung – derzeit für **Ottawa, Kanada** festgelegt), bearbeiten Sie die Dateien im folgenden Verzeichnis, bevor Sie Docker laden:<br>````
cd logstash/pipeline
Bearbeiten Sie heartbeat.yml, um die Sensor-IP (genannt PI) durch Ihre eigene Sensor-IP zu ersetzen. Kibana Heartbeat prüft den Status Ihrer Dienste und ermittelt, ob diese verfügbar sind.
Aktualisieren Sie diese IP und den Hostnamen, sodass sie Ihren Sensor widerspiegeln.
Hinweis: Sie können dieselben 5 Zeilen kopieren und hinzufügen, wenn Sie mehr als einen Sensor überwachen möchten.
Dies kann unter Observability -> Uptime Monitors angezeigt werden.
