Graylog MQTT Projekt: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 22: Zeile 22:
  
 
==== Logdaten senden und visualisieren ====
 
==== Logdaten senden und visualisieren ====
* Die Logs von Mosquitto an Graylog weiterleiten, um Verbindungen, Abmeldungen, und Fehler detailliert zu erfassen.
+
* Die Logs von Mosquitto an Graylog weiterleiten, um Verbindungen, Abmeldungen und Fehler detailliert zu erfassen.
 
* Eine Beispielvisualisierung erstellen, um typische IoT-Events darzustellen.
 
* Eine Beispielvisualisierung erstellen, um typische IoT-Events darzustellen.
  
Zeile 28: Zeile 28:
 
* Alarme für verdächtige oder fehlerhafte Aktivitäten einrichten (z. B. hohe Verbindungsfrequenz).
 
* Alarme für verdächtige oder fehlerhafte Aktivitäten einrichten (z. B. hohe Verbindungsfrequenz).
 
* Regeln erstellen, die automatisch eine Benachrichtigung auslösen, wenn bestimmte Schwellenwerte überschritten werden.
 
* Regeln erstellen, die automatisch eine Benachrichtigung auslösen, wenn bestimmte Schwellenwerte überschritten werden.
 +
 
== Graylog für die Erfassung von Mosquitto-Logs konfigurieren ==
 
== Graylog für die Erfassung von Mosquitto-Logs konfigurieren ==
 +
 
=== Graylog-Eingang einrichten ===
 
=== Graylog-Eingang einrichten ===
 
* Öffne die Graylog-Weboberfläche unter `http://<DEINE_IP>:9000`.
 
* Öffne die Graylog-Weboberfläche unter `http://<DEINE_IP>:9000`.
Zeile 38: Zeile 40:
 
   * ''Port'': 1514 (oder ein anderer freier Port)
 
   * ''Port'': 1514 (oder ein anderer freier Port)
 
   * Klicke auf ''Speichern'', um den Input zu aktivieren.
 
   * Klicke auf ''Speichern'', um den Input zu aktivieren.
=== Rsyslog installieren===
+
 
*sudo apt update
+
=== Rsyslog installieren ===
*sudo apt install rsyslog -y
+
* Führe folgende Befehle aus, um Rsyslog zu installieren und zu aktivieren:
*systemctl enable rsyslog --now
+
<pre>
 +
sudo apt update
 +
sudo apt install rsyslog -y
 +
sudo systemctl enable rsyslog --now
 +
</pre>
 +
 
 
=== Mosquitto-Logs an Graylog senden ===
 
=== Mosquitto-Logs an Graylog senden ===
* Öffne die Mosquitto-Konfigurationsdatei, z.B. `/etc/mosquitto/conf.d/graylog.conf`.
+
* Öffne die Mosquitto-Konfigurationsdatei, z.B. `/etc/mosquitto/conf.d/defaults.conf`.
 
* Füge folgende Zeilen hinzu, um die Logs an Graylog weiterzuleiten:
 
* Füge folgende Zeilen hinzu, um die Logs an Graylog weiterzuleiten:
 
<pre>
 
<pre>
Zeile 51: Zeile 58:
 
* Stelle sicher, dass dein System so konfiguriert ist, dass es Syslog-Nachrichten an den Graylog-Server weiterleitet. Füge dazu in der Datei `/etc/rsyslog.conf` (oder `/etc/rsyslog.d/50-default.conf`) folgende Zeile hinzu:
 
* Stelle sicher, dass dein System so konfiguriert ist, dass es Syslog-Nachrichten an den Graylog-Server weiterleitet. Füge dazu in der Datei `/etc/rsyslog.conf` (oder `/etc/rsyslog.d/50-default.conf`) folgende Zeile hinzu:
 
<pre>
 
<pre>
*.* @<GRAYLOG_IP>:514;RSYSLOG_SyslogProtocol23Format
+
*.* @127.0.0.1:1514;RSYSLOG_SyslogProtocol23Format
 
</pre>
 
</pre>
  
* Starte den Rsyslog-Dienst neu:
+
* Starte den Rsyslog und Mosquitto Dienst neu:
 
<pre>
 
<pre>
sudo systemctl restart rsyslog
+
sudo systemctl restart rsyslog mosquitto
 
</pre>
 
</pre>
  
=== Logs in Graylog visualisieren ===
+
== Dashboard-Erstellung ==
* Kehre zur Graylog-Oberfläche zurück und gehe zu ''Search''.
+
Ein Dashboard hilft dabei, wichtige Metriken auf einen Blick zu sehen.
* Verwende Filter wie ''source:mosquitto'' oder ''message:'' für eine detaillierte Analyse und Visualisierung der MQTT-Logs.
+
 
 +
* Gehe in der Graylog-Weboberfläche zu ''Dashboards'' und klicke auf ''Create new dashboard''.
 +
* Gib dem Dashboard einen Namen (z.B. „IoT Monitoring“).
 +
 
 +
=== Widgets hinzufügen ===
 +
* Öffne dein Dashboard und klicke auf ''Add Widget''.
 +
* Wähle einen Histogramm-Widget, um die Anzahl der Ereignisse im Laufe der Zeit darzustellen.
 +
* Setze Filter für spezifische Ereignistypen wie Verbindungen (z.B. „New client connected“) oder Abmeldungen.
 +
* Füge weitere Widgets hinzu, um z.B. Verbindungsfehler, MQTT-Publishing-Nachrichten und Client-IDs anzuzeigen.
 +
 
 +
== Filter und Suchabfragen für spezifische Ereignisse ==
 +
Suchabfragen helfen, relevante Ereignisse schnell zu identifizieren.
 +
 
 +
=== Ereignisse filtern ===
 +
* Gehe zu ''Search'' und gib eine Abfrage ein, um nur bestimmte Log-Typen zu sehen.
 +
* Beispiel: Um alle Verbindungen zu sehen, kannst du Folgendes eingeben:
 +
<pre>
 +
message:"New client connected"
 +
</pre>
 +
 
 +
=== Suchabfrage speichern ===
 +
* Speichere diese Abfrage als ''Stream'' für schnellen Zugriff.
 +
* Klicke auf ''Create Stream'' und nenne ihn z.B. „Verbindungen“.
 +
* Dieser Stream kann nun in Dashboards und für Alarme verwendet werden.
 +
 
 +
== Alarme und Benachrichtigungen konfigurieren ==
 +
Alarme sind wichtig, um über verdächtige Aktivitäten informiert zu werden.
 +
 
 +
=== Neuen Alarm erstellen ===
 +
* Gehe zu ''Alerts > Event Definitions'' und klicke auf ''Create new event definition''.
 +
* Wähle eine Bedingung aus, z.B.:
 +
  * Wenn die Anzahl der Verbindungen pro Minute über einen Schwellenwert steigt.
 +
  * Wenn eine bestimmte Fehlermeldung in den Logs auftaucht.
 +
 
 +
=== Benachrichtigung konfigurieren ===
 +
* Füge eine Benachrichtigung hinzu, z.B. eine E-Mail-Benachrichtigung.
 +
* Lege fest, wann und an wen die Benachrichtigung gesendet werden soll.
 +
* Teste die Benachrichtigung, um sicherzustellen, dass sie funktioniert.
 +
 
 +
== Anomalieerkennung und Tests ==
 +
Simuliere Anomalien, um die Reaktionsfähigkeit der Alarme zu überprüfen.
 +
 
 +
=== Hohe Nachrichtenfrequenz ===
 +
* Verwende ein MQTT-Client-Tool, um Nachrichten in sehr schnellen Intervallen zu senden.
 +
* Beobachte, ob der Alarm ausgelöst wird.
 +
 
 +
=== Schnelle Verbindungen und Trennungen ===
 +
* Verbinde dich schnell und trenne die Verbindung wiederholt von einem MQTT-Client.
 +
* Prüfe, ob ein Alarm für ungewöhnliche Verbindungsaktivität ausgelöst wird.
 +
 
 +
== Zeitanalyse und Trend-Erkennung ==
 +
Die Zeitanalyse hilft, langfristige Trends zu identifizieren.
 +
 
 +
=== Daten über Zeiträume analysieren ===
 +
* Wähle in der Graylog-Suche längere Zeiträume aus (z.B. 1 Woche oder 1 Monat).
 +
* Sieh dir Muster in den Logs an, z.B. Spitzenzeiten für Verbindungen oder häufige Fehlermeldungen.
  
=== Alarme für verdächtige Aktivitäten einrichten ===
+
=== Berichte erstellen ===
* Gehe zu ''Alerts > Event Definitions'' und erstelle eine neue Event-Definition.
+
* Verwende Dashboards, um regelmäßige Berichte zu erstellen.
* Definiere Regeln für Alarme, z.B. eine hohe Anzahl von Verbindungen oder fehlgeschlagene Authentifizierungen.
+
* Nutze die gespeicherten Streams und Widgets, um Entwicklungen über längere Zeiträume zu visualisieren.
* Lege Benachrichtigungen fest, um bei verdächtigen Ereignissen gewarnt zu werden.
 

Aktuelle Version vom 30. Oktober 2024, 13:04 Uhr

Schulungsprojekt: SIEM, IoT und Industrie 4.0 mit Graylog und Mosquitto

Für ein Schulungsprojekt zu SIEM, IoT und Industrie 4.0 ist Graylog in Kombination mit einem MQTT-Broker wie Mosquitto ideal, da praktische Erfahrungen in der Überwachung und Analyse von IoT-Datenströmen gesammelt werden können. Hier ist ein strukturierter Ansatz, um die Integration sinnvoll aufzubauen und Themen für die Schulung abzudecken:

Schulungsziele und Szenarien

  • Überwachung von IoT-Events: Zeigen, wie man Verbindungs- und Authentifizierungsereignisse des MQTT-Brokers überwacht. Diese Logs geben Einblick in die Verbindungssicherheit und das Verhalten der Clients.
  • Erkennung von Anomalien: Demonstriere die Identifikation ungewöhnlicher Aktivitäten, wie z.B. hohe Nachrichtenfrequenz, unerwartete Verbindungsversuche oder missbräuchliches Publishing. Hierbei wird gezeigt, wie wichtig die Anomalieerkennung für Industrie 4.0-Systeme ist.
  • Reaktions- und Alarmierungsmechanismen: Erstelle in Graylog Regeln und Alarme für verdächtige Aktivitäten, um die Bedeutung proaktiver Sicherheitsüberwachung zu verdeutlichen.
  • Datenspeicherung und Analyse: Nutze die Elasticsearch-Integration von Graylog zur Analyse und Darstellung von Daten über Zeitreihen. Das ist besonders relevant, um IoT-Daten langfristig auszuwerten und Trends zu erkennen.

Empfohlene Schritte für das Projekt

Mosquitto einrichten und konfigurieren

  • Grundkonfiguration für Mosquitto zur Authentifizierung und zum Loggen der Ereignisse festlegen.

Graylog installieren und anpassen

  • Graylog auf dem Server installieren, zusammen mit Elasticsearch und MongoDB, und die Anbindung für MQTT-Logs vorbereiten.

Logdaten senden und visualisieren

  • Die Logs von Mosquitto an Graylog weiterleiten, um Verbindungen, Abmeldungen und Fehler detailliert zu erfassen.
  • Eine Beispielvisualisierung erstellen, um typische IoT-Events darzustellen.

Alarmierung und Anomalieerkennung in Graylog einrichten

  • Alarme für verdächtige oder fehlerhafte Aktivitäten einrichten (z. B. hohe Verbindungsfrequenz).
  • Regeln erstellen, die automatisch eine Benachrichtigung auslösen, wenn bestimmte Schwellenwerte überschritten werden.

Graylog für die Erfassung von Mosquitto-Logs konfigurieren

Graylog-Eingang einrichten

  • Öffne die Graylog-Weboberfläche unter `http://<DEINE_IP>:9000`.
  • Melde dich mit deinem Admin-Benutzer an.
  • Gehe zu System > Inputs und wähle Input hinzufügen.
  • Wähle als Typ Syslog UDP und klicke auf Launch new input.
  • Konfiguriere den Input:
 * Bind address: 0.0.0.0
 * Port: 1514 (oder ein anderer freier Port)
 * Klicke auf Speichern, um den Input zu aktivieren.

Rsyslog installieren

  • Führe folgende Befehle aus, um Rsyslog zu installieren und zu aktivieren:
sudo apt update
sudo apt install rsyslog -y
sudo systemctl enable rsyslog --now

Mosquitto-Logs an Graylog senden

  • Öffne die Mosquitto-Konfigurationsdatei, z.B. `/etc/mosquitto/conf.d/defaults.conf`.
  • Füge folgende Zeilen hinzu, um die Logs an Graylog weiterzuleiten:
log_dest syslog
  • Stelle sicher, dass dein System so konfiguriert ist, dass es Syslog-Nachrichten an den Graylog-Server weiterleitet. Füge dazu in der Datei `/etc/rsyslog.conf` (oder `/etc/rsyslog.d/50-default.conf`) folgende Zeile hinzu:
*.* @127.0.0.1:1514;RSYSLOG_SyslogProtocol23Format
  • Starte den Rsyslog und Mosquitto Dienst neu:
sudo systemctl restart rsyslog mosquitto

Dashboard-Erstellung

Ein Dashboard hilft dabei, wichtige Metriken auf einen Blick zu sehen.

  • Gehe in der Graylog-Weboberfläche zu Dashboards und klicke auf Create new dashboard.
  • Gib dem Dashboard einen Namen (z.B. „IoT Monitoring“).

Widgets hinzufügen

  • Öffne dein Dashboard und klicke auf Add Widget.
  • Wähle einen Histogramm-Widget, um die Anzahl der Ereignisse im Laufe der Zeit darzustellen.
  • Setze Filter für spezifische Ereignistypen wie Verbindungen (z.B. „New client connected“) oder Abmeldungen.
  • Füge weitere Widgets hinzu, um z.B. Verbindungsfehler, MQTT-Publishing-Nachrichten und Client-IDs anzuzeigen.

Filter und Suchabfragen für spezifische Ereignisse

Suchabfragen helfen, relevante Ereignisse schnell zu identifizieren.

Ereignisse filtern

  • Gehe zu Search und gib eine Abfrage ein, um nur bestimmte Log-Typen zu sehen.
  • Beispiel: Um alle Verbindungen zu sehen, kannst du Folgendes eingeben:
message:"New client connected"

Suchabfrage speichern

  • Speichere diese Abfrage als Stream für schnellen Zugriff.
  • Klicke auf Create Stream und nenne ihn z.B. „Verbindungen“.
  • Dieser Stream kann nun in Dashboards und für Alarme verwendet werden.

Alarme und Benachrichtigungen konfigurieren

Alarme sind wichtig, um über verdächtige Aktivitäten informiert zu werden.

Neuen Alarm erstellen

  • Gehe zu Alerts > Event Definitions und klicke auf Create new event definition.
  • Wähle eine Bedingung aus, z.B.:
 * Wenn die Anzahl der Verbindungen pro Minute über einen Schwellenwert steigt.
 * Wenn eine bestimmte Fehlermeldung in den Logs auftaucht.

Benachrichtigung konfigurieren

  • Füge eine Benachrichtigung hinzu, z.B. eine E-Mail-Benachrichtigung.
  • Lege fest, wann und an wen die Benachrichtigung gesendet werden soll.
  • Teste die Benachrichtigung, um sicherzustellen, dass sie funktioniert.

Anomalieerkennung und Tests

Simuliere Anomalien, um die Reaktionsfähigkeit der Alarme zu überprüfen.

Hohe Nachrichtenfrequenz

  • Verwende ein MQTT-Client-Tool, um Nachrichten in sehr schnellen Intervallen zu senden.
  • Beobachte, ob der Alarm ausgelöst wird.

Schnelle Verbindungen und Trennungen

  • Verbinde dich schnell und trenne die Verbindung wiederholt von einem MQTT-Client.
  • Prüfe, ob ein Alarm für ungewöhnliche Verbindungsaktivität ausgelöst wird.

Zeitanalyse und Trend-Erkennung

Die Zeitanalyse hilft, langfristige Trends zu identifizieren.

Daten über Zeiträume analysieren

  • Wähle in der Graylog-Suche längere Zeiträume aus (z.B. 1 Woche oder 1 Monat).
  • Sieh dir Muster in den Logs an, z.B. Spitzenzeiten für Verbindungen oder häufige Fehlermeldungen.

Berichte erstellen

  • Verwende Dashboards, um regelmäßige Berichte zu erstellen.
  • Nutze die gespeicherten Streams und Widgets, um Entwicklungen über längere Zeiträume zu visualisieren.