Limiter/autoriser l'accès avec le couple IP + MAC

Bonjour,

J’ai un tout petit souci de “sécurité” que je n’arrive pas à résoudre avec mes maigres connaissances…

Sur mon réseau il y a des machines qui tournent sans demander leur adresse à mon DHCP.
C’est pour des raisons pratiques, si le serveur est en rade, ces machines doivent pouvoir communiquer entre elles.

J’ai donné l’accès à certains services de mon serveur à ces machines en assignant les autorisations aux adresses IP.
(Shorewall, SquidGuard, etc…)

Le problème, est qu’il suffit de changer l’adresse IP des ces machines pour accéder à d’autres services !
Par exemple, je me met sur la machine 192.168.0.102 qui n’a pas d’accès à Internet, je change l’IP en 8, et hop, j’ai un accès Internet…

Est-il possible d’attribuer les autorisation/limitations avec le couple IP/MAC ? Ou cela se passe-t-il ? iptables ? SquidGuard ? hosts* ?

La configuration : Lenny 64bits, Shorewall, Proxy transparent + SquidGuard.

Merci d’avance :smt006

iptables avec la correspondance “-m mac --mac-source”.

Mais une adresse MAC est modifiable presque aussi facilement qu’une adresse IP par qui a les droits root sur la machine, donc ce n’est qu’une piètre protection si tu ne fais pas confiance aux machines et à ceux qui ont les droits root dessus.

[quote]
Mais une adresse MAC est modifiable presque aussi facilement qu’une adresse IP par qui a les droits root sur la machine, donc ce n’est qu’une piètre protection si tu ne fais pas confiance aux machines et à ceux qui ont les droits root dessus.[/quote]

N’empêche que si tu autorises une seule adresse mac par exemple. L’éventuel attaquant aura beau essayer de spoofer l’adresse, il faut qu’il la connaisse et ça c’est moins facile…

Découvrir l’adresse MAC d’une machine est très facile, il suffit de “faire parler” la machine avec une simple requête ARP. Si elle est déjà bavarde, il suffit même d’écouter ses propres requêtes ARP ou ses broadcasts IP.

Oui, mais comment veux-tu la faire parler si tu ne sais pas de quelle machine il s’agit ?

Par exemple, si sur mon desktop j’ai un serveur VNC et un serveur smb, et ce que je veux c’est qu’il n’y ai que mon laptop qui puisse s’y connecter (via authentification d’adresse mac). Ça me semble difficile pour quelqu’un de l’extérieur de savoir quelle adresse mac je laisse passer (sachant que je bloque toutes les autres sur ces services).

Il aura beau changer l’adresse en ce qu’il veut, il lui faudrai avoir une chance de dingue pour qu’il tombe sur la mac que j’accepte.

En prenant en compte que le laptop n’est pas connecté non stop. Tu pourras avoir l’adresse mac du serveur mais ça ne servira pas à grand chose…

Je n’ai pas dit que c’était immédiat, il faut parfois être patient.
Dans ton exemple, l’attaquant pourrait écouter les requêtes ARP pour l’adresse IP du serveur pour relever l’adresse MAC source des machines qui communiquent avec celui-ci.

Autre moyen un peu plus “bruyant” : faire des requêtes ARP a intervalles réguliers pour relever les adresses MAC des machines présentes sur le réseau. Généralement il n’y en a pas des centaines.

Bonjour,
Zut, j’ai raté la conversation !

[quote=“PascalHambourg”]iptables avec la correspondance “-m mac --mac-source”.

Mais une adresse MAC est modifiable presque aussi facilement qu’une adresse IP par qui a les droits root sur la machine, donc ce n’est qu’une piètre protection si tu ne fais pas confiance aux machines et à ceux qui ont les droits root dessus.[/quote]

Je me doutais que c’était dans cette direction qu’il fallait chercher.
Je savais aussi que la protection par adresse MAC était facilement “contournable”, mais je pense que personne à part moi sur mon réseau n’est capable de faire ça…

Merci beaucoup pour cette réponse précise. Je vais faire mes recherches et essayer. Tu m’a fait gagner du temps c’est sympa ! :smiley:

C’est réglé (j’espère…),

Le fichier /etc/shorewall/shorewall.conf:

MACLIST_DISPOSITION=REJECT MACLIST_LOG_LEVEL=info

Le fichier /etc/shorewall/maclist:

#DISPOSITION INTERFACE MAC IP ADDRESSES (Optional) ACCEPT loc 00:04:5e:3f:85:b9 #bureau ACCEPT loc 00:06:25:95:33:3c #rec1 ACCEPT loc 00:0b:4d:53:cc:97 192.168.0.8 #deb2 ACCEPT loc 00:1f:79:cd:fe:2e 192.168.0.2 #deb501 [etc...] #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE

Mais il va falloir que je vérifie… J’ai un doute pour ce que je dois faire avec ma BLR Cisco… Faut-il que j’ajoute les deux émetteurs (ils ont une IP/mac) à /etc/shorewall/maclist ? Probablement… Je vais faire des essais…

[quote=“PascalHambourg”][…]

Mais une adresse MAC est modifiable presque aussi facilement qu’une adresse IP par qui a les droits root sur la machine, donc ce n’est qu’une piètre protection si tu ne fais pas confiance aux machines et à ceux qui ont les droits root dessus.[/quote]

Ymer, avec raison je crois, pense que ce n’est pas aussi évident que ça.
Mais c’est possible !

Une autre question donc soulevée par tes propos (juste par curiosité…)
Quelle meilleure protection alors si les adresses MAC sont facilement “repérables” ?

Je pense que ça dépend des services que tu souhaites protéger ?

Tous :laughing:
Mon réseau sera en partie public (uniquement des gens de passage, et pas souvent de congrès d’administrateurs réseau :wink: ). Pas d’habitations alentours…
J’ai juste envie qu’il ne soit pas possible de me piquer une IP libre pour s’introduire dans le réseau…
Donc je suppose que la protection IP/Mac est bien suffisante.

C’était juste par curiosité que je posais la question…

filtrage Mac en hard avec un switch L2

iptable c’est du niveau 3. Même si tu filtre la MAC(niveau 2) ça reste du niveau 3 donc t’as mac et renseignée en software donc modifiable

sur un switch c’est du vrai niveau 2 donc quand ton pc envoie la mac plutôt niveau hardware donc pas modifiable

modèle OSI
dites moi si je me trompe (a coup de baguette pédagogique :smt075 comme disait un de mes profs au lycée)

[quote=“sinozis”]
dites moi si je me trompe (a coup de baguette pédagogique :smt075 comme disait un de mes profs au lycée)[/quote]
Merci de cette précision. Moi j’ai dépassé mes limites aujourd’hui :wink:
Et tu viens m’en remettre une couche (c’est le cas de le dire…).
Mais j’ai saisi l’essentiel. Possible en hard, possible aussi en soft (mais il y a des failles…)
Bon mais c’est pas mes clients qui vont s’amuser à scanner mon réseau et changer leur adresse mac :mrgreen:
Donc shorewall (iptables) fera très bien l’affaire !

:smt006

[quote=“sinozis”]filtrage Mac en hard avec un switch L2
iptable c’est du niveau 3. Même si tu filtre la MAC(niveau 2) ça reste du niveau 3 donc t’as mac et renseignée en software donc modifiable sur un switch c’est du vrai niveau 2 donc quand ton pc envoie la mac plutôt niveau hardware donc pas modifiable[/quote]
Une trame ethernet reste une trame ethernet et une adresse MAC reste une adresse MAC, qu’elle soit gérée en hard ou en soft ne change rien. L’avantage du filtrage sur le switch, c’est la possibilité de faire du filtrage par port, à condition que n’importe qui ne puisse pas se brancher sur n’importe quel port sinon ça ne sert à rien.

[quote=“lol”]Ymer, avec raison je crois, pense que ce n’est pas aussi évident que ça.
Mais c’est possible ![/quote]
Sous Linux : ifconfig hw ether
Sous Windows : le réglage est accessible dans les propriétés de l’interface réseau si le pilote le permet.
Pas bien dur dans les deux cas.

  • Filtrage L2 par port sur le switch si l’accès physique aux ports et aux machines privilégiées est protégé.
  • Séparation physique du réseau “de confiance” et du réseau “bac à sable”.
  • Authentification au niveau MAC ou IP plus forte que la simple association adresse IP+MAC : IEEE 802.1x, IPSec, VPN chiffré…

Merci pour les détails.
C’est très intéressant.
J’ai une autre question, si ce n’est pas abuser… :smiley:
Est-il possible d’avoir sur le même réseau physique deux réseaux ayant des plages IP différentes, et est-ce que cela apporte un peu plus de sécurité ? Il doit falloir deux serveurs DHCP ? Ce n’est pas possible sur le même serveur je suppose ?
Hummm et ça fait 4 questions en fait… :mrgreen:

Oui, c’est possible d’avoir sur le même réseau physique deux (ou plus) réseaux ayant des plages IP différentes.
Non, cela n’apporte pas plus de sécurité.
Non, il ne faut pas forcément deux serveurs DHCP, un même serveur peut servir plusieurs plages sur le même réseau.

Merci.
Je n’ai pas assez de connaissances ! Il faut que je m’y mette…

Je vais squatter un petit coup ton fil lol, si tu le permets bien sûr… :wink:

[quote=“PascalHambourg”]Non, il ne faut pas forcément deux serveurs DHCP, un même serveur peut servir plusieurs plages sur le même réseau.[/quote]C’est le principe des “classid” sous windo*? c’est ça?
Si oui… comment le mettre en place coté serveur et coté client? (j’avoue, je n’ai pas cherché… :blush: … pas bien… mais c’est de la pure curiosité là… :wink: )

:smt006

[quote=“Num’s”]Je vais squatter un petit coup ton fil lol, si tu le permets bien sûr… :wink:

[quote=“PascalHambourg”]Non, il ne faut pas forcément deux serveurs DHCP, un même serveur peut servir plusieurs plages sur le même réseau.[/quote]C’est le principe des “classid” sous windo*? c’est ça?
Si oui… comment le mettre en place coté serveur et coté client? (j’avoue, je n’ai pas cherché… :blush: … pas bien… mais c’est de la pure curiosité là… :wink: )

:smt006[/quote]

You’re welcome :smiley: Je ne me gêne pas avec les sujets des autres… :blush:
Je crois qu’il faut sortir la calculatrice pour ça… réseau et sous réseaux… Si j’ai bien compris…

[quote=“lol”]You’re welcome :smiley: (…)[/quote]Merci… :wink:

L’histoire de la “classid” te permet de faire cohabiter plusieurs domaines sur le même réseau physique (par exemple)… plusieurs domaines donc plusieurs DNS “internes”… et du coup, quand tu passes par du dhcp c’est pratique… pour chaque “groupe” tu défini une “classid”, et pour chaque classid tu fixe le DNS du domaine que les machines doivent utiliser (ça évite des lenteurs à l’ouverture de session… :wink: )… donc là… pas besoin de calculette (en plus, en général, ça se fait sur le même plan d’adressage… :wink: … mais tout ça, je connais sous windo*… je ne me suis jamais posé la question du “comment” sous 'nux… :blush: )

:smt006