Mikrotik: Script para bloquear una MAC concreta y notificación por email
El otro día mi script que detecta nuevas IPs en la red, me mandó un mensaje por un dispositivo que no tengo controlado. Estoy seguro que es algo que no he fijado en el DHCP ni en el DNS, pero aún no he localizado qué es, y la MAC no me da muchos datos del fabricante. Así que he decidido bloquear el dispositivo hasta ver qué es…
Para ello, con afán de aprender, he creado un script para MikroTik que bloquea una dirección MAC específica y envía una alerta a un correo electrónico cuando se detecta dicha MAC conectándose a la red.
Os dejo la entrada anterior donde configuramos otros scripts:
Requisitos previos:
- Configurar previamente un servidor SMTP en MikroTik para enviar correos electrónicos. Esto se puede hacer con el comando /tool e-mail en el router.
- La dirección MAC que deseas bloquear.
- La dirección de correo electrónico donde recibirás las notificaciones.
Pasos para configurar el script:
1. Configura el servidor SMTP en MikroTik:
1 2 |
/tool e-mail set address=smtp.servidor.com port=587 from=alerta@tu-dominio.com user=tu-usuario password=tu-password start-tls=yes |
- address: El servidor SMTP que usas.
- port: El puerto SMTP (normalmente 587 o 465).
- from: Dirección desde la que se enviará el correo.
- user: Nombre de usuario para la autenticación en el servidor SMTP.
- password: Contraseña del usuario.
- start-tls: Habilitar TLS si tu servidor lo requiere.
2. Script para bloquear la MAC y enviar notificación:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
/system script add name=block-mac-email policy=read,write,policy,test,password,sniff source=" :local macAddress \"XX:XX:XX:XX:XX:XX\"; # MAC que quieres bloquear :local emailRecipient \"destinatario@correo.com\"; # Email para enviar notificación # Revisa si la MAC ya está bloqueada :if ([/ip firewall filter find where comment=\$macAddress] = \"\") do={ # Bloquea la MAC en el firewall /ip firewall filter add chain=forward src-mac-address=\$macAddress action=drop comment=\$macAddress; # Envía un correo notificando que la MAC ha sido bloqueada /tool e-mail send to=\$emailRecipient subject=\"Alerta: MAC bloqueada\" body=\"Se ha detectado y bloqueado la MAC \$macAddress en la red.\"; :log info \"MAC \$macAddress bloqueada y correo enviado a \$emailRecipient\"; } else={ :log info \"La MAC \$macAddress ya está bloqueada\"; } " |
Explicación del script:
- macAddress: Especifica la dirección MAC que deseas bloquear.
- emailRecipient: Especifica el correo electrónico al cual se enviará la notificación.
- El script verifica si la MAC ya está bloqueada en el firewall utilizando la opción
find
. Si no está bloqueada, crea una regla de firewall que bloquee todo el tráfico de esa MAC. - Después de bloquear la MAC, se envía un correo a la dirección configurada informando de la acción.
- Si la MAC ya está bloqueada, el script no toma ninguna acción adicional, solo registra que ya está bloqueada.
3. Agrega el script a una tarea programada (opcional):
Puedes configurar una tarea programada en MikroTik para que revise periódicamente la red en busca de la MAC no deseada y ejecute el script.
1 2 |
/system scheduler add name=check-block-mac interval=5m on-event=block-mac-email |
- interval=5m: El script se ejecutará cada 5 minutos, revisando si la MAC está presente y bloqueándola si es necesario.
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?