#!/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