ISC DHCP e log dei lease
Ecco come fare per loggare i client che richiedono un ip al nostro server dhcp in modo moooolto elegante!
nel file /etc/dhcp/dhcp.conf si aggiunge una direttiva come questa:
on commit { set ClientIP = binary-to-ascii(10, 8, ".", leased-address); set ClientMac = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6)); log(concat("Commit: IP: ", ClientIP, " Mac: ", ClientMac)); execute("/root/scripts/dhcp-event", "commit", ClientIP, ClientMac); }
e poi creiamo un semplice script (/root/scripts/dhcp-event):
#!/bin/bash date=$(date) echo "date: "$date >> /tmp/dhlog echo "orig: "$1 >> /tmp/dhlog echo " ip: "$2 >> /tmp/dhlog echo " mac: "$3 >> /tmp/dhlog a=$(host $2) name=$(echo $a | cut -d" " -f5) echo "name: "$name >> /tmp/dhlog
a questo punto è banale prendere questi dati e metterli su un database oppure generare la lista di conversione ip/nomi per sarg (così, tanto per fare un esempio…)
le direttive che possiamo usare (in modo pressochè identico) sono:
– on commit
– on release
– on expiry
🙂
a.