Dézinguer le network manager

Au cours de cet article nous allons modifier des outils permettant d’assurer le fonctionnement de nos interfaces réseaux. Par conséquent il y aura une courte période où vous n’aurez plus accès à Internet et donc à cet article. Je vous invite donc à télécharger cette page sur votre ordinateur via la commande suivante :

https://whiteflag.blog/books/linux/page/dézinguer-le-network-manager

Sur Linux, on dispose d’un petit outil bien sympathique qui nous permet de nous connecter à nos réseaux Wi-Fi’s et/ou filaires facilement : le NetworkManager !

Selon le site officiel de la distribution debian,

Le but essentiel de NetworkManager est de rendre la configuration du réseau et son paramétrage aussi indolores et automatiques que possible. Si on utilise DHCP, NetworkManager est destiné à remplacer les routes prédéfinies, obtenir des adresses IP d’un serveur DHCP et modifier les serveurs de noms chaque fois qu’il le juge opportun. En effet, le but de NetworkManager est de faire en sorte que les connexions réseau fonctionnent simplement.

wiki.debian.org

Alors oui, le NetworkManager simplifie grandement la vie. Il suffit de cliquer sur l’icône, de sélectionner son point d’accès Wi-Fi et d’entrer le passphrase pour être connecté au réseau. Cependant on ne sait pas vraiment ce qu’il se passe derrière et ça c'est chiant

Donc aujourd’hui on va voir comment désactiver le Network Manager et se connecter aux réseaux manuellement.

I/ Désactiver Network Manager

Avant de désactiver le Network Manager il va falloir installer deux paquets :

- Le paquet resolvconf qui va nous permettre de faire de la résolution DNS.

sudo apt install resolvonf

- La suite d’outils iw qui nous permettra de jouer avec le réseau Wi-Fi.

sudo apt install iw

Une fois que vous les avez téléchargé, nous pourrons désactiver le Network Manager. Pour cela il suffira d’entrer ces lignes :

sudo systemctl stop NetworkManager #Pour le stopper
sudo systemctl disable NetworkManager #Pour le désactiver

Ne supprimez pas le paquet NetworkManager ! On ne sait jamais ce qui peut arriver et vous vous retrouveriez bien bête en cas de problèmes. Si jamais vous avez à nouveau besoin du NetworkManager alors vous pourrez le réactiver en utilisant ces commandes :

sudo systemctl enable NetworkManager #Pour l'activer
sudo systemctl start NetworkManager #Pour le démarrer

Que vous l’activiez ou le désactiviez, il sera obligatoire de redémarrer votre machine :

sudo reboot

OK, à partir de maintenant vous n’aurez plus accès à Internet. Suivant le réseau auquel vous voulez vous connecter, vous aurez des outils différents à utiliser. Du coup nous allons voir comment se connecter via WEP, WPA, WPS, aux réseaux publics et en filaire manuellement.

Avant de se connecter à un point d’accès il faut le détecter. Sans le NetworkManager nous n’avons pas d’interfaces visuelles pour nous dire quels sont les points d’accès disponibles.

Par contre nous avons l’outils iw qui va nous permettre de scanner le réseau via la commande suivante :

sudo iw dev "votre_interface_wifi" scan | less

nm1.png

Ci-dessus vous avez une partie du résultat du scan de iw. Rien ne vous empêche, bien évidemment, d’utiliser la commande grep afin de rechercher un SSID (identifiant réseau) spécifique. A partir du résultat de iw nous serons en mesure de nous connecter à n’importe quel point d’accès et ce grâce à deux utilitaires: wpa_supplicant et wpa_passphrase.

II/ Connexion aux réseaux publics

La connexion au réseau public est très rapide à faire, il suffit de créer un fichier contenant ces lignes :

network= {
	ssid="Nom de votre point d'accès"
	ou
	bssid="Addresse MAC du point d'accès"
	key_mgmt=NONE
}

Il sera possible d'utiliser le SSID ou le BSSID (ou les deux) afin de se connecter au point d'accès. Ensuite nous n'aurons plus qu'à utiliser ces deux commandes:

wpa_supplicant -B -i <interface wifi à utiliser> -c <fichier de configuration>
dhclient <interface wifi à utiliser>

La première commande nous permettra d'initialiser la connexion au point d'accès tandis que la seconde nous permettra de faire une demande de bail DHCP.

III/ Connexion à un AP utilisant WEP

Pour se connecter à un AP qui utilise WEP Il faudra créer un fichier ayant ce contenu:

network={
    ssid="Nom du point d'accès"
    key_mgmt=NONE
    wep_key0="passphrase"
    wep_tx_keyidx=0
}

Pour rappel, WEP permet l'utilisation de quatre clés de différentes. Ici nous n'en spécifions qu'une seule via la directive wep_key0. La directive wep_tx_keyidx quant à elle indique quelle est la clé par défaut à utiliser. Puis on réutilisera les commandes:

wpa_supplicant -B -i <interface wifi à utiliser> -c <fichier de configuration>
dhclient <interface wifi à utiliser>

IV/ Connexion à un AP utilisant WPA

Pour se connecter à un point d’accès Wi-Fi utilisant WPA, nous nous servirons de l'outil wpa_passphrase qui va nous permettre de créer la PSK de notre réseau Wi-Fi:

nm4.png

Il faudra stocker l'output dans un nouveau fichier de configuration puis utiliser wpa_supplicant de la même manière que précédemment:

wpa_supplicant -B -i <interface wifi à utiliser> -c <fichier de configuration>
dhclient <interface wifi à utiliser>​

V/ Erreur courante

Pour plusieurs raisons il se peut que le terminal vous renvoie ce message :

nm8.png

Cela veut dire qu'une connexion Wi-Fi est déjà établie via wpa_supplicant. Pas de panique, il suffit de kill le process :

sudo pkill wpa_supplicant

et de relancer les commandes précédentes pour que la connexion s’établisse correctement :

VI/ Se connecter via le WPS

Pour se connecter via WPS il suffit d’utiliser l’outil wpa_cli:

wpa_cli wps_pbc "adresse_MAC_de_votre_point_d'accès"

L’outil wpa_cli va se mettre en écoute, il ne vous restera plus qu’à appuyer sur le bouton WPS situé sur votre box pour que la connexion s’établisse. Enfin, demandez une adresse IP via l’outil DHCPCD :

sudo dhcpcd "votre_interface_wifi"

Voilà pour la partie configuration.