Outils du site

Que la vie serait belle si tout le monde doutait de tout, si personne n'était sûr de rien. On pourrait supprimer du dictionnaire les trois quarts des mots en \"iste\", fasciste et communiste, monarchiste et gauchiste, khomeyniste et papiste. [Pierre Desproges]

10-raspi:20-hotspot

Ceci est une ancienne révision du document !


HotSpot WiFi

hostap: host access point

Pourquoi ?

Quand des invités arrivent à la maison et qu'ils souhaitent accéder au Wifi, il faut leur donner votre mot de passe Wifi, ce qui parait assez gênant en terme de sécurité.

L'idée est donc de mettre a disposition un accès Wifi avec un mot de passe autre que celui du réseau privé.

Installation hostapd sur Pi 3

source: http://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/install-software

Cette procédure est valable pour un Raspberry Pi 3 dont on utilise l'antenne WiFi embarquée. Pour une autre version de Raspi, il faut utiliser un wifi USB dont on a un driver compatible Pi.

Installer hostapd et isc-dhcp-server

sudo apt-get update
sudo apt-get install -y hostapd isc-dhcp-server
...
Job for isc-dhcp-server.service failed. See 'systemctl status isc-dhcp-server.service' and 'journalctl -xn' for details.
invoke-rc.d: initscript isc-dhcp-server, action "start" failed.
...
sudo apt-get install iptables-persistent

Les erreurs affichées sont normales car le server DHCP n'est pas encore installé.

Installer iptable

sudo apt-get install -y iptables-persistent

Répondre 'yes' aux deux écrans d'installation.

Configurer le serveur DHCP

sudo nano /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;

# A la fin du fichier, ajouter les lignes suivantes :
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;
}

Configurer isc-dhcp-server

sudo nano /etc/default/isc-dhcp-server

# Aller à INTERFACES="" et completer avec "wlan0"
INTERFACES="wlan0"

Configurer wlan0

# Si wlan0 est actif on l'arrête :
sudo ifdown wlan0
# On peut exécuter la commande précédente même s'il n'est pas actif.

sudo nano /etc/network/interfaces
# Commenter la ligne 'auto wlan0' si elle existe et définir :
allow-hotplug wlan0
iface wlan0 inet static
  address 192.168.42.1
  netmask 255.255.255.0
  
# on configure l'IP fixe attribuée à wlan0 :
sudo ifconfig wlan0 192.168.42.1

Configurer Access Point

sudo nano /etc/hostapd/hostapd.conf
# Insérer le contenu ci-dessous:
interface=wlan0
driver=rtl871xdrv
ssid=Pi_AP
country_code=FR
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

# les éléménts suivants peuvent/doivent être modifiés :
# - driver : rtl871xdrv ou nl80211 ou autre chose
# - ssid : nom du réseau WiFi
# - wpa_passphrase : mot de passe
# - ignore_broadcast_ssid : mettre 1 pour masquer le réseau

Dire au Raspi où est la configuration hostapd

sudo nano /etc/default/hostapd

# activer la ligne DAEMON_CONF avec la valeur suivante
DAEMON_CONF="/etc/hostapd/hostapd.conf"

# faire pareil pour /etc/init.d/hostapd
sudo nano /etc/init.d/hostapd

DAEMON_CONF=/etc/hostapd/hostapd.conf

Configurer le NAT

sudo nano /etc/sysctl.conf
# Ajouter à la fin :
net.ipv4.ip_forward=1

# pour activer immédiatement :
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Configurer iptable

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

# Pour controler le contenu d'iptable :
sudo iptables -t nat -S
sudo iptables -S

# pour que la configuration iptable soit permanente:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

Test final

sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

# Si cela fonctionne on obtient : 
# Configuration file: /etc/hostapd/hostapd.conf
# Failed to create interface mon.wlan0: -95 (Operation not supported)
# wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE
# wlan0: Could not connect to kernel driver
# Using interface wlan0 with hwaddr b8:27:eb:5b:38:12 and ssid "jnet"
# wlan0: interface state COUNTRY_UPDATE->ENABLED
# wlan0: AP-ENABLED 

On reboote alors

sudo reboot

On démmare alors les services

sudo service hostapd start 
sudo service isc-dhcp-server star

J'arrive alors à me connecter au réseau Wifi mais pas à accéder ensuite à internet.

:!: Il faut supprimer le WPA-Supplicant pour que tout fonctionne :

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/

Ensuite … Ca marche !!!

Problèmes

En cas de problème on regarde ce qui se passe :

sudo tail -f /var/log/daemon.log 

sudo service hostapd status

sudo service isc-dhcp-server status

Automatisation

Quand on est sûr que tout fonctionne correctement, on peut automatiser le démarrage des services :

sudo update-rc.d hostapd enable 
sudo update-rc.d isc-dhcp-server enable

projet Pi-HotSpot

source: http://www.pihomeserver.fr/2016/09/15/transformer-raspberry-pi-hotspot-wi-fi-facilement-grace-a-script/

Le script installe une multitude de logiciels (nginx, mysql, ….). Il est dangereux d'exécuter un script dont on ne connait pas le contenu.

+ Problème de sécurité.

+ Galère pour désinstaller

A éviter.

Dernière modification : 2017/10/06 23:38