Monitorare l'attività ARP con Arpwatch
Versioni Compatibili Debian 8 "jessie" Debian 9 "stretch" Debian 10 "buster" |
Monitorare l'attività di una rete LAN con Arpwatch: introduzione
Arpwatch è un ottimo strumento per sistemi Unix-like che tiene monitorata tutta l'attività ARP di una rete LAN Ethernet IPv4, intercettando ogni pacchetto di broadcast ARP che giunge sull'interfaccia di rete configurata. Appena avviato, Arpwatch genera un log contenente tutte le coppie Indirizzo IP / Indirizzo MAC associate ai PC della LAN, correlandole a un timestamp che indica quando la coppia monitorata è stata rilevata nella rete LAN.
Ogni cambiamento rispetto al database contenuto nel log, come ad esempio l'aggiunta di nuovo host o la modifica del MAC address di un host già aggiunto (sintomo o del cambio della scheda di rete di un computer o del cambio dell'host associato ad un IP o - e questo è l'aspetto più importante - di attività di ARP poisoning, tipiche di sniffer per ambienti switchati come ettercap
) viene notificato via mail (di default a root) e su syslog. Alla prima esecuzione è normale ricevere varie mail per tutti gli host in rete, successivamente verranno notificate solo le variazioni e su queste, se non sono previste, è sempre bene indagare. Nelle notifiche vengono segnalati l'indirizzo IP coinvolto e il vecchio e il nuovo MAC address.
Per la cattura dei pacchetti broadcast Arpwatch si appoggia alla libreria libpcap
.
Installazione
Per installare arpwatch
basta installare l'omonimo pacchetto. Per esempio con privilegi di amministrazione:
# apt install arpwatch
Configurazione
La configurazione è contenuta nel file /etc/arpwatch.conf
:
# /etc/arpwatch.conf: Debian-specific way to watch # multiple interfaces. # Format of this configuration file is: # #<dev1> <arpwatch options for dev1> #<dev2> <arpwatch options for dev2> #... #<devN> <arpwatch options for devN> # # You can set global options for all interfaces by editing # /etc/default/arpwatch eth0 -a -n 192.168.0.0/24 -m amministratore@dominio.local
In questo esempio si specifica di controllare la rete LAN 192.168.0.0/24, inviando mail all'indirizzo indicato per notifica, e includendo anche pacchetti bogon, ossia con indirizzi IP sorgente fasulli (opzione -a
) perché esterni alla LAN.
Il comportamento di default, in assenza di personalizzazioni in questo file (che inizialmente è interamente commentato), è di inviare una mail a root (localmente) e aggiornare i log del sistema per ogni inizializzazione e cambiamento apportato agli indirizzi MAC della rete, ignorando quelli relativi a pacchetti bogon (opzione -N
) e senza utilizzare una modalità promiscua (opzione -p
), ossia intercettando soltanto i pacchetti broadcast o comunque indirizzati all'host. Per modificare il solo default, basta modificare /etc/default/arpwatch
:
# Global options for arpwatch(8). # Debian: don't report bogons, don't use PROMISC. ARGS="-N -p" # Debian: run as `arpwatch' user. Empty this to run as root. RUNAS="arpwatch"
Per motivi di sicurezza il demone arpwatch
è eseguito come utente non privilegiato, con il nome utente definito dalla variabile RUNAS
.
Possibili variazioni:
- controllare tutti i pacchetti, anche relativi a bogon, indicando
-a
anziché-N
(generalmente sono filtrati); - modalità promiscua, rimuovendo l'opzione
-p
. Ha senso in particolare se l'host non deve soltanto proteggere la propria tabella di routing, ma monitorare tutte le variazioni nella LAN, in modo da proteggere anche gli altri host collegati; - non inviare mail, aggiungendo l'opzione
-Q
tutti i cambiamenti saranno registrati soltanto nei log; - ignorare un range di indirizzi IP (per esempio per non registrare DHCP, in caso si registrino anche i bogon) con l'opzione
-z
.
Per funzionare, arpwatch
richiede che sullo stesso PC sia installato un mail transfer agent (come ad esempio sendmail, postfix o exim).
Esempio di email di alert
Mail con oggetto "FLIP FLOP" o "Change ethernet address", come ad esempio la seguente, potrebbero essere la spia di un attacco in atto sulla LAN.
From: "Arpwatch" <arpwatch@dominio.local> To: <ferdy@dominio.local> Sent: Tuesday, February 26, 2008 4:13 PM Subject: flip flop (preview) eth0 hostname: vm-debian ip address: 192.168.0.42 interface: eth0 ethernet address: 0:40:f4:b1:a5:88 ethernet vendor: Cameo Communications, Inc. old ethernet address: 0:c:29:47:3f:f7 old ethernet vendor: Vmware Inc. timestamp: Tuesday, August 27, 2008 19:21:01 +0100 previous timestamp: Tuesday, June 25, 2008 23:47:21 +0100
Manuale
man arpwatch
Guida scritta da: Ferdybassi | Debianized 40% |
Estesa da: | |
Verificata da:
| |
Verificare ed estendere la guida | Cos'è una guida Debianized |