Comment filtrer par MAC avec un serveur DHCP

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 :

dhcp-host=00:11:22:33:44:55,192.168.1.100
dhcp-host=00:11:22:33:44:56,192.168.1.101
dhcp-host=00:11:22:33:44:57,192.168.1.102

Y a-t-il un moyen pour que toutes les adresses MAC qui ne sont PAS spécifiées de cette manière n’obtiennent pas d’IP ?

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)