DHCP Monitor ( Linux e MAC )
Quando in una rete (munita anche di accesso Wi-Fi) si comincano ad avere due o più pc sarebbe meglio tenere monitorata la situazione degli IP occupati nella rete, per fare un’analisi su che IP vengono utilizzati. Se poi abbiamo tutti i pc in rete con un IP statico è ancora più semplice scovare qualche potenziale intruso. Facciamola breve. Per realizzare un processo che controlli in automatico la presenza o meno di IP sulla nostra rete, ci servono 3 elementi: uno script, una lista di IP da pingare e il crontab.
Cominciamo con il più semplice: la lista di IP.
Non è altro che un file di testo nel mio caso, in cui c’è l’elenco degli IP che il nostro DHCP può assegnare ad un pc che si connette alla nostra rete (basta inserire per es: 192.168.1.1 fino a 192.168.1.255 )
Io ho creato l’elenco con Excel, il quale permette di creare una lista di numeri progressiva inserendo il primo ed il secondo valore. Trascinando la casella in basso, vi creerà l’elenco progressivo; non dovete fare altro che fermarvi al 255esimo valore, copiarlo ed incollarlo in un file che nel mio caso ho chiamato lista.txt
Script bash
#! /bin/bash #Costanti page_html="/home/server/dhcp_status.html" lista="/home/server/lista.txt" rm $page_html echo '' >> $page_html echo 'DHCP Monitor' >> $page_html
if [ ! -f $1 ]; then
echo "Il file specificato non esiste"
exit 1
fiNUM_PACKET=2
for ipaddr in `cat $lista`; do
if ping -c $NUM_PACKET $ipaddr &> /dev/null; then
echo ''$ipaddr 'ONLINE' >> $page_html
else
echo ''$ipaddr 'offline' >> $page_html
fi
done
MAC OS X riesce ad interpretare gli script sh che girano su linux, proprio perchè al suo interno batte un cuore *nix
Le directory che vedete indicate, sono ovviamente personalizzabili. Le ho inizializzate come costanti, così dovrete modificare solo questa parte:
#Costanti page_html="/home/server/dhcp_status.html" lista="/home/server/lista.txt"
Potete collocare lo script dove meglio credete, l’importante è che il file *.sh e il file lista.txt siano nella stessa directory!!
Le altre parti personalizzabili sono queste:
echo '' >> $page_html echo 'DHCP Monitor' >> $page_html
echo ''$ipaddr 'ONLINE' >> $page_html
echo '
'$ipaddr 'offline' >> $page_html
Crontab
Una volto collocati i due file visti in precedenza nella medesima directory, dobbiamo impostare il sistema in modo da ripetere il controllo ciclicamente. Per farlo usiamo il crontab, uno strumento utilissimo presente sia su *nix che su MAC OS X
Digitare da terminale
crontab -e
Indipendentemente dall’editor con cui verrà aperto il cron ( con vim, di default su MAC ho litigato un pò, ma dopo due o tre tentativi sono riuscito; dovete richiamare la modalità inserimento premendo ESC) inserite questa riga:
Per *nix
*/10 * * * * /bin/bash PERCORSO_DELLOSCRIPT lista.txt
Per MAC OS X
*/10 * * * * sh PERCORSO_DELLOSCRIPT lista.txt
In questo modo lo script verrà eseguito ogni 10 minuti, più o meno il tempo che impiega a scansionare dal primo all’ultimo IP della lista
fate bene attenzione che lista.txt è un parametro dello script, percui va scritto staccato di uno spazio dal percorso dello script. Nel mio caso avrò:
*/10 * * * * /bin/bash /home/luca/DHCPMONITOR/ipscan.sh lista.txt
Per una dimostrazione potete dare un occhio qui: DEMO






DHCP Monitor anche per Windows | BloggerCrew
[...] un semplice script che fa un report degli IP utilizzati all’interno di una rete privata. In questo articolo ho descritto il funzionamento e postato lo script bash, funzionante sia su Linux che su [...]