La detección / prevención de suplantación de ARP parece ser bastante popular aquí. Con otras técnicas como robo de puertos a un lado, me pregunto si lo siguiente podría funcionar para evitarlo:
Cada vez que mi estación de trabajo Linux se conecta a la red, puedo agregar automáticamente una entrada ARP estática designada con la dirección MAC de la puerta de enlace predeterminada tal como se obtuvo en ese momento. (Supuestamente, las NIC de puerta de enlace no solo cambian sus MAC después).
Implementado como algo similar a la siguiente secuencia de comandos que se puede colocar en /etc/network/if-{up,down}.d
en un GNU / Linux basado en Debian (o en /etc/NetworkManager/dispatcher.d
donde se use que se usa):
#!/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
Supongo que hay una condición de carrera justo después de que se establezca la conexión, pero aparte de eso, para asegurar el MAC de la puerta de enlace predeterminada, nada más, algo como este ligero funcionaría lo suficientemente bien como para configurarlo ¿Y olvidarlo? ¿Se interpondría en el camino del wifi en roaming? ¿Hay alguna otra consideración?