Je bute sur un bête problème. J'ai besoin de filtrer les adresses MAC qui sortent d'une machine Linux.
Je souhaite que eth0 ne laisse passer que les paquets qui contiennent sa propre adresse MAC. J'ai des cartes virtuelles internent qui débordent un peu sur le réseau physique et je veux éviter ça.
Si il y a une option dans /proc alors je ne l'ai pas trouvé.
J'ai essayé avec iptables mais l'option --mac-source est refusée (alors qu'elle est documenté dans la page man).
iptables --table filter --append FORWARD --mac-source ! 00:0B:DB:45:55:45 --jump DROP
iptables v1.3.6: Unknown arg `--mac-source'
J'ai fini par simplifier exagérément ma commande, mais ça ne veut rien savoir:
# iptables -A INPUT --mac-source 00:0B:DB:45:55:45 -j DROP
iptables v1.3.6: Unknown arg `--mac-source'
C'est sur une Etch.
Quelqu'un sait pourquoi ça n'en veut pas ?
Et surtout, comment je peux faire :-)
# alors...
Posté par NeoX . Évalué à 4.
iptables v1.3.6:
neox@ubuntu64bits:~ $ man iptables
MATCH EXTENSIONS
iptables can use extended packet matching modules. These are loaded in two ways: implicitly, when -p or --protocol is specified, or with the -m or --match options, followed by the matching module name;
After these, various extra command line options become available, depending on the specific module. You can specify multiple extended match modules in one line, and you can use the -h or --help options after the module has been specified to receive help specific to that module. The following are included in the base package, and most of these can be preceded by a ! to invert the sense of the match.
[...]
mac
--mac-source [!] address
Match source MAC address. It must be of the form XX:XX:XX:XX:XX:XX. Note that this only makes sense for packets coming from an Ethernet device and entering the PREROUTING, FORWARD or INPUT chains.
ta commande devrait donc contenir
-m mac --macsource xx:yy:zz:tt:uu
pour que cela fonctionne
[^] # Cha marche beaucoup mieux comme ça
Posté par Kerro . Évalué à 3.
Ne trouvant pas tout de suite la bonne syntaxe, j'ai simplement demandé à google. Les exemples trouvés n'utilisaient pas "--match mac" ou "-m mac". Pourquoi certains n'en ont pas besoin, question sans réponse pour moi. Où c'était des exemples non testés, genre tutoriels écrits vite-fait. Pas de bol :-)
Cela dit, une fois la bonne commande mise en place, je constate que des paquets avec la mauvaise MAC sortent toujours.
J'ai un Linux Debian Etch qui fait tourner vmware. Ce vmware fait tourner des machines virtuelles. Jusqu'ici pas de problème.
Chaque carte réseau virtuelle a sa propre adresse MAC. Normal. En mode 'bridge', tous les paquets venant des cartes virtuelles sont transmis via eth0. C'est justement ce que je souhaite éviter.
Netfilter ne semble pas en mesure de filtrer certains paquets. Par exemple il est possible que ce qui touche à ARP ne passe pas par netfilter. Je ne sais pas trop, je vais tenter de trouver de la doc sur le site de netfilter.
[^] # Re: Cha marche beaucoup mieux comme ça
Posté par NeoX . Évalué à 1.
Les exemples trouvés n'utilisaient pas "--match mac" ou "-m mac". Pourquoi certains n'en ont pas besoin, question sans réponse pour moi.
parce que tu peux aussi utiliser le --mac-source avec le flag -p (comme indiqué dans mes indications plus haut)
[^] # Re: Cha marche beaucoup mieux comme ça
Posté par Kerro . Évalué à 2.
Justement, non.
# iptables --table filter --append INPUT --protocol all --match mac --mac-source 00:11:22:33:44:55 --jump DROP
--> ok
# iptables --table filter --append INPUT --protocol all --mac-source 00:11:22:33:44:55 --jump DROP
--> iptables v1.3.6: Unknown arg `--mac-source'
La bonne blague. La page man n'est pas exacte.
Et les exemples que j'ai trouvé n'avaient de toutes manières pas '-p'?. Je pense de plus en plus que c'était des exemples non testés. Par exemple la première page retournée par google pour iptables "--mac-source" donne un exemple qui ne fonctionne pas. Ou du moins qui ne fonctionne pas sur MA machine.
# Si tu veux filter en entrée et en sortie au niveau mac, utilise
Posté par slack . Évalué à 2.
Les sources sont disponibles à l'adresse :
http://sourceforge.net/project/showfiles.php?group_id=39571
Voir la page de man.
[^] # Re: Si tu veux filter en entrée et en sortie au niveau mac, utilise
Posté par Kerro . Évalué à 2.
En fait je crois qu'arptables est simplement un programme simplifié par rapport à iptables. Ce qui expliquerait pourquoi ça ne fonctionne dans aucun des deux cas.
Je vais paramétrer les vmware autrement, mais ça me fait vraiment chxxx.
# ebtables
Posté par Kerro . Évalué à 2.
Contrairement à arptables qui filtre au niveau 3, ebtables s'occupe du niveau 2, exactement ce qu'il me fallait.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.