Configuration d'un PA wifi
Ressources/Sources
Matériel
- Clé USB Wifi avec Antenne 12Db (puce Realtec RTL8191SU) / Nom du driver : r8712u
- Conclusion : impossibilité de faire fonctionner cette clé wifi en tant que point d'accès (PA)
- Autre matériel qui devrait fonctionner :
- EDUP EP-N8531 - Chipset RT5370
Résumer de la manip
La majorité des manipulations ci-dessous nécessitent de passer en root : '' su - '' De quoi un point d'accès à besoin pour fonctionner :
- Informer le matériel de l'existence du PA (Broadcast SSID) ou autoriser les clients à se connecter
- Authentifier le client
- Assigner une IP au matériel du client
- 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 que la carte supporte le mode PA
- 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.
Commandes utiles
- 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 ''
Configuer le serveur DHCP
- 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;
}
Définir une adresse IP static à wlan0
- 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
Configurer le Point d'Accès
- 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
Configurer Network Address Translation
- É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 ''
Finaliser
- Redémarrer le réseau : '' ifup wlan0 ''
- Rédémarrer les services : '' systemctl restart hostapd isc-dhcp-server ''
Compiler hostapd
Si besoins, manip pour compiler Hostapd :
- Hostapd source : https://w1.fi/hostapd/
- '' apt-get install libnl-dev libssl-dev ''
- '' wget https://w1.fi/releases/hostapd-2.5.tar.gz ''
- '' tar xzvf hostapd-2.5.tar.gz ''
- '' cd hostapd-2.5/hostapd ''
- '' cp defconfig .config ''
- '' vi .config '' : modifier les options
- '' make ''
Commandes wifi utiles
- Voir la qualité du signal en continu :
- '' wavemon ''
- '' watch -n 1 cat /proc/net/wireless ''