Elastic SIEM – Installation auf Ubuntu

Einleitung

Ich möchte gerne mein Microsoft Advanced Threat Analytics (ATA) ablösen. Dieser Service sollte bisher Angriffsmuster erkennen, indem er die Eventlogs der Domain Controller ausliest und bewertet. Da das Produkt ab Januar 2026 nicht mehr supportet wird, möchte ich es ersetzen. Zudem fehlt mit im ATA die Option, auch die anderen Systeme auszulesen und zu bewerten.

So kam mir die Idee, ein eigenes SIEM-System aufzubauen. Um Kosten zu sparen, setze ich auf die freie Variante von Elastic SIEM. In diesem Beitrag möchte ich zeigen, wie ich Elastic, Kibana und nginx auf einem Ubuntu Server 22.04 installiere. Dafür gibt es im Netz viele Anleitungen, aber bei meinen Versuchen hat keine funktioniert! Also habe ich eine eigene für euch geschrieben.

Vorarbeiten

Ich habe mir eine virtuelle Maschine auf meinem Hyper-V-Server erstellt. Folgende Konfiguration habe ich für den Anfang gewählt:

  • Generation 2 mit Secure Boot
  • 6x vCPU
  • 2GB-8GB dynamischen RAM
  • 70GB VHDX

Den Ubuntu-Server habe ich in mein AD aufgenommen und mein Tier-Management darauf eingerichtet. Ich habe den Server als Tier-0 eingestuft, damit er möglichst lange in Angriffsszenarien verschont bleibt.

Folgende Seiten habe ich verwendet, um meine Anleitungsschritte zu finden. Keine von denen hat bei mir funktioniert! Ich musste die Befehle und Aktionen selber zusammenstellen:

  • https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
  • https://www.elastic.co/guide/en/elastic-stack/8.15/install-stack-demo-secure.html
  • https://www.nathanhunstad.com/blog/2023/05/how-to-configure-kibana-behind-an-nginx-proxy/
  • https://discuss.elastic.co/t/setting-https-for-kibana-with-nginx-and-a-fqdn/205010
  • https://medium.com/@mando_elnino/sysmon-for-log-collection-and-analysis-in-elastic-siem-c49568afb869

Installation

Setup von elasticsearch

Ich melde mich an meinem neuen System als T0-Admin an und hole mir sudo-Berechtigungen:

Elastic SIEM auf Ubuntu 22.04

Zuerst installiere ich den PGP-Key von Elastic. Das ist notwendig, damit ich im nächsten Schritt das Repository registrieren kann. Den Response vom wget habe ich vorher natürlich überprüft 😉

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Elastic SIEM auf Ubuntu 22.04

Das Repository von Elastic muss registriert werden:

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
Elastic SIEM auf Ubuntu 22.04

Das Repository ist nun aktiv:

sudo apt-get update
Elastic SIEM auf Ubuntu 22.04

Nun kann das Paket elasticsearch installiert werden. Dabei wird das superuser-Passwort ausgegeben. Dieses speichere ich mir weg.

sudo apt-get install elasticsearch
Elastic SIEM auf Ubuntu 22.04

Wie im letzten Bild sichtbar muss der Service noch auf automatischen Start konfiguriert werden. Dann kann der Service gestartet werden.

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
systemctl status elasticsearch.service
Elastic SIEM auf Ubuntu 22.04
Elastic SIEM auf Ubuntu 22.04

Ein erster Verbindungsversuch kann mit curl gestartet werden. Da muss das Passwort vom Setup eingetragen werden:

sudo curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:YOURPASSWORD https://localhost:9200 	
Elastic SIEM auf Ubuntu 22.04

Konfiguration eines Webserver-Zertifikates

Für eine korrekte Absicherung importiere ich ein Webserver-Zertifikat. Dafür erstelle ich ein eigenes Verzeichnis und kopiere den öffentlichen und den privaten Schlüssel mit nano in die beiden Dateien:

sudo mkdir -p /etc/ssl/cert
sudo nano /etc/ssl/cert/siem.crt
sudo nano /etc/ssl/cert/siem.key
Elastic SIEM auf Ubuntu 22.04

Das Zertifikat erzeuge ich auf meinem Adminserver mit meinem CertificateRequestTool:

Elastic SIEM auf Ubuntu 22.04
Elastic SIEM auf Ubuntu 22.04

Jetzt kopiere ich den PublicKey in die Datei /etc/ssl/cert/siem.crt:

Elastic SIEM auf Ubuntu 22.04

Und dann kopiere ich den PrivateKey in die Datei /etc/ssl/cert/siem.key

Elastic SIEM auf Ubuntu 22.04
Elastic SIEM auf Ubuntu 22.04

Setup von kibana

Nun installiere ich noch das Paket kibana:

sudo apt-get install kibana
Elastic SIEM auf Ubuntu 22.04

Kibana wird mit einem Enrollment-Token mit elasticsearch verbunden. Dieser muss erzeugt und registriert werden:

sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
sudo /usr/share/kibana/bin/kibana-setup
Elastic SIEM auf Ubuntu 22.04

Jetzt passe ich die kibana-Konfiguration an. Dafür editiere ich die yml-Datei mit nano:

sudo nano /etc/kibana/kibana.yml
Elastic SIEM auf Ubuntu 22.04

Hier sind mehrere Eingaben erforderlich:

server.port: 5601
server.host: "192.168.100.32"
server.publicBaseUrl: "https://siem.ws.its"	
server.name: "siem.ws.its"
server.ssl.enabled: true
server.ssl.certificate: /etc/ssl/cert/siem.crt
server.ssl.key: /etc/ssl/cert/siem.key
Elastic SIEM auf Ubuntu 22.04

Jetzt konfiguriere ich Kibana für den automatischen Start und starte den Service:

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service
sudo systemctl start kibana.service
sudo systemctl status kibana
Elastic SIEM auf Ubuntu 22.04

Setup eines nginx Reverse Proxy

Der Webservice läuft nun unter TCP-Port 5601. Eigentlich möchte ich aber die Webseite mit TCP-Port 443 ansprechen. Leider wird Kibana vom Betriebssystem davon abgehalten, diesen Port zu benutzen. Ich habe hier verschiedene Versuche gestartet. Aber alle waren fehlerhaft oder problematisch. Also habe ich beschlossen, einen nginx als ReverseProxy davor zu schalten. Dieser muss zuerst installiert werden:

sudo apt install nginx
sudo systemctl status nginx
Elastic SIEM auf Ubuntu 22.04

Nun fehlt noch das Configfile für den nginx. Das erstelle ich wieder mit nano:

sudo nano /etc/nginx/conf.d/elastic.conf
Elastic SIEM auf Ubuntu 22.04

Folgende Zeilen sind hier notwendig. Der nginx-Webserver darf das gleiche Zertifikat verwenden, das ich auch schon Kibana konfiguriert habe. Der Redirect ist in Zeile 7 zu sehen:

server {
  listen siem.ws.its:443 ssl;
  server_name siem.ws.its;
  ssl_certificate /etc/ssl/cert/siem.crt;
  ssl_certificate_key /etc/ssl/cert/siem.key;
  location / {
	proxy_pass https://192.168.100.32:5601;
	proxy_redirect off;
	proxy_buffering off;
	proxy_set_header Connection "Keep-Alive";
	proxy_set_header Proxy-Connection "Keep-Alive";
  }
}

Nginx muss einmal durchgestartet werden, damit er die Konfiguration verarbeitet:

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl status nginx.service
Elastic SIEM auf Ubuntu 22.04

Jetzt kann ich die Webseite von meinem AdminBrowser aus erreichen und mich als Admin mit dem generierten Passwort aus dem ElasticSearch-Setup anmelden 🙂

Elastic SIEM auf Ubuntu 22.04

Nächste Schritte

Nun ist die Ersteinrichtung im Elastic im Browser vorzunehmen. Diese Schritte dokumentiere ich in einem anderen Beitrag.

Alle Befehle habe ich hier auch noch einmal als Textdatei zusammen gestellt: Befehle.zip

Stay tuned!