Las conexiones de nuestra red se pueden filtrar utilizando las direcciones MAC de los dispositivos conectados. MAC es el acrónimo de Media Access Control (control de acceso al medio): una dirección única asignada a casi todo el hardware de red, como tarjetas Ethernet, routers, teléfonos móviles o tarjetas inalámbricas (más información en Wikipedia).
Este rápido tutorial explica cómo permitir o denegar el acceso por dirección MAC mediante iptables, la herramienta de Linux para el filtrado de paquetes IPv4 y NAT.
Iptables incluye el módulo mac, que identifica los paquetes que atraviesan el firewall según su dirección MAC (el hardware Ethernet de origen). Ofrece una buena protección contra usuarios malintencionados que falsifican o cambian su dirección IP. Recuerda que el filtrado por MAC solo tiene sentido para los paquetes que vienen de un dispositivo de la misma red Ethernet.
Editar las reglas
Vamos a editar nuestro archivo de iptables:
nano /etc/sysconfig/iptables
Si vamos a permitir conexiones solo de determinadas direcciones MAC, cerramos primero todos los accesos copiando esto al principio del archivo:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
Luego permitimos la conexión de una dirección MAC a un puerto concreto:
-A INPUT -p tcp --destination-port 22 -m mac --mac-source MAC-ADDRESS -j ACCEPT
Si queremos darle conexión completa a una dirección MAC:
-A INPUT -m mac --mac-source MAC-ADDRESS -j ACCEPT
Si queremos bloquear solo una dirección MAC determinada:
-A INPUT -m mac --mac-source MAC-ADDRESS -j DROP
En todos los casos, sustituye MAC-ADDRESS por la dirección MAC del dispositivo.
Aplicar y comprobar
Después de crear las reglas, reiniciamos el servicio iptables:
service iptables restart
Para ver las reglas creadas ejecutamos:
sudo iptables -S