rpi:config:wifi-pa

Configuration d'un PA wifi

La majorité des manipulations ci-dessous nécessitent de passer en root : su - De quoi un point d'accès à besoin pour fonctionner :

  1. Informer le matériel de l'existence du PA (Broadcast SSID) ou autoriser les clients à se connecter
  2. Authentifier le client
  3. Assigner une IP au matériel du client
  4. Router les paquets vers le réseau de “sortie” et inversement

Afin de gérer tout cela, le Raspberry PI à besoin de :

  • hostapd – Host Access Point Daemon – qui s'occupera du point 1.
  • wpa-supplicant – outil responsable de l'authentification WPA pour le point 2. (Déjà installé)
  • isc-dhcp-server – qui s'occupera du point 3.
  • ip-tables – qui s'occupera du point 4. (Déjà installé)
  • Vérifier le mode actuel avec : iwconfig
    • Si iwconfig ne fonctionne pas, mais que iw list fonctionne c'est que le driver est récent et utilise l'interface nl80211.
  • Si le mode affiché vaut auto, tenter de passer en master avec : iwconfig wlan0 mode master
    • Si le mode passe à master, c'est que la carte permet de réaliser un PA.
  • Voir la config réseau : ifconfig
  • Voir les infos wifi : iwconfig
  • Pour trouver le nom du pilote du Wifi : readlink /sys/class/net/wlan0/device/driver
  • Installer les paquets suivant : apt-get install hostapd isc-dhcp-server
  • Éditer le fichier de conf du serveur DHCP : vi /etc/dhcp/dhcpd.conf
    • Commenter les lignes :
      • #option domain-name “example.org”;
      • #option domain-name-servers ns1.example.org, ns2.example.org;
    • Décommenter la ligne : authoritative;
    • Ajouter le contenu ci-dessous en fin de fichier
  • Éditer le fichier : vi /etc/default/isc-dhcp-server
    • Modifier l'option INTERFACES comme suit : INTERFACES=“wlan0”

Définition du PA dans le fichier /etc/dhcp/dhcpd.conf :

    subnet 192.168.42.0 netmask 255.255.255.0 {
    	range 192.168.42.10 192.168.42.50;
    	option broadcast-address 192.168.42.255;
    	option routers 192.168.42.1;
    	default-lease-time 600;
    	max-lease-time 7200;
    	option domain-name "local";
    	option domain-name-servers 8.8.8.8, 8.8.4.4;
    }
  • Arrêter wlan0 : ifdown wlan0
  • Éditer le fichier interfaces : vi /etc/network/interfaces
    • Laisser la ligne : allow-hotplug wlan0
    • Commenter toutes les lignes correspondant à iface wlan0
    • Ajouter les lignes ci-dessous
  • Assigner une adresse IP static à wlan0 : ifconfig wlan0 192.168.42.1

Contenu à ajouter à /etc/network/interfaces :

iface wlan0 inet static
      address 192.168.42.1
      netmask 255.255.255.0
  • Création d'un point d'accès avec mot de passe :
    • Éditer le fichier : vi /etc/hostapd/hostapd.conf
    • Ajouter le contenu ci-dessous en remplaçant par des valeurs de votre choix : <nom-du-pilote>, <nom-du-ssid> et <mot-de-passe>
    • Infos sur les paramètres
      • hw_mode : a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g
      • channel : canal de fréquence Wi-Fi (1-14)
      • macaddr_acl : authentification basée sur l'adresse MAC : 0 = accepté sauf si dans liste des refus, 1 = refusé sauf si dans liste des acceptés, 2 = utilisation d'un serveur RADIUS
  • Indiquer le fichier de config :
    • Éditer le fichier : vi /etc/default/hostapd
      • Remplacer la ligne #DAEMON_CONF=“” par DAEMON_CONF=“/etc/hostapd/hostapd.conf”

Contenu du fichier /etc/hostapd/hostapd.conf :

    interface=wlan0
    driver=<nom-du-pilote>
    ssid=<nom-du-ssid>
    hw_mode=g
    channel=6
    macaddr_acl=0
    auth_algs=1
    ignore_broadcast_ssid=0
    wpa=2
    wpa_passphrase=<mot-de-passe>
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP
  • Éditer le fichier : vi /etc/sysctl.conf
    • Ajouter à la fin du fichier : net.ipv4.ip_forward=1
  • Lancer : sh -c “echo 1 > /proc/sys/net/ipv4/ip_forward”
  • Créer le transfert d'adresse entre eht0 et wlan0 :
    • 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
  • Vérifier les règles avec :
    • iptables -t nat -S
    • iptables -S
  • Pour enregistrer ces modifications et qu'elles soient prise en compte au redémarrage : sh -c “iptables-save > /etc/iptables.ipv4.nat”
  • Editer : vi /etc/network/interfaces
    • Ajouter à la fin du fichier : iptables-restore < /etc/iptables.ipv4.nat
  • Redémarrer le réseau : ifup wlan0
  • Rédémarrer les services : systemctl restart hostapd isc-dhcp-server

Si besoins, manip pour compiler Hostapd :

  • Voir la qualité du signal en continu :
    • wavemon
    • watch -n 1 cat /proc/net/wireless
  • rpi/config/wifi-pa.txt
  • Dernière modification : 2020/02/25 19:34
  • de jpmilcent