Dans une autre vie, j'ai écrit exactement un tel mécanisme. Un petit pare-feu ici, un serveur web là, quelques trucs entre les deux pour activer et désactiver le pare-feu pour une adresse IP donnée, et une règle par défaut qui redirige tout le trafic du port 80 vers un serveur web qui a la page de connexion. Facile comme bonjour ? Pas vraiment.
Tout d'abord, vous pouvez essayer de regarder nocat un projet open source pour faire ce genre de choses.
N'essayez pas de le faire (d'écrire un mécanisme d'authentification sans fil via un portail captif) vous-même. C'est un court chemin vers la folie.
La façon la plus simple de le faire vous-même est d'utiliser deux ensembles de points d'accès (s'il s'agit de points d'accès grand public bon marché, sans plan, avec un seul ssid). Un ensemble de points d'accès est sur un réseau privé avec un serveur web, un serveur DHCP et un serveur DNS qui répond avec l'adresse IP du serveur web pour toutes les recherches DNS. Quelqu'un cherche google.com ? Il obtient 192.168.66.6. Ils recherchent snoopy.com ? 192.168.66.6. Ils cherchent bobsyeruncle.net ? 192.168.66.6. Et sur ce serveur web, vous mettez une page web qui dit "Bienvenue à (insérer la société ici)." "Si vous voulez utiliser le réseau sans fil, changez votre ssid en "securenet", configurez-le en "WPA2" et "eap-ttls" (ou tout autre protocole d'authentification sans fil que vous utilisez).
Les autres points d'accès seront, bien entendu, connectés à l'interface "sans fil" de votre pare-feu et autoriseront tout accès que vous jugerez approprié pour l'accès au réseau sans fil sur votre site.
Oh -- attends -- tu n'utilises pas de clé pré-partagée, n'est-ce pas ? Si c'est le cas, vous n'avez pas vraiment de sécurité sans fil du tout. Une fois que je connais la clé, je peux espionner le trafic de tout le monde. Même les points d'accès grand public de nos jours supportent WPA-enterprise et radius, et vous pouvez utiliser le serveur radius de Windows pour que l'authentification sans fil fonctionne correctement.
Pour cette leçon, vous devrez mettre une autre pièce dans la machine et poser une autre question...