======Configuration d'un PA wifi======
==== Ressources/Sources ====
* https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software
* http://raspberry-at-home.com/hotspot-wifi-access-point/
* [[http://www.frandroid.com/comment-faire/241426_les-differentes-normes-wi-fi-802-11abgnac-quelles-differences-pratique|Différences entre les normes WIFI]]
==== Matériel ====
* Clé USB Wifi avec Antenne 12Db ([[http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=229&DownTypeID=3&GetDown=false&Downloads=true|puce Realtec RTL8191SU]]) / Nom du driver : //r8712u//
* [[http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=229|Infos détaillées sur RTL8191SU]]
* [[https://github.com/chunkeey/rtl8192su|Source rtl8192su mac80211 driver port]]
* Conclusion : impossibilité de faire fonctionner cette clé wifi en tant que point d'accès (PA)
* Autre matériel qui devrait fonctionner :
* [[https://www.amazon.fr/gp/product/B002SZEOLG/ref=ox_sc_act_title_1?ie=UTF8&psc=1&smid=A1X6FK5RDHNB96|TP-Link TL-WN722N]] - [[https://wikidevi.com/wiki/TP-LINK_TL-WN722N|Driver ath9k_htc]]
* [[https://www.amazon.fr/gp/product/B00BXWU7X4/ref=ox_sc_act_title_2?ie=UTF8&psc=1&smid=A2FQGRYZFH4UL2|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 ====
* Source : [[http://unix.stackexchange.com/questions/92727/how-can-i-tell-if-my-wifi-dongle-has-access-point-capabilities|How can I tell if my wifi dongle has access-point capabilities?]]
* 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 : , et
* 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=
ssid=
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=
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 :
* Source : https://wireless.wiki.kernel.org/en/users/Documentation/hostapd#Wireless_Interface
* 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 ''