Créer un point d'accès wifi avec hostapd.

14 Dec 2014 » {[{categoryPostCurrent}]}

Dans ce tutoriel, nous allons voir comment mettre en place un point d'accès wifi sous linux en utilisant un bridge réseau et une carte wifi supportant le mode master.

Pré-requis

Le matériel qui doit être à votre disposition pour mettre en oeuvre ce tutoriel est le suivant:

  • Une distribution linux de type debian
  • Une carte wifi USB supportant le mode master (dans ce cas nous utilisons la carte wifi USB TP-LINK TL-WN722N)

Mise en oeuvre

1ere étape: Installation et configuration du bridge

Avant d'aborder la mise en place et la configuration effective d'un bridge voyons tout d'abord ce que c'est: un bridge (ou pont en français) est une interface réseau "virtuelle" qui va nous permettre de rerouter le traffic vers une ou plusieurs autres interfaces.

  • Commençons par installer le nécessaire logiciel pour mettre en place notre bridge.

    sudo apt-get install bridge-utils
    
  • Une fois ce nécessaire installé, il nous faut configurer le bridge en éditant le fichier /etc/network/interfaces avec le contenu suivant:

    auto lo br0
    iface lo inet loopback
    
    allow-hotplug eth0
    iface eth0 inet manual
    
    allow-hotplug wlan0
    iface wlan0 inet manual
    
    # Bridge setup
    
    # for dhcp address
    iface br0 inet dhcp
    bridge_ports eth0 wlan0    
    

Cette configuration permet la création d'une interface br0 qui correspond au bridge. Si tout se passe bien c'est cette interface qui recevra l'IP. Dans notre cas,l'IP du bridge sera alors servi par un serveur DHCP.

Tel que configuré ici, les interfaces wlan0 (notre carte wifi) et eth0 (interface ethernet relié à internet) appartiennent au bridge br0 ce qui implique que tous les paquets arrivants sur br0 seront redistribués automatiquement sur wlan0 et eth0.

  • Sur les distributions de type debian (Ubuntu, etc.) pour rendre effective la modification du réseau à travers le fichier que nous venons d'éditer, il nous faut également modifier la configuration du service network-manager. Pour cela nous devons modifier le fichier /etcNetworkManager/NetworkManager.conf en ajustant son contenu avec la ligne ci-dessous:

    managed=true
    
  • puis, on relance network-manager avec la commande:

    sudo restart network-manager 
    

Dans le cas de la TP-LINK TL-WN722N, la création du bridge n'est pas directement fonctionnelle, il faut en plus saisir la commande sudo iw dev wlan1 set 4addr on. Naturellement, cette commande doit être scriptée afin d'être rejoué à chaque redémarrage.

  • Pour finir la configuration du bridge, il faut activer l'IP Forwarding entre les interfaces. Pour cela, on modifie le fichier /etc/sysctl.conf en y placant le contenu suivant:

    net.ipv4.ip_forward = 1
    
  • puis on recharge le contenu du fichier avec:

    sudo sysctl -p /etc/sysctl.conf
    

2e étape: Installation et configuration de hostapd

Une fois le bridge crée et activé, on passe à l'installation et la configuration de hostapd.

  • Pour installer hostapd:

    sudo apt-get install hostapd
    
  • une fois installé on configure hostapd en éditant le fichier /etc/default/hostapd en modifiant son contenu de la sorte:

    DAEMON_CONF="/etc/hostapd/hostapd.conf"
    
  • Ensuite, il nous faut passer à la modification du fichier de configuration /etc/hostapd/hostapd.conf mais avant de modifier ce fichier, nous allons en faire une copie.

    cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.default
    
  • Une fois cette copie faite, on édite enfin le fichier /etc/hostapd/hostapd.conf en y mettant le contenu suivant:

    interface=wlan0
    driver=nl80211
    
    # YOUR BRIDGE NAME
    bridge=br0
    
    # YOUR COUNTRY HERE
    country_code=FR
    ieee80211d=1
    
    # MODIFY YOUR SSID HERE
    ssid=My-own-AP
    
    # CHANGE MODE HERE IF NEEDED
    hw_mode=g
    
    # CHANGE CHANNEL EVENTUALLY
    channel=6
    
    wme_enabled=0
    macaddr_acl=0
    auth_algs=1
    
    # WE USE WPA2
    wpa=2
    
    # MODIFY YOUR PASSPHRASE HERE
    wpa_passphrase=monmdp
    
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
    

Naturellement, dans ce fichier il y a un minimum d'aménagement à faire:

  • Dans le champs interface il faut mettre le label de votre interface wifi. Dans le cas présent, il s'agit de l'interface wlan0.
  • Mettre le nom de votre point d'accès en modifiant la valeur du paramètre ssid (dans notre cas c'est My-own-AP)
  • Définir un mot de passe pour le réseau en modifiant le paramètre wpa_passphrase.

3e étape: on teste!

Pour tester le tout, nous allons dans un premier temps lancer hostapd en ligne de commande:

sudo hostapd /etc/hostapd/hostapd.conf

S'il n'y a pas d'erreur vous devrier voir apparaître dans vos réseau wifi un réseau nommé My-own-AP, et si vous devriez également pouvoir vous y connecter après avoir saisi le mot de passe monmdp

Conclusion

Dans ce tutoriel, nous avons balayer étape par étape la mise en place d'un point d'accès wifi protégé par un mot de passe en nous appuyant sur une configuration du réseau en mode bridge.

Je trouve personnellement que la mise en place du bridge, bien qu'elle permette une meilleur évolutivité de la configuration par la suite, est fastidieuse et également limitée quelquefois en fonction de notre matériel - nous avons typiquement vu que le bridge ne fonctionne pas directement sur un dongle wifi TP-LINK TL-WN722N; c'est pour ça que dans un prochain tutoriel je vous montrerais comment faire la même chose sans bridge, juste en jouant avec iptable.

Voir aussi...

comments powered by Disqus