Linoux

  Accueil

Zoom   

Accueil > Administration > Réseau > Réseau sans fil
Connexion wifi
LinuxInfo
Dezoom

Connexion wifi

La configuration de la communication wifi est une étape supplémentaire dans la configuration de la communication Ethernet. Pour ce faire, deux outils d'administration de réseau wifi sont disponibles sous Debian :

Ces deux outils peuvent coexister dans une installation. Dans ce qui suit, on utilise les commandes fournies par iw.

1 - Préparation

1.1 - Installer les paquets

Télécharger et installer les paquets manquants par rapport à la liste suivante :

# aptitude install iproute2 rfkill iw wpasupplicant isc-dhcp-client dnsutils bind9-host host

1.1 - Vérifier la configuration matérielle de l'interface

$ ls /sys/class/net
eth0 lo wlan0
$ ls -la /sys/class/net/wlan0
lrwxrwxrwx 1 root root 0 mars 17 21:24 /sys/class/net/wlan0 -> ../../devices/pci0000:00/0000:00:1c.1/0000:03:00.0/net/wlan0
$ lspci -k |grep -A2 -i wireless
03:00.0 Network controller: Intel Corporation Centrino Wireless-N 1030 [Rainbow Peak] (rev 34)
Subsystem: Intel Corporation Centrino Wireless-N 1030 BGN
Kernel driver in use: iwlwifi
....
  • Comme indiqué (Kernel driver in use), le module (ici iwlwifi) est chargé, ce que l'on peut vérifier avec la commande lsmod :

  • $ lsmod |grep iwlwifi
    iwlwifi 131072 1 iwldvm
    cfg80211 544768 3 iwlwifi,mac80211,iwldvm
    $ dmesg |grep firmware
    [ 96.992075] iwl3945 0000:0c:00.0: firmware: failed to load iwlwifi-3945-2.ucode (-2)
    [ 96.992081] iwl3945 0000:0c:00.0: Direct firmware load failed with error -2

    1.2 - Vérifier la boucle lo

    $ ip link show lo |grep lo:
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    # ip link set dev lo up
    #ping -c2 127.0.0.1 |grep loss
    2 packets transmitted, 2 received, 0% packet loss, time 999ms

    1.3 - Désactiver les services réseau

    Si l'objectif est d'établir une connexion "manuelle", il est préférable d'éliminer les interférences possibles avec d'éventuels autres services ou gestionnaires de réseau actifs, tels que wicd ou network-manager. Pour cela, vérifier le statut des services correspondants :

    $ systemctl -a |grep -E 'wicd|networking|NetworkManager'
    networking.service loaded active running LSB: Raise network interfaces.
    wicd.service loaded active running LSB: Starts and stops Wicd

    Dans l'exemple ci-dessus,

    # aptitude purge wicd-daemon

    1.4 - Effacer les traces d'une configuration préalable

    De même, si l'objectif est d'établir une connexion "à partir de zéro", sans interférence avec une configuration préalable, désactiver l'interface eth0 et purger les adresses et routes réseaux :

    # ip link set dev wlan0 down

    # ip -s -s address flush dev wlan0

    # ip -s -s route flush dev wlan0

    # ip -s -s neigh flush dev wlan0

    2 - Connexion wifi

    2.1 - Débloquer les interrupteurs wifi

    # aptitude install rfkill

    # rfkill list wifi 0: asus-wlan: Wireless LAN Soft blocked: yes Hard blocked: no 2: phy0: Wireless LAN Soft blocked: yes Hard blocked: yes

    # rfkill unblock wifi
    # rfkill list wifi
    0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    1: asus-wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no

    2.2 - Activer l'interface wifi

    # ip link set wlan0 up
    
    # ip link show wlan0
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
        link/ether 4c:80:93:7b:29:a1 brd ff:ff:ff:ff:ff:ff

    2.3 - Sélectionner la zone de régulation

    # iw reg get
    country 00: DFS-UNSET
    ....
    $ cat /usr/share/zoneinfo/zone.tab
    ....
    FR +4852+00220 Europe/Paris
    ....
    GB +513030-0000731 Europe/London
    ....
    SE +5920+01803 Europe/Stockholm
    # iw reg set FR
    # iw reg get
    country FR: DFS-ETSI
    (2402 - 2482 @ 40), (N/A, 20), (N/A)
    (5170 - 5250 @ 80), (N/A, 20), (N/A)
    (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS
    (5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS
    (57000 - 66000 @ 2160), (N/A, 40), (N/A)
    # iwlist wlan0 freq
    wlan0 13 channels in total; available frequencies :
    Channel 01 : 2.412 GHz
    Channel 02 : 2.417 GHz
    Channel 03 : 2.422 GHz
    Channel 04 : 2.427 GHz
    Channel 05 : 2.432 GHz
    Channel 06 : 2.437 GHz
    Channel 07 : 2.442 GHz
    Channel 08 : 2.447 GHz
    Channel 09 : 2.452 GHz
    Channel 10 : 2.457 GHz
    Channel 11 : 2.462 GHz
    Channel 12 : 2.467 GHz
    Channel 13 : 2.472 GHz
    Current Frequency:2.472 GHz (Channel 13)

    # nano /etc/default/crda
    

    Changer la dernière ligne pour désigner la région retenue, par exemple FR

    REGDOMAIN=FR
    

    2.4 - Détecter les réseaux wifi présents

    La commande iw dev wlan0 scan fournit, pour chaque réseau détecté, un grand nombre d'informations.

    Pour par exemple, obtenir la liste des réseaux avec leurs BSS, SSID et signal

    # iw dev wlan0 scan |grep -wE "BSS|SSID|signal"
    SS 30:7e:cb:7a:8d:ac(on wlan0)
    signal: -76.00 dBm
    SSID: VANCAP
    BSS 9a:7e:cb:7a:8d:ad(on wlan0)
    signal: -73.00 dBm
    SSID: SFR WiFi FON
    BSS 9a:7e:cb:7a:8d:af(on wlan0)
    signal: -71.00 dBm
    SSID: SFR WiFi Mobile
    BSS 52:1f:9f:fc:1a:b0(on wlan0)
    signal: -58.00 dBm
    SSID: Bouygues Telecom Wi-Fi
    ................

    2.5 - Etablir la connexion wifi

    Les commandes pour établir la connexion wifi sont fonction du chiffrage ou non chiffrage de la liaison.

    2.5.1 Chiffrage

    # iw dev wlan0 scan |grep -iwE "BSS|SSID|capability|WPA|RSN"
    BSS 30:7e:cb:7a:8d:ac(on wlan0)
    capability: ESS Privacy ShortSlotTime (0x0411)
    SSID: VANCAP
    RSN: * Version: 1
    WPA: * Version: 1
    BSS 9a:7e:cb:7a:8d:ad(on wlan0)
    capability: ESS ShortSlotTime (0x0401)
    SSID: SFR WiFi FON
    .........

    Le premier réseau de la liste (VANCAP) est chiffré, le chiffrage est de type WPA/WPA2.

    Le second réseau de la liste (SFR WiFi FON) est ouvert (non chiffré).

    2.5.2 Cas d'un réseau ouvert 

    Pour se connecter au réseau ouvert NEUF SFR :

    # iw --debug dev wlan0 connect "SFR WiFi FON"

    L'option --debug, facultative, permet de confirmer que la connexion s'est correctement déroulée. Dans le cas contraire, un message d'erreur apparaît en dernière ligne.

    2.5.3 Cas d'un réseau à "clé WEP"

    Ce type de chiffrage offre un niveau de sécurité très faible et ne devrait pas être utilisé. Pour se connecter, que la clé soit ascii ou héxadécimale, dans la commande suivante, remplacer mon_essid et ma_clé_WEP par leurs valeurs :

    # iw dev wlan0 connect "mon_essid" key 0:ma_clé_WEP

    2.5.4 Cas d'un réseau à "clé WPA ou WPA2"

    Installation

    Installer si ce n'est pas encore fait wpasupplicant

    # aptitude install wpasupplicant

    Fichier de configuration

    Créer un fichier de configuration wpa_supplicant.conf, de la forme :

    $ cat /etc/wpa_supplicant/wpa_supplicant.conf
    update_config=1
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    network={
    ssid="mon_essid"
    #psk="ceci est un exemple de passphrase WPA"
    psk=c0ea3cf625816dad27ed32b4d2fd4145119596af47c586af1a7ad61c3620927a
    }
    $ echo "update_config=1" > /etc/wpa_supplicant/wpa_supplicant.conf
    $ echo "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev" >> /etc/wpa_supplicant/wpa_supplicant.conf
    $ wpa_passphrase "mon_essid" "ceci est un exemple de passphrase WPA" >> /etc/wpa_supplicant/wpa_supplicant.conf
    

    Connexion

    Se connecter (en utilisant wpa_supplicant) :

    # wpa_supplicant -D wext,nl80211 -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

    État de la connexion

    La commande wpa_cli status permet de confirmer la connexion entre les modems wifi :

    # wpa_cli status
    Selected interface 'wlan0'
    bssid=b0:47:xx:xx:xx:xx
    freq=0
    ssid=FoxFi82
    id=0
    mode=station
    pairwise_cipher=CCMP
    group_cipher=CCMP
    key_mgmt=WPA2-PSK
    wpa_state=COMPLETED
    address=00:1b:xx:xx:xx:xx
    uuid=ebf66b6c-44c0-58ae-xxxx-xxxxxxxxxx

    Changement de réseau :

    Pour faire prendre en compte une nouvelle configuration du fichier wpa_supplicant.conf

    # wpa_cli reconfigure
    Selected interface 'wlan0'
    OK

    Fermeture de la connexion 

    # wpa_cli terminate

    2.6 - Vérifier la connexion

    Pour vérifier la connexion entre modems

    $ iw wlan0 info
    Interface wlan0
    ifindex 3
    wdev 0x1
    addr xxxxxxxxxxxxxxxxx
    ssid SFR WiFi FON
    type managed
    wiphy 0
    channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz

    ou bien

    # iw dev wlan0 link
    Connected to xxxxxxxxxxxx (on wlan0)
    SSID: SFR WiFi FON
    freq: 2412
    RX: 680158 bytes (8009 packets)
    TX: 4160 bytes (32 packets)
    signal: -72 dBm
    tx bitrate: 1.0 MBit/s

    bss flags: short-slot-time
    dtim period: 3
    beacon int: 100

    ou bien

    # iw dev wlan0 scan |grep -A8 associated
    BSS xxxxxxxxxxxxxx (on wlan0) -- associated
    TSF: 4736344346471 usec (54d, 19:39:04)
    freq: 2412
    beacon interval: 100 TUs
    capability: ESS ShortSlotTime (0x0401)
    signal: -71.00 dBm
    last seen: 0 ms ago
    Information elements from Probe Response frame:
    SSID: SFR WiFi FON

    3 - Configurer le réseau

    La suite de la configuration s'effectue comme pour une liaison Ethernet filaire : attributions d'adresse, de routes et d'adresses de serveurs. Dans ce qui suit, on prend l'exemple d'une configuration par DHCP.

    3.1 - Configuration par DHCP

    # dhclient wlan0
    $ ip route show dev wlan0
    default via 10.0.2.2 dev eth0 
    10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15 
    $ ip route show dev wlan0 |grep src | awk '{print $(NF-1) " " NF$NF;exit}'
    src 10.0.2.15
    $ ip route show dev wlan0 |grep via| awk '{print $2 " " $3;exit}'
    via 10.0.2.2
    $ ping 8.8.8.8

    3.2 - Hotspots

    Dans certains cas, hot spots en particulier, la connexion internet n'est possible qu'après authentification auprès du fournisseur d'accès, cette authentification s'effectuant sur une page web (portail) située sur le routeur. Lors d'une tentative de connexion internet, si l'on n'est pas redirigé automatiquement sur cette page, effectuer la connexion manuellement : 

    $ ip route
    default via 192.168.2.1 dev wlan0
    192.168.2.0/24 dev wlan0 proto kernel scope link src 192.168.2.75
    $ iceweasel 192.168.2.1