Archives du mot-clé Astuces

Désactiver la gestion du wifi par Windows

Wlan Optimizer

Wlan Optimizer

 

Dans certains cas assez spécifiques la gestion du wifi par Windows dérange plus qu’elle n’arrange. C’est le cas par exemple lorsqu’il existe plusieurs réseaux auxquels vous êtes susceptibles de vous connecter, soit que vous ayez enregistré plusieurs points d’accès (un point d’accès, c’est un réseau wifi auquel vous pouvez vous connecter) dans votre voisinage, soit que plusieurs points d’accès de votre voisinage possèdent le même nom, ce qui est souvent le cas lorsque celui-ci est laissé par défaut… Et à plus forte raison lorsque vous vous connectez à un hotspot.

Vous sélectionnez donc un point d’accès, vous vous connectez dessus, tout va bien, et puis cinq minutes plus tard il y a une petite baisse de dix secondes dans qualité de la réception du signal, et Windows se reconnecte automatiquement sur le réseau d’à coté qui a un débit pourri, mais suffisant suivant les critères de Windows. Lorsque votre point d’accès précédent retrouve sa force, Windows ne repasse pas dessus pour autant à moins que votre deuxième point d’accès ait lui aussi une baisse de signal significative. Ce qui dans le cas général est très pratique pour l’utilisateur devient donc très handicapant dans notre cas particulier. J’ai essayé divers réglages dans le fin fond des paramètres de Windows dans le but de le forcer à rester sur le même point d’accès mais sans succès. J’ai même installé un logiciel Wifi externe (dont je reparlerai) pour gérer le wifi en lieu et place de Windows, mais ce dernier a continué à interférer. J’ai alors recherché un utilitaire susceptible d’inhiber le scan des réseaux et la reconnexion automatique à la Windows et j’ai découvert WLAN Optimizer.

Ce logiciel est surtout mis en avant pour son option « Disable background scan » qui permet d’empêcher Windows de scanner en permanence l’ensemble des réseaux disponibles en arrière plan, ce qui est effectivement inutile  une fois connecté et fait perdre un petit peu de signal, ainsi que pour quelques petites optimisations, notamment sur le streaming, il y a pas mal de sites en français qui en parlent si vous voulez vous documenter davantage sur la question. Ce que je souhaite mettre en avant pour ma part, c’est son option « Disable autoconfig », qui nécessite que le logiciel soit exécuté avec les droits d’administrateur, et qui n’est pas recommandée à moins de savoir ce que l’on fait, dixit l’éditeur du logiciel. Ça tombe bien, nous savons ce que nous faisons : nous voulons désactiver toute gestion automatique du wifi par Windows, au profit d’une connexion réalisée à partir d’un logiciel tiers. Notre but est que ça ne marche plus via Windows, mais que la carte wifi soit encore totalement opérationnelle.

Lancez donc le logiciel en mode administrateur, cochez la case, sauvez, et admirez votre gestion wifi par Windows qui ne vous affiche plus aucun réseau à portée: objectif atteint. Connectez vous via votre logiciel tiers de gestion du wifi, Windows ne vous embêtera plus.

Paramètrer Noscript en mode « Liste Noire » pour Javascript

Noscript

I Introduction

Hello un nouveau petit article, pour ne pas se rouiller. Pour ne pas sortir de mon spectre habituel, je vais vous présenter une extension pour Firefox, qui existe depuis un bon moment déjà, et qui permet d’empêcher les sites que vous visitez d’exécuter des scripts javascript dans votre navigateur, j’ai nommé NoScript.Bon j’ai conscience d’avoir déjà utilisé pas mal de gros mots, donc je vais faire un rappel rapide:

  • Un navigateur, c’est le logiciel que vous utilisez pour aller sur Internet. Par exemple Internet Explorer, Firefox ou Chrome.
  • Quant à Javascript, c’est une technologie qui permet aux sites web d’effectuer des opérations sur votre ordinateur sans qu’il soit nécessaire de recharger la page. Par exemple, si sur certains sites un popup s’affiche par simple survol de la souris, c’est du Javascript. Si vous remplissez un formulaire, et qu’un message apparait pour vous aider à le remplir, c’est aussi du Javascript. Javascript est donc prévu à la base pour vous faciliter la vie et faire en sorte que la navigation des sites internet soit plus rapide et plus simple. Mais son usage ne s’arrête pas là, et certains sites peuvent se servir de Javascript pour des usages plus ou moins malhonnêtes, depuis celui qui va faire quelques statistiques à celui qui va carrément exploiter les ressources de votre ordinateur au détriment de votre confort de navigation, et il est même possible d’utiliser des failles du navigateur pour installer des virus sur votre ordinateur. Bref ce n’est pas toujours joli joli, mais dans l’immense majorité des cas, vous ne craignez rien, et vous avez peu de probabilité statistique de tomber sur un script malicieux vraiment gênant, si vous vous contentez de naviguer normalement sur le Web.

Pourquoi ne vous avais-je pas encore parlé de NoScript? Tout simplement parce que cette extension est paranoïaque à l’extrême. Elle bloque par défaut tous les scripts Javascript de tous les sites internets, ainsi que tous les objets embarqués, comme les vidéo, pdf, objets flash, etc. Et sur chaque nouveau site internet, une barre popup s’affiche au dessus de la barre d’état pour vous indiquer quels scripts ont été bloqués et vous donner le loisir de les autoriser ou non, ce qui est très vite lassant, surtout lorsque l’on sait que 60% des scripts en question sont inoffensifs et souvent indispensables à une bonne navigation sur le site visité, et que sur les 40% de scripts restants, la majorité sont soit inopérant (car non compatibles avec votre ordinateur), soit peu gênants (outils de stats, scripts de partage de contenus, bouton « j’aime » de Facebook, etc).

En ce qui me concerne je suis peut être tombé trois ou quatre fois maximum ces dernières années sur des sites contenant des scripts que j’ai eu besoin de bloquer, chaque fois j’ai pensé à NoScript, et chaque fois j’ai fini par le désinstaller, car son comportement par défaut de tout interdire et d’avoir une liste blanche des sites autorisés est vraiment contraignant. Jusqu’à aujourd’hui. En effet figurez vous qu’aujourd’hui même, Korben que l’on ne présente plus a eu l’idée de tester pour quelques heures un script de type invasif permettant de gagner de la monnaie virtuelle sur le dos des visiteurs de son site internet. En ce qui me concerne, le processeur de mon ordinateur s’est mis à tourner à fond, et l’ensemble de mon ordinateur a sérieusement ralenti, ce qui est absolument intolérable. Ni une ni deux, j’ai réactivé NoScript en me demandant quelle mouche l’avait piquée et s’il n’aurait pas pu règler son truc sur un niveau plus discret (Note: Korben a depuis retiré son script). Et je me suis retrouvé à nouveau confronté au problème du fameux paramètrage de NoScript sous forme de liste blanche.

II L’Astuce

La problématique est donc la suivante: comment faire pour autoriser l’ensemble des scripts de tous les sites internet à s’exécuter normalement, sauf certains que l’on souhaite spécifiquement bloquer? De la même manière finalement que l’on peut spécifiquement bloquer les publicités avec l’extension Adblock+.

Après une petite recherche sur la toile, il apparait, qu’il existe une extension FireFox spécifiquement dédiée à cela : YesScript. Je pense que le nom est suffisamment parlant: d’après la description, elle permet de faire exactement ce qui est demandé, c’est à dire tenir une liste noire des scripts non acceptés. Mais il semblerait aussi qu’elle soit bien moins évoluée que NoScript en termes de fonctionnalités.

Heureusement, une petite recherche dans les commentaires de l’extension s’est avérée payante: NoScript peut effectivement être paramétrée en mode « liste noire ». Pour cela, il suffit d’aller dans les options de l’extension, et de choisir d’autoriser le Javascript globalement (vous aurez droit à un petit message d’avertissement bien flippant qu’il vous faudra ignorer). Ensuite de quoi, sur chaque site dont vous voudrez bloquer les scripts pernicieux, survolez l’icone de NoScript dans la barre d’état, et choisissez l’option « marquer tel.site.com comme non fiable » pour obtenir le comportement attendu.

III Conclusion

Voila pour les explications. De cette manière la navigation sur internet avec NoScript sera bien moins pénalisante (mais également moins sécurisée vous diront les puristes). Vous trouverez NoScript sur le site des modules de Firefox. Si vous ne savez pas comment l’installer, voici un petit guide qui commence à dater un petit peu, mais reste d’actualité.

[Avancé] Rechercher une chaine de caractères dans des fichiers sous Linux

Cet article vient en complément de mes articles [Avancé] rechercher et agir sur les fichiers en double sous Linux et Comment appliquer récursivement une instruction à des fichiers sous Linux. Je donne juste une petite astuce que j’ai trouvée sur un forum anglophone: Vous recherchez  par exemple tous les fichiers textes dont le nom contient un certain pattern, qui contiennent une certaine chaine de caractères. Par exemple vous pouvez très bien rechercher tous les scripts shell qui contiennent le mot clé « init ».

Placez vous dans le terminal à la racine de l’arborescence de recherche et tapez la commande:

find -name « PATTERN » -exec grep -H « CHAINE » {} \;

soit dans notre exemple de scripts shells, ça donnerait :

find -name « *.sh » -exec grep -H « init » {} \;

Pour plus de détails sur les patterns de recherche, reportez vous aux articles précités.

[Avancé]Inscrire dans le marbre le comportement de Firefox au démarrage

user.js sample

Plop, une petite astuce que j’ai mis du temps à trouver: Il y a certaines valeurs de configuration de Firefox qu’on aimerait voir réinitialisées à chaque redémarrage, même si ce n’est pas toujours le cas par défaut notamment sous Windows.

Je pense particulièrement à l’endroit de téléchargement par défaut dans le cas où dans les préférences on a choisi de toujours être interrogé sur où enregistrer les fichiers: Il semblerait que sous Windows du moins chez moi, le dernier endroit choisi pour l’enregistrement précédent soit reproposé le coup d’après, ce qui est parfois utile et parfois franchement handicapant. Après une recherche assez fouillée, j’ai fini par trouver comment faire pour qu’au démarrage de Firefox, cela soit réinitialisé.

Avant d’aller plus loin, si vous n’avez jamais eu l’occasion de modifier manuellement des clés de configuration de Firefox, je vous conseille de lire mon article Configuration avancée de Firefox.

Si vous avez lu jusque là, vous savez qu’un très grand nombre de paramètres régissant le comportement de Firefox sont inscrit dans about:config. Certaines de ces clés, comme par exemple browser.download.lastDir sont modifiées automatiquement par le navigateur et ne sont pas forcément réinitialisées au démarrage suivant de Firefox.

Une bonne manière de forcer la réinitialisation au redémarrage suivant est d’aller dans votre dossier de configuration de firefox (dans application data sous Windows et dans .mozilla sous GNU/Linux), et d’y rechercher le fichier user.js (qui doit se trouver dans le même dossier que le fichier pref.js). S’il n’existe pas, créez le, et initialisez y toutes les valeurs que vous souhaiterez, par exemple dans notre cas, on pourrait ajouter la ligne: user_pref(« browser.download.lastDir », « G:\\Download\\blahblah »);
Attention  à bien mettre des double backslahs (le caractère ‘\’) dans le chemin d’accès, c’est très important. Comme le fichier de configuration user.js a forcément le pas sur les autres, cette manipulation devrait vous tirer d’affaire.

Consultez aussi à ce sujet : User.js file – MozillaZine (Anglais).

[Avancé] rechercher et agir sur les fichiers en double sous Linux

Cet article vient en complément de mon article Comment appliquer récursivement une instruction à des fichiers sous Linux, pour préciser comment formuler la recherche.

Sous Linux, lorsqu’au sein d’un même répertoire, deux fichiers s’enregistrent sous le même nom, le système rajoute automatiquement entre la fin du nom et l’extension un nombre entre parenthèses qui s’incrémente automatiquement avec le nombre de copies. Par exemple si un de vos logiciels enregistre plusieurs fois le fichier « I_love_linux.txt » dans ce répertoire, la deuxième copie sera enregistrée avec le nom « I_love_linux(1).txt », la troisième avec « I_love_linux(2).txt », et ainsi de suite.

Pour des raisons élémentaires de gain de place, il peut être utile de supprimer ces fichiers, et le but de cet article est de trouver une commande qui fait ça automatiquement. L’astuce est de combiner correctement les caractères universels de la commande find. Pour rappel:

  • le caractère ‘*’ remplace n’importe quelle chaine de caractères.
  • le caractère ‘?’ remplace n’importe quel caractère.

Donc dans le cas où aucun fichier ne porte de nom avec quelque chose entre parenthèse dedans sinon les fichiers copies, il suffira d’utiliser la commande find avec le pattern « *(*).* ». Dans le cas contraire, il faudra d’abord rechercher les fichiers compris entre 1 et 9, puis ceux entre 10 et 99, et ainsi de suite avec le pattern « *(?).* », puis avec le pattern « *(??).* », et ainsi de suite ; ou encore utiliser un pattern plus complexe qui laisse le choix du nombre de caractères en précisant qu’on ne veut que des numéros, mais je n’entrerai pas dans les détails ici.

Par exemple j’ai pu utiliser la commande find -name « *(??).* » -exec rm {}  \; pour supprimer mes fichiers doublons compris entre 10 et 99.

Capturer le localhost dans WireShark/Ethereal sous Windows

Je ne sais pas si certains d’entre vous bossent sur des projets telecom, mais il est une situation dans laquelle on se retrouve tôt ou tard: avoir besoin de tester deux logiciels censés communiquer entre eux par le réseau sur son propre ordinateur, et vouloir sniffer le réseau pour savoir ce qu’ils se disent exactement. Problème, wireshark (nouveau nom d’Ethereal) capture tout ce qui passe par la carte réseau, mais dans le cas de communication réseau internes à l’ordinateur, les paquets empruntent des raccourcis qui les font échapper à cette capture. Comment tricher pour les avoir quand même? Une façon de faire consiste à les forcer à passer par la carte réseau, en indiquant à windows que tous les paquets en provenance de notre ordinateur et à destination de notre adresse ip doivent emprunter la passerelle par défaut.

I visualisation des paramètres initiaux :

D’abord on fait un ipconfig pour repérer son adresse ip, et la passerelle par défaut. Par exemple on obtient ça:

C:\>ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix  . : toto.titi.tata.com
IP Address. . . . . . . . . . . . : 192.168.16.53
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.16.2

Tant qu’on y est, on peut aussi regarder les paramètres par défaut de routage interne :

H:\>route print 192.168.16.53 | find « 192.168.16.53 »
192.168.16.53  255.255.255.255        127.0.0.1       127.0.0.1       20

Le résultat dit que les paquets à destination de mon adresse IP doivent être redirigés sur mon localhost. C’est ce que nous allons changer.

II Forçage du passage des paquets par le routeur :

Nous allons donc ajouter une route à Windows en lui disant que pour router des paquets vers notre adresse IP, il faut passer par le routeur:

H:\>route add 192.168.16.53 mask 255.255.255.255 192.168.16.2 metric 1

Regardons maintenant les nouveaux parametres de routage de windows :

H:\>route print 192.168.16.53 | find « 192.168.16.53 »
192.168.16.53  255.255.255.255        127.0.0.1       127.0.0.1       20
192.168.16.53  255.255.255.255 192.168.16.2 192.168.16.53       1

La nouvelle route a bien été ajoutée. L’étape suivante concerne notre application qui tourne en interne : Au lieu de lui donner l’adresse hote interne 127.0.0.1, il faut lui donner l’adresse hôte externe, dans cet exemple 192.168.16.53. Une fois que c’est fait, nous pouvons lancer ethereal/wireshark  et notre application, et les paquets seront capturés.

III Résoudre le problème du dédoublement des paquets :

Seul petit problème, le trajet des paquets va être le suivant :
1)      Le paquet part de l’application cliente sur notre ordinateur
2)      Il est routé vers le routeur
3)      Le routeur nous le renvoie
4)      Le paquet est reçu par l’application serveur sur notre ordinateur

Et dans le cas du trajet serveur -> client, c’est la même chose.

Ca implique que chaque paquet passe deux fois par notre carte réseau, et que du coup tous les paquets seront capturés en double par wireshark/ethereal. Pour pallier à ce petit problème, il suffit d’ajouter un filtre dans wireshark, pour lui indiquer par exemple de bloquer les paquets sortant de la carte réseau du routeur. Par exemple, si en plus vous ne voulez que les paquets snmp, et que votre carte réseau a pour adresse 00:ab:cd:ef:12:34, indiquez le filtre suivant dans wireshark/ethereal:

snmp && !(eth.src == 00:ab:cd:ef:12:34)

Et le tour est joué!

IV Rétablir les choses dans leur configuration d’origine :

Lorsqu’on n’a plus besoin de capturer les paquets, il n’est pas nécessaire de polluer le routeur plus longtemps. Il suffit d’enlever la route ajoutée au II :

H:\>route delete
192.168.16.53
H:\>route print 192.168.16.53 | find « 192.168.16.53 »
192.168.16.53  255.255.255.255        127.0.0.1       127.0.0.1       20

Et tout est de retour à l’état initial.

I visualisation des paramètres initiaux :

D’abord on fait un ipconfig pour repérer son adresse ip, et la passerelle par défaut. Dans mon cas ça donne ça :

H:\>ipconfig

Windows IP Configuration

Ethernet adapter Local Area Connection:

Connection-specific DNS Suffix  . : rennes.eu.thmulti.com

IP Address. . . . . . . . . . . . : 141.11.149.18

Subnet Mask . . . . . . . . . . . : 255.255.240.0

Default Gateway . . . . . . . . . : 141.11.159.1

Tant qu’on y est, on peut aussi regarder les paramètres par défaut de routage interne :

H:\>route print 141.11.149.18 | find « 141.11.149.18 »

141.11.149.18  255.255.255.255        127.0.0.1       127.0.0.1       20

Le résultat dit que les paquets à destination de mon adresse IP doivent être redirigés sur mon localhost. C’est ce que nous allons changer.

II Forçage du passage des paquets par le routeur :

Nous allons donc ajouter une route à Windows en lui disant que pour router des paquets vers notre adresse IP, il faut passer par le routeur :

H:\>route add 141.11.149.18 mask 255.255.255.255 141.11.159.1 metric 1

Regardons maintenant les nouveaux parametres de routage de windows :

H:\>route print 141.11.149.18 | find « 141.11.149.18 »

141.11.149.18  255.255.255.255        127.0.0.1       127.0.0.1       20

141.11.149.18  255.255.255.255     141.11.159.1   141.11.149.18       1

La nouvelle route a bien été ajoutée. L’étape suivante concerne notre application qui tourne en interne : Au lieu de lui donner l’adresse hote interne 127.0.0.1, il faut lui donner l’adresse hôte externe, dans mon cas 141.11.149.18. Une fois que c’est fait, nous pouvons lancer ethereal/wireshark  et notre application, et les paquets seront capturés.

III Résoudre le problème du dédoublement des paquets :

Seul petit problème, le trajet des paquets va être le suivant :

1) Le paquet part de l’application cliente sur notre ordinateur

2) Il est routé vers le routeur

3) Le routeur nous le renvoie

4) Le paquet est reçu par l’application serveur sur notre ordinateur

Et dans le cas du trajet serveur -> client, c’est la même chose.

Ca implique que chaque paquet passe deux fois par notre carte réseau, et que du coup tous les paquets seront capturés en double par wireshark/ethereal. Pour pallier à ce petit problème, il suffit d’ajouter un filtre dans wireshark, pour lui indiquer par exemple de bloquer les paquets sortant de la carte réseau du routeur. Par exemple, dans mon cas, je ne veux que les paquets snmp, donc j’indique le filtre suivant à wireshark/ethereal :

snmp && eth.src != 00:19:b9:2e:45:cf

Et le tour est joué!

IV Rétablir les choses dans leur configuration d’origine :

Lorsqu’on n’a plus besoin de capturer les paquets, il n’est pas nécessaire de polluer le routeur plus longtemps. Il suffit d’enlever la route ajoutée au II :

H:\>route delete 141.11.149.18

H:\>route print 141.11.149.18 | find « 141.11.149.18 »

141.11.149.18  255.255.255.255        127.0.0.1       127.0.0.1       20

Et tout est de retour à l’état initial.

Ces lignes de commande que l’on oublie toujours…

Le site où sont indexées les lignes de commande

Le site où sont indexées les lignes de commande

Pour tous ceux qui utilisent Linux et qui, comme moi, ont parfois du mal à se remémorer certaines lignes de commande dans le genre compliquées, je viens d’apprendre en lisant un article de Korben l’existence d’un site super sympathique qui recense toutes les commandes Unix. Il s’agit d’un site communautaire, où chacun peut ajouter de nouvelles commandes, commenter celles des autres, et voter pour les plus utiles.

Le principe est tout simple: il suffit d’entrer un mot clé en rapport avec la commande que l’on cherche dans la barre de recherche, et avec un peu de chance, elle sera dans les résultats. Sinon, dés que vous l’aurez retrouvée, rajoutez la illico, ça servira dans le futur :). Le site s’appelle Command-line-fu, et personnellement j’y ai déjà appris deux ou trois petites commandes sympathiques que j’ignorais. A bookmarquer d’urgence ;).