======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 ''