jeudi, janvier 5 2006, 18:57
Monter un bridge ethernet en pont filtrant DHCP
Par Alex - Linux - Lien permanent
Comment faire très simplement un bridge ethernet utilisé ici en pont filtrant DHCP ?

On a eu le problème sur notre réseau de terminaux dont le serveur DHCP était en conflit avec le serveur DHCP du reste du réseau.
Nota : on ne doit jamais avoir 2 serveurs DHCP sur un même segment de réseau.
Problème : isoler les 2 réseaux et leurs serveurs DHCP respectifs.
Solution : On a simplement installé un bridge (pont filtrant) sur un vieux pentium 75 avec 2 cartes réseaux qui sépare les 2 réseaux locaux.
On a mis dessus une distrib linux minimum (debian) sans interface graphique, et une règle "ebtable" qui filtre les appels DHCP et ça marche depuis un an et demi sans problème...
Le traffic vers le net (slis) ou autres serveurs (de fichiers, web...) n'est pas affecté, seul les appels UDP sur les ports 67 et 68 sont filtrés...
On est parti d'une doc de lealinux (http://lea-linux.org/cached/index/Reseau-secu-pont-filtrant.html#) et on a appliqué le script suivant :
#!/bin/sh /sbin/ifconfig eth0 0.0.0.0 promisc /sbin/ifconfig eth1 0.0.0.0 promisc /usr/sbin/brctl addbr mon-pont /usr/sbin/brctl addif mon-pont eth0 /usr/sbin/brctl addif mon-pont eth1 /sbin/ifconfig mon-pont x.x.x.x /sbin/ebtables -A FORWARD -p ipv4 ==ip-proto udp ==ip-destination-port 67:68 -j DROP
(Nota : Attention les 4 signes "=" de la dernière ligne, sont à remplacer par des "-")
Ce sript filtre les ports UDP 67 (serveur) et 68 (client) utilisés par le protocole DHCP
Donc pour récapituler, une installation d'une debian minimum (ou autres) en 2.6, sans interface graphique, mais avec SSH lancé pour gérer à distance, puis ajouter le paquet "bridge-utils" (ou l'archive http://sourceforge.net/project/showfiles.php?group_id=26089) ainsi que le paquet "ebtables" (ou l'archive http://sourceforge.net/project/showfiles.php?group_id=39571&package_id=31718)
Recopier le script ci-dessus, le nommer "script_pont.sh", remplacer x.x.x.x par un numéro ip compatible avec votre réseau et qui sera l'ip appellé par SSH (ex : 172.16.0.162), rendre exécutable le script et le lancer automatiquement au boot.
D'autres infos sur http://guides.ovh.com/LinuxBridgeFirewall/contenu.html http://ebtables.sourceforge.net/examples.html#easy
Alex et Deny
3 commentaires
Merci pour l'info !!
Bonjour,
Je dois réaliser un mini réseau XYZ dans le domaine existant ABC. XYZ doit être isolé et appartiendra uniquement au
gestionnaire de parcs pour son serveur d'images ghost. Dans l'idéal, XYZ est destiné au déploiement d'images avec GHOST et
RIS.
Ce réseau XYZ est composé d'un controleur de domaine, une zone dns, un serveur dhcp, un serveur ghost, le tout sur Windows
2000. Les postes clients seront sur des systèmes windows XP.
Toutes les machines de l'entreprise sont placées dans des Vlans. Mon mini réseau aussi est dans un Vlan. Le commutateur est
de niveau 3, il fait donc aussi routeur ce qui permet à un pc du Vlan1 d'échanger avec un pc du Vlan2. Vous allez voir mon
petit pb...
Les adresses IP de ABC sont sur le réseau 172.23.216.0 (il y a 2 serveurs dhcp qui délivrent des adresses IP sur la plage
.216)
Les adresses IP de XYZ sont sur le réseau 172.23.222.0 (j'ai mis en place un serveur dhcp qui délivre des adresses IP sur une
plage .222)
Le pb : ayant terminé l'installation de mon mini réseau, le serveur DHCP de XYZ a délivré des adresses aux postes clients de
ABC. C'est un gros pb parce que ça fout un bordel pas possible...
Donc comment faire pour isoler mon serveur DHCP appartenant au domaine XYZ. J'ai peut-être deux solutions : par exemple
l'utilisation d'un concentrateur, ou bien le filtrage d'appels UDP sur les ports 67 et 68.
merci ^^
"on ne doit jamais avoir 2 serveurs DHCP sur un même segment de réseau"
euh... non... on peut très bien, il suffit juste de les configurer en conséquence, par exemple sur deux plages d'adresses sans recouvrement (mais dans le même segment), c'est même une façon simple de les redonder pour avoir de la tolérance aux pannes