Page de portail captif avec MITM

J’ai un micro-ordinateur conçu pour montrer aux clients une page de portail lorsqu’ils se connectent au réseau Wi-Fi.

Le problème est que pour une raison quelconque, ils ne reçoivent pas la fenêtre contextuelle habituelle du téléphone / PC où, comme lorsque je fais la même chose avec mon routeur, cela fonctionne.

Je fais tout le processus en transférant toutes les requêtes DNS à un réseau local (par exemple 10.0.0.2).

Lorsqu’ils accèdent au navigateur, ils obtiennent la page du portail, mais le comportement est manquant. (connexion au Wi-Fi, une fenêtre contextuelle automatique apparaît, indiquant que vous devez vous connecter au réseau).

sur l’apache local, j’ai un simple fichier index.php avec le code d’état 401 (non autorisé).


Le micro-ordinateur est connecté via un port Ethernet au routeur et je contrôle totalement le routeur, mais je veux que le portail captif soit géré à partir du micro-ordinateur lui-même, ce qui explique pourquoi je n’utilise pas de portails captifs basés sur un routeur.

Tal.

Solutions :

Possibilité 1:

Vous devez avoir une configuration très spécifique sur votre routeur car il est le relais de votre micro-ordinateur. De plus, comme votre micro-ordinateur passe par Internet via le routeur, vous devez également prendre cela en considération.

  • Désactiver le service DNS sur votre routeur
  • Définissez DNS sur votre routeur sur 10.0.0.2
  • Désactiver la passerelle vers Internet sur votre routeur ou la définir sur 10.0.0.2
  • Définissez tous les serveurs / passerelles réels manuellement sur votre micro-ordinateur, et les routes sont également très importantes dans ce cas.

Possibilité 2:

N’oubliez pas que certains DNS ont leur DNS défini manuellement ou avec une configuration réseau spécifique ou avec un pare-feu spécifique qui surveille un serveur / une requête DNS rare. Vous devez donc prendre cela en considération, la meilleure solution pour éviter que le serveur DNS gateway ip cela signifie que votre serveur DHCP doit être sur le mini-ordinateur ou utiliser une passerelle sur le mini-ordinateur ou utiliser la possibilité 3 … cela implique de vérifier la passerelle que vous utilisez je suppose que c’est la passerelle du routeur.

En outre, vous pourriez avoir un conflit entre le travail du routeur et le travail du micro-ordinateur, et un conflit IP tel que la communication entre le client et le micro-ordinateur bloqué dans certains cas, puis vérifiez votre configuration IP.

Possibilité 3:

Si votre routeur est open-source ou open- convert convertible, vous pouvez utiliser DDWRT ou OpenWRT pour gérer votre point d’access. ou proxy ou dhcp ou redirect la demande vers votre micro-ordinateur ou autre.

Possibilité 4:

Consultez ce guide MITM et vérifiez si vous manquez quelque chose

Remarque :

Si ma réponse n’a pas aidé, veuillez fournir des informations de débogage plus techniques, car à part une description de la configuration, nous ne soaps pas grand chose … je serai ravi de vous aider:) … confiez également votre configuration réseau complète semble que ce soit un problème de réseau.

Votre question n’est pas très claire pour moi.

Utilisez-vous un navigateur sur le téléphone / PC ou une application? Pouvez-vous fournir une capture d’écran du comportement attendu?

Je vais essayer d’y répondre à partir de ce que je pense que vous demandez: Pour un navigateur, vous pouvez utiliser votre DNS ou ICMP pour redirect un client vers votre portail captif. ICMP est un protocole de couche 3 et certaines plates-formes (comme Android) peuvent déclencher automatiquement une notification native à l’utilisateur, comme “Hey, vous devez vous connecter”. Mais la redirection DNS ne déclenchera pas cela, cela nécessite une interaction de l’utilisateur avec un navigateur après la connexion au réseau. Ils ouvriront un navigateur, essaieront d’aller sur stack overflow.com et seront redirigés vers votre portail captif.

En outre, pour une application sur Android, vous devez vérifier une connexion URL. Voici un exemple tiré de AOSP:

private static final Ssortingng mWalledGardenUrl = "http://clients3.google.com/generate_204"; private static final int WALLED_GARDEN_SOCKET_TIMEOUT_MS = 10000; private boolean isWalledGardenConnection() { HttpURLConnection urlConnection = null; try { URL url = new URL(mWalledGardenUrl); // "http://clients3.google.com/generate_204" urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setInstanceFollowRedirects(false); urlConnection.setConnectTimeout(WALLED_GARDEN_SOCKET_TIMEOUT_MS); urlConnection.setReadTimeout(WALLED_GARDEN_SOCKET_TIMEOUT_MS); urlConnection.setUseCaches(false); urlConnection.getInputStream(); // We got a valid response, but not from the real google return urlConnection.getResponseCode() != 204; } catch (IOException e) { if (DBG) { log("Walled garden check - probably not a portal: exception " + e); } return false; } finally { if (urlConnection != null) { urlConnection.disconnect(); } } }