Red doméstica para aceptar solo ciertas direcciones MAC de LAN

Red doméstica para aceptar solo ciertas direcciones MAC de LAN

Tengo Ubuntu 10 como enrutador con WAN(eth0) y LAN(eth1). ¿Cómo puedo restringir eth1 para que acepte solo paquetes de ciertas direcciones MAC y descarte el resto? También estoy a punto de configurar DHCP para ciertas direcciones MAC; sin embargo, cualquiera puede configurar la dirección IP manualmente. Tengo entre 4 y 6 dispositivos propios que pueden usar la red.

Respuesta1

Como mencioné en los comentarios, no creo que esto le brinde ninguna seguridad real, ni siquiera más seguridad que el bloqueo basado en IP, pero algo como esto debería bastar:

/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT

Suponiendo, por supuesto, que su política predeterminada sea DROP.

Respuesta2

Aquí tienes un comienzo:

iptables -P FORWARD DROP
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT
iptables -P INPUT DROP
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT

Todas las direcciones Mac que no sean XX:XX:XX:XX:XX:XXy XX:XX:XX:XX:XX:BBno podrán acceder a su enrutador ni a Internet.

Respuesta3

( Soyusuario63709; de alguna manera mi inicio de sesión de Google OpenID y mi inicio de sesión de MyOpenID se dividieron, cuando en realidad es lo mismo en Stack Overflow)

arptablestiene su propia política. Hacernoconfundirlo con iptablesla política de .

Como desea "restringir [sic] eth1 para aceptar sólo paquetes de ciertas direcciones MAC y descartar el resto", usteddesearuna política DROP predeterminada.

(Por cierto, cometí un pequeño error en las reglas de arptables anteriores. Deberían serlo :)

arptables -P IN DROP
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
... and so on ...

(Tenga en cuenta nuevamente queINes una cadena incorporadaespecíficamenteencontrado sólo en arptables. Leerpágina de manual de arptablespara más información).

Respuesta4

Michael, no puedes especificar más de una fuente mac por regla, por lo que necesitarás un conjunto de reglas como las siguientes (si vas a utilizar iptables)

#Rules for allowing your mac addresses
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A FORWARD -i eth1 -j DROP

Tenga en cuenta que estos están en la cadena ADELANTE ynola cadena de ENTRADA. Al tener estas reglas en la cadena FORWARD, su enrutador Linux no permitirá que ningún Mac, excepto los permitidos, envíe o reciba tráfico a través del enrutador. Aún podrán comunicarse con máquinas en la misma subred que la suya (porque eso no requiere que pasen por el enrutador).

También puedes controlar quién puede conectarse a tu enrutador duplicando las reglas anteriores para la cadena de entrada.

#Rules for allowing your mac addresses
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A INPUT -i eth1 -j DROP

Al leer su comentario sobre una de las otras respuestas más breves sobre con qué casos funcionan FORWARD e INPUT, aquí hay una breve explicación.

ADELANTEsólo se aplica a los paquetes que vana través desu enrutador a otras subredes o a la interfaz del mundo exterior (a través de la WAN).APORTEse aplica a los paquetes que están destinados a terminar en el propio enrutador (por ejemplo, conexiones SSH al enrutador/caja Linux).

información relacionada