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:XX
y XX:XX:XX:XX:XX:BB
no 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)
arptables
tiene su propia política. Hacernoconfundirlo con iptables
la 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 queIN
es 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).