Sammeln der LOGs unseres DNS- und DHCP-Servers in Elasticsearch und Anzeigen dieser in Grafana

Wie wenig originell ich für Kurztitel bin… gut, wenn Sie einen eigenen DNS-Server oder DHCP-Server haben, das ist dein Beitrag 😉 Wir werden ihn nicht wirklich durch Protokolle bekommen, Wir werden dies tun, indem wir Ihren Datenverkehr prüfen 😉 Wir werden die vom DNS-Dienst generierten Anfragen prüfen, oder DHCP, um es in Grafana zu sehen!

Wenn wir die Anfragen wissen wollen, die unser DNS- oder DHCP-Server erhält, mit dem Ziel, sie in Grafana anzeigen zu können, um Abfragen zu machen oder sie in rotierenden Dashboards anzuordnen… wo es uns hilft, den korrekten Betrieb derselben Dienste zu kennen oder nicht, sowie im Falle des DNS die Zielanfragen zu kennen, wer macht sie… Im Falle von DHCP die Anfragen… Andere Arten von Verkehr können selbstverständlich analysiert werden, HTTP, MySQL, PostgreSQL… und kennen somit die gestellten Anfragen…

wie montieren wir es? Wir gehen davon aus, dass wir bereits einen funktionsfähigen ELK und einen Grafana haben, Wir verlassen uns auf Packetbeat, um den Datenverkehr einer bestimmten Maschine zu analysieren, dann senden wir es an Elasticsearch und mit einer Grafana-Datenquelle können wir die benötigten Abfragen durchführen.

En Windows-, wir müssen auf der Maschine installieren Npcap vorher, nur 'Npcap im WinPcap-API-kompatiblen Modus installieren' ankreuzen. Wir fahren fort und beenden mit der Installation von Packetbeat.

Sobald wir packetbeat heruntergeladen und dekomprimiert haben, wir werden es konfigurieren, wie immer, Ihre Konfigurationsdatei 'packetbeat.yml'.

...
setup.template.settings:
  index.number_of_shards: 1
setup.template.name: "Packetbeat"
setup.template.pattern: "packetbeat-*"
setup.ilm.enabled: falsch
...
setup.kibana:
  Gastgeber: "https://DIRECTION_IP_KIBANA:5601"
  ssl.verification_mode: keiner
...
output.elasticsearch:
  # Array von Hosts, zu denen eine Verbindung hergestellt werden soll.
  Gastgeber: ["https://DIRECCION_IP_ELASTIC:9200"]
  ssl.verification_mode: keiner
  Nutzername: "XXXXXXXX"
  Passwort: "XXXXXXXX*"
  Index: "Paketschlag-%{+yyyy.MM.dd}"
...

und, In derselben Konfigurationsdatei müssen wir angeben, welche Datensätze wir prüfen möchten:

...
# ========================== Transaktionsprotokolle ===================== =======
packetbeat.protocols:
- Art: icmp
  # Aktivieren Sie die ICMPv4- und ICMPv6-Überwachung. Die Voreinstellung ist wahr.
  aktiviert: falsch

- Art: amqp
  # Konfigurieren Sie die Ports, an denen AMQP-Datenverkehr überwacht werden soll. Sie können deaktivieren
  # das AMQP-Protokoll, indem Sie die Liste der Ports auskommentieren.
  Häfen: [5672]
  aktiviert: falsch

- Art: Kassandra
  # Konfigurieren Sie die Ports, an denen Cassandra-Datenverkehr überwacht werden soll. Sie können deaktivieren
  # das Cassandra-Protokoll, indem Sie die Liste der Ports auskommentieren.
  Häfen: [9042]
  aktiviert: falsch

- Art: dhcpv4
  # Konfigurieren Sie das DHCP für IPv4-Ports.
  Häfen: [67, 68]

- Art: dns
  # Konfigurieren Sie die Ports, an denen DNS-Datenverkehr überwacht werden soll. Sie können deaktivieren
  # das DNS-Protokoll, indem Sie die Liste der Ports auskommentieren.
  Häfen: [53]

- Art: http
  # Konfigurieren Sie die Ports, an denen auf HTTP-Verkehr gelauscht werden soll. Sie können deaktivieren
  # das HTTP-Protokoll, indem Sie die Liste der Ports auskommentieren.
  Häfen: [80, 8080, 8000, 5000, 8002]
  aktiviert: falsch
...

Einmal konfiguriert, Wir installieren den Dienst:

cd '.\Program Files\packetbeat\'
.\install-service-packetbeat.ps1

Wir validieren die Konfiguration, Wir laden die Konfiguration und starten den Dienst:

.\packetbeat.exe test config -c .\packetbeat.yml -e
.\packetbeat.exe setup
Start-Service packetbeat

Notiz, damit es weniger CPU verbraucht, wir müssen nur die Protokolle filtern, die uns interessieren, auch, im Parameter 'packetbeat.interfaces.device’ Legen Sie die ID der Netzwerkkarte zu prüfen, zu wissen, welche ID, in einer Terminalkonsole führen wir aus: „Packetbeat-Geräte“:

Packetbeat-Geräte
0: \Device\NPF_{AB47E8CD-2692-4320-A188-FFE1191EDFDC} (Adapter Ethernet vmxnet3) (fe80::70wenn:a48d:29b2:3677 192.168.1.100)
1: \Device\NPF_Loopback (Adapter für Loopback-Verkehrserfassung) (Nicht zugewiesene IP-Adresse)

Wir können von Kibana aus überprüfen, ob wir die Auditbeat-Ereignisse bereits sammeln, Wir müssen den Index wie gewohnt erstellen.

Und dann sind wir, Von Grafana aus erstellen wir eine Datenquelle für diesen Elasticsearch-Index und können mit der Erstellung beginnen. Etwas Schöneres sein zu können als ich. Ein Panel, DNS-Abfragen auf einen Blick, Quelle, Ziel, Top-Kunden, Top-Destinationen… und mehr oder weniger das gleiche mit DHCP.

Ich bin sicher, Sie verbessern mein Dashboard in weniger als ein Hahn singt, Wir können andere Arten von Paneelen anbringen, Das sind die typischen Käsesorten, Grafik, sankey…

Um später Filter und DNS-Suchen nach Quell-IP durchführen zu können, Zielseite…

Eine andere Möglichkeit, DHCP anzuzeigen… und ja,… Ich sehe, dass ich einen Raspberry Pi habe, der Probleme mit WLAN hat, muss einen beschissenen Transformator mit Niederspannung haben…

aber hey, in einer Umgebung mit mehr Daten, oder realere Daten können Sie diese attraktiver visualisieren. Venga, Ich verlängere nicht, Ich hoffe, es inspiriert Sie, wenn Sie Daten von Ihrem DNS-Server oder DHCP-Server sammeln müssen.

Eine Umarmung an alle!

Letzte Artikel von Hector Herrero (Alle anzeigen)