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 queiw 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=“”
parDAEMON_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
tar xzvf hostapd-2.5.tar.gz
cd hostapd-2.5/hostapd
cp defconfig .config
vi .config
: modifier les optionsmake
Commandes wifi utiles
- Voir la qualité du signal en continu :
wavemon
watch -n 1 cat /proc/net/wireless