Impedisci lo spoofing ARP con la voce statica dinamica su Linux

8

Il rilevamento / la prevenzione dello spoofing ARP sembra essere molto popolare qui. Con altre tecniche come rubare il porto a parte, mi chiedo se quanto segue potrebbe funzionare per impedirlo:

Ogni volta che la mia workstation Linux ottiene la connessione di rete, posso aggiungere automaticamente una voce ARP statica designata con l'indirizzo MAC del gateway predefinito così come ottenuto in quel momento. (Presumibilmente, le schede NIC gateway non cambiano solo i loro MAC in seguito.)

Implementato come qualcosa del seguente script che può essere messo in /etc/network/if-{up,down}.d su un GNU / Linux basato su Debian (o in /etc/NetworkManager/dispatcher.d ovunque sia usato che ):

#!/bin/sh

# If not Debian, account for NetworkManager's dispatcher.d
IFACE="${IFACE:-$1}" MODE="${MODE:-$2}"

# Support eth/wlan/wwan interfaces
case "$IFACE" in en*|eth*|wl*|ww*) ;; *) exit 0; esac

neighbors="/run/ifup.$(basename "$0").$IFACE"

case "$MODE" in
    start|*up*)
        sleep 6
        arp -an -i "$IFACE" | cut -d' ' -f 2,4 | tr -d '()' > "$neighbors"
        while read host hwaddr; do arp -s $host $hwaddr; done < "$neighbors"
        ;;
    stop|*down*)
        [ ! -f "$neighbors" ] && exit 0
        while read host _hwaddr; do arp -d $host; done < "$neighbors"
        rm "$neighbors"
        ;;
esac

Suppongo che ci sia una condizione di competizione subito dopo aver stabilito la connessione, ma a parte questo, per proteggere il MAC del gateway predefinito se non altro, qualcosa di leggero come questo funziona e funziona abbastanza bene da impostarlo e dimenticarlo? Avrebbe ostacolato il roaming WiFi? Ci sono altre considerazioni?

    
posta K3---rnc 04.10.2015 - 19:40
fonte

2 risposte

3

Non ho analizzato il tuo script. Tuttavia, sembra complesso.

Perché non usi ARPtables? È come IPtables, ma per ARP.

Block ARP traffic from all machines (default: DENY)
arptables -P INPUT DROP

Allow router (fixed ARP)
arptables -A INPUT --source-mac d8:d7:21:22:5a:f4 -j ACCEPT

In questo modo potrai scambiare solo i pacchetti ARP con il tuo router.

Fonte: link

    
risposta data 02.11.2015 - 16:38
fonte
1

Qualche tempo fa, sono stato bloccato con lo stesso problema: prevenire lo spoofing ARP.

L'utilizzo dello script fornito funzionerà finché non ti colleghi a una rete già falsificata.

Voglio dire, quando ti unisci a una rete, il tuo SO aggiungerà automaticamente una voce ARP al gateway corretto con l'indirizzo MAC corretto, ma se nel momento in cui ricevi un pacchetto ARP falsificato, prima di eseguire il tuo script, lo farai fidarsi del falso indirizzo MAC.

Sarà un po 'più difficile dal momento che stai usando dispatcher.d , ma ok.

L'altro approccio che ho preso è stato quello di creare una lista bianca di indirizzi MAC per le mie reti comuni e un'attività da controllare tramite la tabella ARP per vedere se il mio indirizzo MAC del gateway predefinito è nel mio elenco di fiducia. In caso contrario, disconnettersi e comunicarmi automaticamente.

    
risposta data 23.11.2015 - 15:20
fonte

Leggi altre domande sui tag