Iptables et adresses MAC

Bonjour,

J ai un problème en utilisant iptables avec les adresses Mac

Je pense que ca s'adresse à un spécialiste....sourire

J'ai constitué une passerelle entre un réseau internet (eth1) et internet (eth0)

Mon objectif, est de tout inderdir, sauf pour une adresse Mac : 00:11:22:33:44:55 (192.168.1.10) qui doit pouvoir passer à travers la passerelle

Voici mon premier script

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FROWARDS DROP

iptables -A FORWARD -s 192.168.1.10 -j ACCEPT
iptables -A FORWARD -o 192.168.1.10 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward

avec ce script, je peux surfer depuis mon PC (adresse 192.168.1.10) sur internet à travers la passerelle

Voici mon deuxième script

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FROWARDS DROP

iptables -A FORWARD -m mac --mac-source 00:11:22:33:44:55 -s 192.168.1.10 -j ACCEPT
iptables -A FORWARD -m mac --mac-source 00:11:22:33:44:55 -o 192.168.1.10 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward

avec ce script, je ne peux plus surfer depuis mon PC (adresse 192.168.1.10) sur internet à travers la passerelle. Avec tcpdum, je vois bien les paquer arriver avec la bonne adresse Mac

Voici mon 3ième script
réalisé à partir du 1er pour tester l'interpretation des adresses Mac

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FROWARDS DROP

iptables -A FORWARD -s 192.168.1.10 -j ACCEPT
iptables -A FORWARD -o 192.168.1.10 -j ACCEPT

iptables -A FORWARD -m mac --source-mas 00:11:22:33:44:55 -j DROP

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# echo 1 > /proc/sys/net/ipv4/ip_forward

avec ce script quasi au script 1 qui fonctionnait, je bloque bien l'adresse Mac

Comment puis je modifier le script 2 pour tout bloquer sauf accepter un FORWARD pour mon adresse Mac

Merci par avance de votre aide
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Modérateur
    Salut,

    J'ai tiré ça du manuel d'iptables:
    --mac-source [!] adresse
        Établit une correspondance avec l'adresse MAC source. Elle doit être de la forme XX:XX:XX:XX:XX:XX. Notez que ceci n'a de sens que pour les paquets en provenance d'une interface Ethernet et passant par les chaînes PREROUTING, FORWARD ou INPUT.


    Il semble que seule l'interface de provenance peut être réglée avec le filtrage mac, donc je pense que:
    iptables -A FORWARD -m mac --mac-source 00:11:22:33:44:55 -o 192.168.1.10 -j ACCEPT

    ne fonctionne pas comme tu le penses. Voici ce que ça produit: accepter ce qui vient de telle adresse MAC et en destination de telle adresse ip.

    Moi je pense que le filtrage par adresse mac n'est pas forcément une bonne idée. Tu ne peux que filtrer par source.
    1. Bonjour

      Grâce à votre aide j'ai trouvé la solution

      Vous trouverez ci joint mon fichier de paramétrage. Mais avant voici quelques explications sur mon projet si cela peut aider certaines personnes.

      Je mets donc en place un Firewall sous Linux avec la gestion de QOS pour gérer des accés multiples (FAI Privé) A mon erveur Firewall ne sont connectés que des routeurs. (derrière ces routeurs, peuvent ainsi être installé des mini réseaus)

      Afin de renforcer la sécurité, je fais un test sur l'adresse IP du routeur et son adresse Mac.

      Donc grace à votre réponse, filtre en entré uniquement et non plus en entré et sorti

      attention ce n'est pas -o mais moins -s

      Un grand merci à Kilian

      Voici le fichier

      iptables -F
      iptables -X
      iptables -t nat -F
      iptables -t nat -X

      iptables -P INPUT DROP
      iptables -P OUTPUT DROP
      iptables -P FROWARDS DROP

      iptables -A FORWARD -m mac --mac-source 00:11:22:33:44:55 -s 192.168.1.10 -j ACCEPT
      iptables -A FORWARD -d 192.168.1.10 -j ACCEPT

      iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      1. Modérateur
        Merci d'avoir posté ta solution :-)
        1. Modérateur
          qui est en fait la tienne ;-)
        2. Modérateur
          Ah non, moi j'ai pas proposé de solution, j'ai juste dit ce qui allait pas :-)