22 lines
914 B
Bash
22 lines
914 B
Bash
#!/bin/bash
|
|
|
|
IP_LOCAL="192.168.1.100"
|
|
MAC_ESPERADA="e8:6a:64:8e:7e:2a"
|
|
INTERFAZ_SALIDA="vmbr0"
|
|
LOG_FILE="/var/log/arp-monitor.log"
|
|
REPO_FIX_SCRIPT="$(dirname "$0")/apply.sh"
|
|
|
|
RESPUESTA=$(arping -c 3 -I "$INTERFAZ_SALIDA" "$IP_LOCAL" 2>/dev/null | grep reply | head -n1)
|
|
MAC_RESPUESTA=$(echo "$RESPUESTA" | awk -F" " '{print $5}' | tr '[:upper:]' '[:lower:]')
|
|
FECHA=$(date '+%Y-%m-%d %H:%M:%S')
|
|
|
|
if [[ -z "$MAC_RESPUESTA" ]]; then
|
|
echo "$FECHA - ERROR: No se recibió respuesta ARP de $IP_LOCAL" >> "$LOG_FILE"
|
|
elif [[ "$MAC_RESPUESTA" != "$MAC_ESPERADA" ]]; then
|
|
echo "$FECHA - ALERTA: MAC inesperada para $IP_LOCAL. Esperada: $MAC_ESPERADA, Recibida: $MAC_RESPUESTA" >> "$LOG_FILE"
|
|
echo "$FECHA - Reaplicando configuración arp_filter" >> "$LOG_FILE"
|
|
bash "$REPO_FIX_SCRIPT" >> "$LOG_FILE" 2>&1
|
|
else
|
|
echo "$FECHA - OK: ARP verificado correctamente para $IP_LOCAL (MAC $MAC_RESPUESTA)" >> "$LOG_FILE"
|
|
fi
|