Je souhaite n’autoriser que certaines adresses MAC à obtenir une IP de mon serveur DHCP. Actuellement j’utilise dnsmasq et je préférerais ne pas changer de serveur DHCP, mais je suis ouvert à d’autres logiciels également.
Cependant, j’ai besoin de pouvoir définir des adresses IP statiques pour des adresses MAC spécifiques.
Actuellement, mon fichier de configuration dnsmasq contient un ensemble d’entrées qui spécifient des IP statiques pour une série d’adresses MAC comme ceci :
Alternativement à la solution de @Chopper3, vous pouvez ajouter des règles iptables comme celles-ci :
# Create the DHCP_clients chain in the 'raw' table
iptables -t raw -N DHCP_clients
# Incoming DHCP, pass to chain processing DHCP
iptables -t raw -A PREROUTING -p udp --dport 67 -j DHCP_clients
# Allowed DHCP clients
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:55 -j ACCEPT
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:56 -j ACCEPT
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:57 -j ACCEPT
# Deny other clients not listed above
iptables -t raw -A DHCP_clients -j DROP
Modification : Si vous devez ajouter des clients supplémentaires ‘connus’/autorisés, procédez comme suit pour chaque client supplémentaire :
# We insert a rule at the head of the chain using the '-I' command
iptables -t raw -I DHCP_clients -m mac --mac-source $CLIENT_MAC -j ACCEPT
(Remarque : on utilise -I (insertion) au lieu de -A (ajout), de sorte que la nouvelle règle sera la première vérifiée. Si nous n’insérons pas, les règles ajoutées seront supplantées par la règle avec -j DROP)