Iptables, filtrer une plage d'adresses MAC

Bonjour à tous,

Je suis confronté à un problème sous iptables,

Dans le cadre d’un projet en entreprise, je souhaiterai filtrer une plage d’adresses MAC, uniquement sur les 3 premières paires de caractères. Celles-ci correspondant à un constructeur en particulier.

Exemple pour la mac suivante : 00:50:56:C0:00:08.

Si je souhaite filtrer cette mac en particulier, la règle suivante me le permet :

iptables -A INPUT -m mac --mac-source 00:50:56:c0:00:08 -J ACCEPT

Par contre, lorsque je ne rentre que les 3 premières paires, iptables me renvoi un message d’erreur :

iptables -A INPUT -m mac --mac-source 00:50:56 -J ACCEPT -->> iptables v1.4.14: ether
iptables -A INPUT -m mac --mac-source 00:50:56:::** -J ACCEPT -->> iptables v1.4.14: ether
iptables -A INPUT -m mac --mac-source 00:50:56:%%:%%:%% -J ACCEPT -->> iptables v1.4.14: ether
iptables -A INPUT -m mac --mac-source 00:50:56:??:??:?? -J ACCEPT -->> iptables v1.4.14: ether
iptables -A INPUT -m mac --mac-source 00:50:56:[0-9a-f]:[0-9a-f]:[0-9a-f] -J ACCEPT -->> iptables v1.4.14: ether

iptables -A INPUT -m mac --mac-source 00:50:56::: -J ACCEPT -->> ne renvoi pas de message d’erreur mais ne fonctionne pas. La règle créée se fait sur 00:50:56:00:00:00

Connaîtriez-vous la syntaxe exacte afin de réaliser ce filtrage ou un autre logiciel de filtrage le permettant ?

Par avance merci pour vos réponses.

Aeritth

La correspondance [mono]mac[/mono] d’iptables ne permet de spécifier qu’une adresse MAC complète, sans masque ou taille.
[mono]ebtables[/mono] permet de spécifier un masque avec l’adresse MAC source ou destination, mais ne fonctionne que sur un pont. Il faut donc créer un pont sur l’interface considérée pour l’utiliser, avec toutes les conséquences habituelles (transférer la configuration IP de l’interface sur le pont, etc.).

Merci pour cette info, je vais tester la mise en place d’[mono]ebtables[/mono].