Portail Captif

De Wiketud
Aller à : navigation, rechercher

L'accès à internet du réseau INSA est soumis à authentification à travers ce qu'on appel un portail captif. Si jamais vous ne trouvez pas le portail & que votre navigateur ne vous propose pas de l'ouvrir, il faut ouvrir le lien gstatic.com/generate_204 ou forcer l'ouverture d'un lien en http(s) ex : http://etud.insa-toulouse.fr ou https://etud.insa-toulouse.fr

Linux / Mac

Intro

Voilà un petit script qui permettra de se connecter automatiquement au portail captif Promologis. Ce script fonctionne sur Mac et Linux.

You need

Il vous faut pour ceci :

  • Un mac ou PC sous Linux.
  • 5 minutes.

Fonctionnement du script

Je ping www.google.com (parce que oui je suppose que www.google.com sera toujours actif!) et je vérifie si l'opération se passe correctement.
Si J'ai un timeout, c'est à dire si je suis déconnecté (ou si www.google.com est down, mais c'est peu probable) je lance la fonction qui va me reconnecter au portail captif.
Je ping toutes les 5 secondes.
Si vous pensez que c'est trop peu, vous pouvez augmenter ce temps.

Le script crée un fichier log.txt dans le dossier du script, qui vous met le code HTML de la page de redirection (si vous voulez récupérer le token) ainsi que la date d'exécution de la fonction connection_promolo_insa.

Le tuto

  • Créez vous un dossier dans Mes Documents (par exemple), nommez le auto_connect_promolo.
  • Créez un fichier script_auto_connect_promolo et collez y le code suivant :
   #!/bin/bash
   function test_internet_connection_with_ping_google
   {
       ping -c3 www.google.com > /dev/null
       TEST=$?
       if [ $TEST -ne 0 ]
       then
           connection_promolo_insa
       fi
   }
   function connection_promolo_insa
   {
       path=`dirname $0`
       file="/log.txt"
       date >> $path$file
       login_etud="USERNAME"
       password_etud="PASSWORD"
       curl -silent --data-urlencode "auth_user=$login_etud" --data-urlencode "auth_pass=$password_etud" --data-urlencode "accept=Connection" https://portail-promologis-lan.insa-toulouse.fr:8003 >> $path$file
   }
   while true;
   do
       test_internet_connection_with_ping_google
       sleep 100
   done

Remarque 1 : Si vous êtes par exemple sur Mint (ou une autre distribution qui n'a pas directement cURL, il faut le télécharger, en faisant comme ceci :

   sudo apt-get install curl

Remarque 2 : Si vous êtes au R1, apparement il suffit de changer la ligne avec ...portail-promologis-lan... par :

   curl -silent --data "auth_user=$login_etud&auth_pass=$password_etud&accept=Connection" https://residences.insa-toulouse.fr:8003/ >> $path$file

Remarque 3 : Si vous êtes dans l'INSA (Wifi de l'INSA, invite INSA), vous pouvez changer avec cette ligne :

   ...https://portail-invites-lan.insa-toulouse.fr:8003/...

Changez l'extension de ce fichier en .sh, il doit donc maintenant s'appeler script_auto_connect_promolo.sh.

  • Changez le nom des variables d'utilisateur et de mot de passe, tout en gardant les guillemets. Si votre nom d'utilisateur etud INSA est durant et votre mot de passe est insa4ever, on doit avoir ces lignes :
   login_etud="durant"
   password_etud="insa4ever"
  • Ouvrez un terminal.

MAC : Il se trouve dans le dossier « Utilitaires » du dossier « Applications ».
Linux : Vous savez!
Tapez :

   crontab -e

Le terminal va peut être vous demander de choisir un éditeur de texte, prenez celui que vous préférez, il me semble que sur mac il y a directement Vim.
Allez tout à la fin de ce fichier, et tapez : (chemin d'accès vers le script)

   @reboot /home/votre_nom_utilisateur/Documents/auto_connect_promolo/script_auto_connect_promolo.sh

Cette ligne va exécuter une seule fois au démarrage de l'ordinateur notre script.
Si vous êtes sur Vim, pour pouvoir écrire vous devez appuyer sur la touche i, pour sauvegarder et quittez vous devez appuyer sur les touches :wq.
Si vous utilisez Nano pour enregistrer il faut taper ctrl+o et pour quitter c'est ctrl+x.

  • Dernière chose, veuillez rendre executable notre script.

Pour cela, toujours avec le terminal, rendrez vous dans votre dossier auto_connect_promolo et donnez les droits executables au script. Il faut donc taper :

   chmod 755 script_auto_connect_promolo.sh

Si vous ne savez pas comment naviguer dans l'arborescence du système de fichier, lisez cette page : ici (Section 2.3 cd)

Félicitation vous avez terminé!

Truc cool à savoir

  • Quand vous vous connectez, avec le cURL comme ceci :
   curl --data "auth_user=USERNAME&auth_pass=PASSWORD&accept=Connection" https://portail-promologis-lan.insa-toulouse.fr:8003

Vous pouvez observer que le terminal vous renvoie le code HTML de la page de redirection.
Cette page est enregistrée dans le fichier log.txt présent dans le dossier du script.
Vous devriez avoir une page comme ceci :

   <HTML> 
<HEAD><TITLE>Redirecting...</TITLE></HEAD>
<BODY>
<SPAN STYLE="font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">i
<B>Redirecting to <A HREF="/">/[/url]...</B>i
</SPAN>
<SCRIPT LANGUAGE="JavaScript">
Reste du code...

Et la ligne intéressante ici est :

   LogoutWin.document.write('<INPUT NAME="logout_id" TYPE="hidden" VALUE="8d9817fc5451efc8">');

On peut observer le token généré à la connexion, ici 8d9817fc5451efc8.
Et ce token va nous servir à se déconnecter, en utilisant la commande :

   curl --data "logout_id=8d9817fc5451efc8&logout=Deconnection" https://portail-promologis-lan.insa-toulouse.fr:8003

Et vous voilà déconnecté! Magique non?

Réclamations

Pour tout problème avec cette version, vous pouvez adresser vos remarques, plaintes, demandes d'autographes ou autres à papailha@etud.insa-toulouse.fr

Windows

Le fonctionnement précis est détaillé plus bas, mais si vous vous en fichez, contentez-vous de faire les étapes qui suivent.

Instructions

  • Téléchargez le petit fichier .zip qui contient tout ici. Il faut remplacer dans script.bat 8001 par 8003, le nouveau port de promologis.


  • Extrayez le quelque part sur votre ordinateur, à un endroit où il ne bougera plus (je le mets généralement dans C:\CURL) et retenez repérez le dossier où vous l'avez extrait.


  • Dans le dossier où vous avez extrait, éditez le fichier "script.bat" avec un éditeur de texte :
    • Remplacez METTRE_LOGIN_ICI par votre login
    • Remplacez METTRE_MOT_DE_PASSE_ICI par votre mot de passe
    • Important : Si vous avez des caractères spéciaux dans votre mot de passe, par exemple un &, il faudrait peut-être remplacer ce caractère par le code associé à la table ASCII hexadécimal, comme dans le tableau sur cette page. Par exemple si vous avez le mot de passe : insa&GMM4ever, vous devriez écrire password_etud="insa%26GMM4ever". Je n'ai jamais eu de problèmes cela dit, mais c'est une précaution qui peut être nécessaire.


  • Dans le dossier où vous avez extrait, remarquez la tâche planifiée pré-préparée "PromologisScheduledTask.xml". Nous allons plus tard l'importer dans le planificateur de taches de Windows.


  • Avant toute chose, éditez cette "tâche planifiée" (PromologisScheduledTask.xml) avec un éditeur de texte :
    • Cherchez la ligne 50, tout à la fin, dans laquelle il est écrit PATH_TO_SCRIPT.
    • Remplacez PATH_TO_SCRIPT par le chemin pointant vers le "script.bat" venu du .zip téléchargé juste avant.
    • Remplacez PATH_TO_DIRECTORY_OF_SCRIPT par le chemin contenant ce script.


  • Exemple :
    • j'ai extrait le fichier .zip dans "C:\CURL"
    • dans le fichier .xml, je remplace PATH_TO_SCRIPT par "C:\CURL\script.bat"
    • dans le fichier .xml, je remplace PATH_TO_DIRECTORY_OF_SCRIPT par "C:\CURL\"


  • Finalement, on va importer la tâche planifiée :
    • Lancez le planificateur de tâches si vous savez le trouver à la main,
    • sinon, appuyez sur les touches [Windows]+[R], tapez Taskschd.msc et appuyez sur [Entrée].
    • [Barre de menus] > [Actions] > [Importer une tâche]
    • Sélectionnez le fichier .xml que vous venez d'éditer.
    • Cliquez sur [Ouvrir], puis [Ok].


  • Si tout va bien, la tâche a bien été importée, et va se lancer dès la prochaine ouverture de session.


  • Si nécessaire, vous pouvez créer un raccourci vers script.bat sur votre bureau, pour tenter de vous connecter à n'importe quel moment.

Explications

Le fichier .zip contient le petit utilitaire CURL (qui est utilisé aussi dans les versions MAC et Ubuntu ci-dessus), un petit script en .bat pour exécuter CURL à notre convenance, ainsi qu'un fichier .xml pour une tâche planifiée.

Le fichier .xml est une tâche planifiée de Windows pré-préparée pour vous éviter des étapes en plus (comme il est gentil !). Cette tâche va servir à lancer le script toutes les 6 heures + 5 secondes (durée pendant laquelle une connexion est active + un délai pour être large), et ce dès l'ouverture de session.

Comme il est dit dans la dernière étape, un raccourci direct vers le script sur le bureau ou autre peut-être une précaution supplémentaire, pour garantir que l'on puisse se connecter vite fait à tout moment.

Remarque 1 : Le script contient une ligne pour attendre quelques secondes avant d'appeler CURL, c'est pour lui éviter de tourner sans rien faire au démarrage si l'ordinateur n'a pas encore bien détecté qu'il a une connexion internet. En fait, CURL va attendre sans réagir pendant un certain temps, et échouer au final. Vous pouvez donc modifier cette ligne, pour ajouter plus ou moins de temps d'attente au script.

Remarque 2 : Cette méthode est sujette à améliorations, n'hésitez pas à m'en faire part !

Contact-tion

Vous pouvez contacter l'auteur à l'adresse suivante : martire@etud.insa-toulouse.fr