En resumen , la respuesta es no , por lo general no se puede bloquear según la dirección MAC. Y si pudieras, sería inútil. Para comprender por qué, debe saber una o dos cosas sobre cómo funciona Internet.
La comunicación entre dispositivos se realiza comúnmente a través del protocolo Ethernet (wiki) , y pese a que el origen y el destino se identifican por IP, la comunicación real se realiza por MAC. Imagina la siguiente red:
Sielclientedeseaenviarunpaquetealservidor,primeroverificasielservidorestáenlamismasubred.No,elservidortieneunaIP10.x,yelclienteunaIP192.168.x.Luego,elclienteloenvíaasuenrutador,R1,conlaesperanzadequepuedareenviarloaldestino.Elpaquetecontiene:
SourceIP:192.168.1.100(belongsto:Client)DestinationIP:10.1.1.1(belongsto:Server)SourceMAC:01:01:01:02:02:02(belongsto:Client)DestinationMAC:02:01:01:02:02:02(belongsto:R1)
Entonces,R1
escomo"Oh, esa IP está en algún lugar de Internet". Cambia la IP de origen a la IP pública (para que el servidor pueda devolver un paquete) y la reenvía a R2. El paquete ahora contiene:
Source IP: 172.16.1.1 (public IP from R1)
Destination IP: 10.1.1.1 (belongs to: Server)
Source MAC: 02:01:01:02:02:02 (belongs to: R1)
Destination MAC: 03:01:01:02:02:02 (belongs to: R2)
Como puede ver, la IP de destino no cambia, pero las direcciones MAC cambian cada vez que se reenvía (por un enrutador) según el enrutador al que se reenvía y de qué enrutador proviene.
En el futuro, R2
no manipulará ninguna de las IP como R1
hizo porque no es un enrutador NAT (como la mayoría de los consumidores). R2
simplemente reenviará el paquete.
Al final, el servidor solo podrá ver la dirección MAC desde R3. Para que la comunicación funcione, eso es todo lo que necesita saber, además de la IP original de R1
. (Cuando un paquete de respuesta vuelve a R1
, otras cosas asegúrese de que el paquete llegue al cliente). Si desea saber por qué no todas las comunicaciones se basan simplemente en MAC, consulte esta pregunta sobre serverfault .
Una excepción a esto es cuando el cliente está dentro de la misma LAN que el servidor. Como mencioné, el cliente primero compara la subred IP de sí mismo y el destino. Si es lo mismo (por ejemplo, 192.168.1.101 y 192.168.1.44, cuando está en una subred / 24), la comunicación se basa en la dirección MAC. El cliente emitirá un mensaje en la LAN, solicitando el MAC que pertenece a la IP del servidor y luego lo enviará a ese MAC. El paquete aún contendrá la IP de destino, pero no hay un enrutador entre los dos. (Puede haber, pero entonces actuará como un conmutador o hub, no como un enrutador). Pero probablemente este no sea el escenario que tenía en mente.
Si pudieras determinar el MAC, sería una violación de la privacidad bastante grande. Ya que su dirección MAC podría identificarlo de manera única en el mundo, las redes de publicidad no tendrían problemas para rastrearlo, también sin cookies de rastreo o cualquier otro método.
Bloquear a un atacante mediante MAC sería lo mismo que bloquearlo por cookie porque está controlado por el cliente. Actualmente casi nunca cambia, porque casi nunca hay una razón para hacerlo, pero si pudieras determinar y bloquear un atacante con MAC, simplemente podría cambiarlo. Las direcciones IP deben ser reconocidas globalmente para poder enrutarse, pero una MAC no tiene este problema.
Además, un atacante podría bloquear a los clientes cuyo MAC conoce, falsificando esa dirección MAC y luego activando el bloqueo. Quienquiera que realmente use esa dirección MAC no podrá utilizar el servicio.
Conclusión: Si fuera posible, sería bastante ineficaz y presentaría una vulnerabilidad DoS, pero como no puede hacer que el cliente envíe el MAC junto con los encabezados HTTP o algo así, simplemente no es posible fuera de la misma LAN.