Monitorare l'attività ARP con Arpwatch

Da Guide@Debianizzati.Org.
Versione del 28 lug 2019 alle 07:49 di HAL 9000 (discussione | contributi) (verificata per Stretch e Buster)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca
Debian-swirl.png 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 Swirl-auth40.png Debianized 40%
Estesa da:
HAL 9000
Verificata da:
HAL 9000 09:49, 28 lug 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized