Hotspot wifirst

De Wiki doc

Révision datée du 17 octobre 2017 à 11:02 par Ycharbi (discussion | contributions) (Page créée avec « Category:Raspberry_pi Cette article décrit la mise en place d'un routeur Wifi - Wifi + RJ45 relayant une connexion Wifirst avec authentification automatique au portai... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Cette article décrit la mise en place d'un routeur Wifi - Wifi + RJ45 relayant une connexion Wifirst avec authentification automatique au portail captif. L'objectif est de ne pas avoir à entrer les identifiant sur chaque appareil et pouvoir en connecter plusieurs à la fois, le tout, sans les déconnexions intempestives au point d'accès (car Wifirst déconnecte régulièrement les équipements au bout d'un certain temps, ce qui fait qu'on passe notre vie à retaper les identifiants).

Matériels utilisés

Dans cet exemple on utilise un Raspberry Pi 3 pour bénéficier de sa clé Wifi intégré, par ce que c'est pas cher, que ça ne fait pas de bruit et que ça ne consomme rien.

  • 1 Raspberry Pi 3 (Raspbian jessie)
  • Une clé wifi externe (une TP-Link tl-wn722n dans cet exemple)

Installation des paquets

apt install vim hostapd dnsmasq curl bridge-utils

Interfaces réseaux

Changement des noms d'interface

vim /etc/systemd/network/10-wifiwan0.link
[Match]
MACAddress=c0:4a:00:xx:xx:xx

[Link]
Name=wifiwan0
vim /etc/systemd/network/10-wifilan0.link
[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Link]
Name=wifilan0
vim /etc/systemd/network/10-ethlan0.link
[Match]
MACAddress=00:23:57:9c:14:20

[Link]
Name=ethlan0

Configuration IP

vim /etc/network/interfaces

  1. Ethernet intégré (LAN)

auto ethlan0 iface ethlan0 inet static address 192.168.68.254 netmask 255.255.255.0

  1. Wifi intégré (LAN)

auto wifilan0 iface wifilan0 inet static

       address 192.168.67.254
       netmask 255.255.255.0
  1. Wifi externe (WAN)

auto wifiwan0 iface wifiwan0 inet dhcp

       wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
       up iptables -t nat -A POSTROUTING -j MASQUERADE

vim /etc/wpa_supplicant/wpa_supplicant.conf

country=FR ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1

iap_scan=1

network={

   ssid="Wifirst BA 105"
   key_mgmt=NONE

}

vim /etc/hostapd/hostapd.conf

  1. Contenu de /etc/hostapd/hostapd.conf
  2. 1. Parametres de l'interface d'écoute

interface=wifilan0 driver=nl80211

  1. 2. Parametres du démon hostapd

ctrl_interface=/var/run/hostapd ctrl_interface_group=0

  1. 3. Configuration du réseau Wifi

ssid=Raspi channel=6 hw_mode=g ieee80211n=1

  1. 4. Sécurité du réseau Wifi

wpa=2 wpa_passphrase=TestOsterone wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP

  1. 5. Logs

logger_syslog=-1 logger_syslog_level=4 logger_stdout=-1 logger_stdout_level=2

  1. 6. Autres parametres

beacon_int=100 auth_algs=3 wmm_enabled=1

chmod +x /usr/bin/wifirst_autoconnect

hostapd -dd /etc/hostapd/hostapd.conf

vim /etc/default/hostapd

DAEMON_CONF="/etc/hostapd/hostapd.conf" RUN_DAEMON=yes

vim /usr/bin/wifirst_autoconnect

  1. !/bin/bash

sleep 10

  1. Indentifiants

login="w/6588593@wifirst.net" password="qrtrcnjqk6xp7gwkmkbd" url="https://duckduckgo.com"

curl -d username="$login" -d password="$password" -d qos_class="0" -d success_url="$url" -d error_url="$url" -d accept="submit" "https://wireless.wifirst.net:8090/goform/HtmlLoginRequest"

  1. Execution du script à l'optention de l'adresse IP DHCP (avec un post-up dans le fichier interfaces, ça execute le script après le up mais avant le bail DHCP, ce qui fait que ça ne fonctionne pas.)

ln -s /usr/bin/wifirst_autoconnect /etc/dhcp/dhclient-enter-hooks.d/

vim /etc/dnsmasq.conf

  1. Partie commune

domain-needed expand-hosts bogus-priv interface=wifilan0,ethlan0

  1. Partie DHCP

dhcp-range=wifilan0,192.168.67.1,192.168.67.250,255.255.255.0,12h dhcp-range=ethlan0,192.168.68.1,192.168.68.250,255.255.255.0,12h

  1. Pour distribuer une IP statique
  2. dhcp-host=00:40:F4:6C:43:AF,machinefixe,192.168.1.10
  1. Partie cache DNS

cache-size=256

  1. debug wpa supplicant si ça fonctionne pas

wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant.conf -iwifiwan0 -f /tmp/wpa.log

vim /etc/sysctl.conf

net.ipv4.ip_forward=1

  1. Voir qui est connecté (fonctionne)

iw dev wlan0 station dump arp -a

  1. Source : https://unix.stackexchange.com/questions/40087/is-there-a-way-to-list-the-connected-devices-on-my-wifi-access-point
  1. Déconnecter qlq'un (à tester)

hostapd_cli deauthenticate 00:5e:3d:38:fe:ab

  1. Source : https://stackoverflow.com/questions/19400117/disconnect-user-on-hostap#19426711