Recopilant els LOGs del nostre servidor DNS i DHCP a Elasticsearch i visualitzant-los a Grafana

Quin poc original sóc per als títols curts… bo, si tens el teu propi servidor DNS o servidor DHCP, aquest és el teu post 😉 Realment no anem a obtenir-lo mitjançant logs, ho farem auditant el seu trànsit 😉 Auditarem les peticions que generen el servei DNS, o DHCP per veure'l a Grafana!

Si volem conèixer les peticions que rep el nostre servidor DNS o DHCP amb l'objectiu de poder visualitzar-les a Grafana per fer consultes o disposar-les en dashboards rotatius… on ens ajudi a conèixer el funcionament correcte o no dels mateixos serveis, així com conèixer en el cas del DNS les peticions de destí, qui les realitza… En el cas del DHCP doncs les peticions… Es poden analitzar altres tipus de tràfics, per descomptat, HTTP, MySQL, PostgreSQL… i així conèixer les consultes (queries) que es realitzen…

Com ho muntem? Donem per fet que ja disposem d'ELK funcional i d'un Grafana, ens recolzarem en Packetbeat per analitzar el tràfic d'una màquina determinada, després l'enviarem a Elasticsearch i amb un Datasource de Grafana podrem fer les consultes que necessitem.

A Windows, hem d'instal·lar a la màquina Npcap prèviament, marcant només ‘Install Npcap in WinPcap API-compatible Mode’. Continuem i finalitzem amb la instal·lació de Packetbeat.

Un cop tinguem packetbeat descarregat i descomprimit, lo configuraremos, com sempre, el seu fitxer de configuració ‘packetbeat.yml’.

...
setup.template.settings:
  index.number_of_shards: 1
setup.template.name: "packetbeat"
setup.template.pattern: "packetbeat-*"
setup.ilm.enabled: false
...
setup.kibana:
  host: "https://DIRECCION_IP_KIBANA:5601"
  ssl.verification_mode: none
...
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["https://DIRECCION_IP_ELASTIC:9200"]
  ssl.verification_mode: none
 username: "XXXXXXXXX"
  password: "XXXXXXXX*"
  index: "packetbeat-%{+yyyy. MM.dd}"
...

Y, en el mateix fitxer de configuració necessitarem indicar quins registres ens interessa auditar:

...
# =========================== Protocols de transacció ============================
packetbeat.protocols:
- type: icmp
  # Activa la supervisió ICMPv4 i ICMPv6. El valor per defecte és true.
  enabled: false

- type: amqp
  # Configure the ports where to listen for AMQP traffic. You can disable
  # the AMQP protocol by commenting out the list of ports.
  ports: [5672]
  enabled: false

- type: cassandra
  # Configure the ports where to listen for Cassandra traffic. You can disable
  # the Cassandra protocol by commenting out the list of ports.
  ports: [9042]
  enabled: false

- type: dhcpv4
  # Configure the DHCP for IPv4 ports.
  ports: [67, 68]

- type: dns
  # Configure the ports where to listen for DNS traffic. You can disable
  # the DNS protocol by commenting out the list of ports.
  ports: [53]

- type: http
  # Configure the ports where to listen for HTTP traffic. You can disable
  # the HTTP protocol by commenting out the list of ports.
  ports: [80, 8080, 8000, 5000, 8002]
  enabled: false
...

Una vez configurado, instal·lem el servei:

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

Validamos la configuración, cargamos la config y arrancamos el servicio:

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

Nota, para que use menos CPU, hem de filtrar només els protocols que ens interessin, a més, en el paràmetre 'packetbeat.interfaces.device'’ posar-li l'ID de la targeta de xarxa a auditar, per saber quin ID, en una consola de terminal executem: 'packetbeat devices':

packetbeat devices
0: \Device\NPF_{AB47E8CD-2692-4320-A188-FFE1191EDFDC} (Adaptador Ethernet vmxnet3) (fe80::70ef:a48d:29b2:3677 192.168.1.100)
1: \Device\NPF_Loopback (Adaptador per captura de tràfic de loopback) (Adreça IP no assignada)

Podrem anar a comprovar des de Kibana si ja estem recopilant els esdeveniments d'Auditbeat, haurem de crear l'índex com de costum.

Y després ya, des de Grafana crearem un Data Source contra aquest índex d'Elasticsearch i podrem començar a crear. Si pot ser, alguna cosa més bonica que la meva. Un panell, d'un cop d'ull es veuen les consultes DNS, origen, destinació, top de clients, top de destinacions… y més o menos lo mateix amb el DHCP.

Estoy segur que milloráis mi dashboard en menys de lo que canta un gallo, podem poner otro tipo de paneles, aquests són els típicos de quesito, gràfiques, sankey…

Per poder després fer filtros i cercles DNS per IP de origen, sitio de destino…

Otra manera de veure el DHCP… i sí… veo que tengo una Raspberry Pi que tiene problemas con el Wifi, debe tener un transformador cutre con bajo voltaje…

Però bo, en un entorn con más datos, o datos más reales podéis visualizarlo de una manera més atractiva. Vingui, no me alargo, espero que os sirva de inspiración si necessitáis recoller los datos de vuestro servidor DNS o servidor DHCP.

Una abraçada a tod@s!

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!