Sur mon lieu de travail, nous disposons d'un réseau Wifi public, ainsi que de notre réseau Wifi privé. Le côté privé a accès pour voir d'autres ordinateurs, les imprimantes, les serveurs et l'accès à Internet. Du côté public, les utilisateurs doivent s'authentifier avec un portail captif avec un combo nom d'utilisateur/mot de passe de notre serveur (uniquement pour les appareils personnels de notre personnel).
La clé a été divulguée bien avant mon arrivée à ce poste, et j'ai nettoyé la plupart des choses. J'ai des scripts (écrits par d'autres membres de l'équipe, pas moi-même !) qui parcourent les baux DHCP sur Debian Wheezy, et affichent le fabricant, le nom DNS, l'adresse IP et l'adresse MAC de tous les appareils avec lesquels le serveur DHCP interagit. Avec ces scripts, je peux créer une liste noire des adresses MAC et iptables les bloque pour moi. Je mets à jour /etc/blacklist.txt
, et lorsque iptables démarre, il exécute iptables -A INPUT $if -m mac --mac-source $i -j DROP
(avec $i
lu à partir du fichier).
Cela empêchera leur appareil de se connecter à nos ressources réseau et à Internet. Malheureusement, cela n'entrera en vigueur qu'après que l'appareil a obtenu une adresse IP du isc-dhcp-server
. Alors, mon problème est, comment puis-je les empêcher d'obtenir même une adresse IP qui leur est assignée? Oui, je sais qu'ils pourraient simplement s'attribuer une adresse IP statique et contourner le serveur DHCP, mais je veux quand même que iptables
les bloque, en fonction de leur adresse MAC (espérons non-changeante). Oui, je sais que je pourrais augmenter la plage sur mon serveur DHCP, mais je veux que la direction comprenne la difficulté de gérer les appareils appartenant à des particuliers qui utilisent nos ressources de travail en se connectant et en contournant notre portail captif.
Une solution (en partie) à laquelle quelqu'un a pensé était de créer une classe trou noir dans mon fichier /etc/dhcp/dhcpd.conf
et de remplir avec les adresses MAC des appareils auxquels je ne veux pas me connecter. Cela fonctionnerait, mais nécessite de mettre à jour les adresses MAC à plusieurs endroits, ce que je ne veux pas. Je veux pouvoir mettre à jour les MAC dans un seul fichier, puis éventuellement exécuter un script qui ajoutera les modifications à mon fichier DHCP et à mes règles iptables
.