Transformer le Raspberry Pi en hot spot Wifi avec portail captif (1/2)

Pour une installation du hotspot en automatique, consultez l’article ici.

 

Si vous souhaitez partager votre connexion sans fil mais contrôler qui peut l’utiliser, vous pouvez mettre en place un portail captif qui ressemblera à ce que font SFR ou Free par exemple. Et bien sur le Raspberry Pi va pouvoir nous y aider !

Hotspot_WiFi

Nous allons donc commencer par installer et configurer un point d’accès

  • Installer les outils pour compiler et installer iw
    apt-get install gcc make libnl1 libnl-dev pkg-config
  • Télécharger iw
     wget https://www.kernel.org/pub/software/network/iw/iw-3.14.tar.gz
  • Décompresser et compiler iw version 3.14 (non ce n’est pas lié au Raspberry 😉 )
     tar zxvf iw-3.14.tar.gz
     cd iw-3.14
     make
  • Vous pouvez maintenant tester si votre clé Wifi supporte le mode Access Point
    Capture d’écran 2014-05-18 à 22.14.59Si vous avez « AP » (Access Point) dans les modes supportés, c’est gagné !

Installer le hotspot

  • Installer les différents paquets pour le point d’accès et le portail
     apt-get install hostapd nginx isc-dhcp-server iptables iptables-persistent
  • Configurer votre clé pour avoir une IP fixe sur votre nouveau réseau. J’ai choisi de définir un réseau sur le 192.168.10.0/24. Changez le contenu du fichier /etc/network/interfaces
    auto lo
    
    iface lo inet loopback
    iface eth0 inet dhcp
    
    allow-hotplug wlan0
    iface wlan0 inet static
     address 192.168.10.1
     netmask 255.255.255.0
     network 192.168.10.0
    
    iface default inet dhcp
  • Modifier le fichier /etc/default/hostapd. Je ne sais pas pourquoi le daemon n’est pas configuré correctement, vous devez ajouter la ligne suivante :
    DAEMON_CONF="/etc/hostapd/hostapd.conf"
  • Maintenant il faut créer ce fameux fichier /etc/hostapd/hostapd.conf. Utilisez les commentaires pour modifier les paramètres en fonction de votre besoin :
    # interface wlan du Wi-Fi
    interface=wlan0
    # nl80211 avec tous les drivers Linux mac80211
    driver=nl80211
    # Nom du spot Wi-Fi
    ssid=PiHomeServerAP
    # mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g)
    hw_mode=g
    # canal de fréquence Wi-Fi (1-14)
    channel=6
    # Wi-Fi ouvert, pas d'authentification !
    auth_algs=1
    # Beacon interval in kus (1.024 ms)
    beacon_int=100
    # DTIM (delivery trafic information message)
    dtim_period=2
    # Maximum number of stations allowed in station table
    max_num_sta=255
    # RTS/CTS threshold; 2347 = disabled (default)
    rts_threshold=2347
    # Fragmentation threshold; 2346 = disabled (default)
    fragm_threshold=2346
    
  • Vous pouvez maintenant démarrer le service hostapd :
    service hostapd start

    A ce stade votre réseau doit apparaitre dans la liste des point d’accès. Ici vous voyez bien PiHomeServerAP dans la liste des réseaux visibles.Capture d’écran 2014-05-20 à 22.14.56

  • Etape suivante : activer le serveur DHCP pour envoyer les informations aux périphériques qui se connectent à notre hotspot. Pour cela vous devez modifier le fichier /etc/dhcp/dhcpd.conf :
  • Ensuite il faut modifier le fichier /etc/default/isc-dhcp-server pour sélectionner l’interface sur laquelle ca va s’appliquer. Remplacer la dernière ligne :
    INTERFACES=""

    par :

    INTERFACES="wlan0"
  • Vous pouvez démarrer votre serveur DHCP
    service isc-dhcp-server start
  • Pour le moment, votre interface wifi n’est pas liée à votre interface ethernet. Du coup vous pouvez vous connecter mais vous n’aurez pas accès à internet. Pour ça il faut lier les deux. Commencez par activer l’IP forwarding vers votre interface ethernet en ajoutant dans /etc/sysctl.conf la ligne :
    net.ipv4.ip_forward=1
    

    Ca sera pris en compte au prochain boot. Pour ne pas devoir redémarrer vous pouvez exécuter la commande :

    sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
  • Faites le lien entre les deux interfaces :
     iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
     iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
     iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
  • Problème ça n’est pas sauvegardé. On va donc extraire la configuration, et demander son chargement à chaque démarrage.
    Sauvegardez la configuration

    service iptables-persistent save
  • Et enfin il faut activer les services pour les prochains reboot :
    update-rc.d hostapd enable
    update-rc.d isc-dhcp-server enable
  • Vous pouvez donc maintenant utiliser votre point d’accès ou pour valider l’installation faire un redémarrage

 

Vous avez maintenant un point d’accès sans fil opérationnel. Le prochain article va vous expliquer comment installer et configurer un portail captif pour contrôler qui peut utiliser votre réseau.

 

Sources :

Vous aimez cet article ? Supportez-moi sur Patreon!

Vous aimerez aussi...