[SOLUCIONADO] Histórico concesiones DHCP



  • Hola,

    Actualmente tengo instalado pfSense 2.1.5 64-bit funcionando como DHCP y filtrando con Squid en un colegio.

    El problema es que a la hora de analizar los reportes de Squid no puedo saber a qué dispositivo corresponde una dirección IP porque en el menú DHCP Leases solo se muestran las concesiones actuales. Por ejemplo, si en los reportes veo que 10.0.100.100 entró en www.marca.com el día 5 de noviembre a las 12:00, no puedo saber quién es puesto que actualmente esa IP está asignada a otra máquina.  Antes usaba Zentyal y guardaba un registro de las concesiones DHCP por fechas, de modo que podía saber a quién estaba asignada esa dirección el día 5 a esa hora.

    ¿Hay alguna forma de obtener esta información en pfSense?



  • Saludos mi estimado creo que vendria bien realizar el trabajo de amarrar ip con mac para que pueda tener completamente listado e identificado cada host cliente en su red de servicios de otra forma es poco probable que pueda tener esa informacion.
    Estamos a su orden



  • @Maekar:

    ¿Hay alguna forma de obtener esta información en pfSense?

    cat /var/log/dhcpd.log

    y/o

    Status: System logs: DHCP

    Si esto es vital para tí configura tus logs para ser enviados a un servidor de logs externo.



  • Gracias por las respuestas.

    Mi red es muy grande y los dispositivos que me interesa tener supervisados son iPad. Gracias a la información que me proporciona un MDM puedo averiguar qué dirección MAC corresponde a cada usuario (alumno), pero otros parámetros como el nombre DNS se escapan a mi control. Hasta ahora usaba Zentyal, funcionaba así:

    Dirección IP infractora -> MAC del dispositivo asociado a esa IP (en el momento de la infracción) -> Usuario que se corresponde con esa MAC.

    Esto era posible porque en Zentyal se almacena el histórico de concesiones DHCP. El problema es que en pfSense no se hace y son tantos los dispositivos que no me parece viable el sistema de concesiones estáticas.

    Respecto al fichero dhcpd.log, apenas guarda las concesiones del día actual, supongo que por rotación al ser el tamaño tan grande o porque solo guarda X entradas.

    Necesito capturar los log de forma que se almacene más información y pueda conservar el historial de concesiones. Me gustaría hacerlo en la misma máquina pfSense pero si no queda más remedio también me sirve enviarlo a un servidor externo. Entiendo que es lo que me propones, bellera? Serviría para mis propósitos o me guardaría el mismo dhcpd.log?



  • Podrias aumebtar el tiempo que dura.la consesiin y aumentar el.tiempo.del.log.rotate para que asi crees un "historico" de conexiones



  • Fue lo primero que pensé pero las direcciones IP son asignadas cuando un dispositivo se conecta y a partir de ahí se inicia la cuenta atrás para que caduque, y por tanto la fecha de caducidad es dinstinta para cada dispositivo. Puede caer justo cuando rota el log de Squid pero también puede que caduque a mitad de semana, por tanto si estoy mirando un reporte semanal nadie me garantiza que esa IP haya pertenecido a un mismo dispositivo durante ese período de tiempo.



  • Lo que sí me serviría es cambiar el período de rotación de dhcpd.log, así podría comparar para una misma IP cuando hay un cambio de asignación. ¿Dónde lo puedo hacer?



  • Si el archivo dhcp.log esta guardando las concesiones por dia necesitaras hacer respaldos diarios del mismo como sugirio bellera para poder tener la informacion completa en un periodo de tiempo mas largo.



  • Pues he estado investigando y mi gozo en un pozo.

    Resulta que pfSense no usa newsyslog para realizar una rotación periódica de los ficheros sino que se maneja mediante clog, que mantiene constante el tamaño de dichos ficheros. De hecho no pasan nunca de 528k. Eso significa que, dado el volumen de mi red, el fichero dhcpd.conf apenas me guarda unos minutos o unas horas de trabajo.

    Puedo instalar un syslog en el propio pfSense que me ahorre el uso de otra máquina externa?

    EDIT: Nada, al final estoy usando remote syslog, que parece la solución más sencilla.