Coletando os LOGs do nosso servidor DNS e DHCP no Elasticsearch e visualizando-os no Grafana

Como eu sou pouco original para títulos curtos… Poço, se você tiver seu próprio servidor DNS ou servidor DHCP, Esta é a sua postagem 😉 Nós realmente não vamos obtê-lo através de logs, faremos isso auditando seu tráfego 😉 Auditaremos as solicitações geradas pelo serviço DNS, ou DHCP para visualizá-lo no Grafana!

Se quisermos conhecer os pedidos que o nosso servidor DNS ou DHCP recebe com o objetivo de os poder visualizar no Grafana para realizar consultas ou disponibilizá-los em dashboards rotativos… onde nos ajude a conhecer se o funcionamento desses serviços está correto ou não, assim como conhecer, no caso do DNS, os pedidos de destino, quem os realiza… No caso do DHCP, os pedidos… Podem ser analisados outros tipos de tráfego, claro, HTTP, O MySQL, PostgreSQL… e assim conhecer as queries que são realizadas…

Como configuramos isto? Consideramos que já dispomos de ELK funcional e de Grafana, iremos apoiar-nos no Packetbeat para analisar o tráfego de uma máquina específica, luego lo mandaremos a Elasticsearch y con un Datasource de Grafana podremos hacer las consultas que necesitemos.

En Windows, debemos instalar en la máquina Npcap previamente, marcando únicamente 'Install Npcap in WinPcap API-compatible Mode'. Continuamos y finalizamos con la instalación de Packetbeat.

Una vez tengamos packetbeat descargado y descomprimido, lo configuraremos, como de costume, su fichero de configuración 'packetbeat.yml'.

...
setup.template.settings:
  index.number_of_shards: 1
setup.template.name: "packetbeat"
setup.template.pattern: "packetbeat-*"
setup.ilm.enabled: Falso
...
setup.kibana:
  anfitrião: "https (em inglês)://DIRECCION_IP_KIBANA:5601"
  ssl.verification_mode: nenhum
...
output.elasticsearch:
  # Array of hosts to connect to.
  Hosts: ["https (em inglês)://DIRECCION_IP_ELASTIC:9200"]
  ssl.verification_mode: none
 username: "XXXXXXXX"
  senha: "XXXXXXXX*"
  index: "packetbeat-%{+yyyy. MM.dd}"
...

E, en el mismo fichero de configuración necesitaremos indicar qué registros nos interesan auditar:

...
# =========================== Protocolos de transação ============================
packetbeat.protocols:
- tipo: icmp
  # Habilitar monitoramento ICMPv4 e ICMPv6. O padrão é verdadeiro.
  Habilitado: Falso

- tipo: amqp
  # Configurar as portas onde escutar o tráfego AMQP. Você pode desabilitar
  # o protocolo AMQP comentando a lista de portas.
  Portas: [5672]
  Habilitado: Falso

- tipo: cassandra
  # Configurar as portas onde ouvir o tráfego de Cassandra. Você pode desabilitar
  # o protocolo Cassandra comentando a lista de portas.
  Portas: [9042]
  Habilitado: Falso

- tipo: dhcpv4
  # Configurar o DHCP para portas IPv4.
  Portas: [67, 68]

- tipo: dns
  # Configurar as portas onde escutar o tráfego DNS. Você pode desabilitar
  # o protocolo DNS comentando a lista de portas.
  Portas: [53]

- tipo: Referências HTTP
  # Configurar as portas onde escutar o tráfego HTTP. Você pode desabilitar
  # o protocolo HTTP comentando a lista de portas.
  Portas: [80, 8080, 8000, 5000, 8002]
  Habilitado: Falso
...

Una vez configurado, instalamos el servicio:

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, debemos filtrar sólo los protocolos que nos interesen, Além disso, en el parámetro 'packetbeat.interfaces.device’ ponerle el ID de la tarjeta de red a auditar, para saber que ID, en una consola de terminal ejecutamos: '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 (Adapter for loopback traffic capture) (Not assigned ip address)

Podremos ir a comprobar desde Kibana si ya estamos recopilando los eventos de Auditbeat, deberemos crear el índice como de costumbre.

Y luego ya, desde Grafana crearemos un Data Source contra este índice de Elasticsearch y podremos comenzar a crear. A poder ser algo más bonito que lo mío. Un panel, de un vistazo se ven las consultas DNS, origem, destino, top de clientes, top de destinos… y más o menos lo mismo con el DHCP.

Estoy seguro que mejoráis mi dashboard en menos de lo que canta un gallo, podemos poner otro tipo de paneles, estos son los típicos de quesito, gráficas, sankey…

Para poder luego hacer filtros y búsquedas DNS por IP de origen, sitio de destino…

Otra manera de ver el DHCP… e sim… veo que tengo una Raspberry Pi que tiene problemas con el Wifi, debe tener un transformador cutre con bajo voltaje…

Mas, bem, en un entorno con más datos, o datos más reales podéis visualizarlo de una manera más atrativa. Vir, no me alargo, espero que os sirva de inspiración si necesitáis recoger los datos de vuestro servidor DNS o servidor DHCP.

Um abraço para tod@s!

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!