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.