Projet

Général

Profil

Brique vpn » Historique » Révision 20

Révision 19 (stephane.ligozat, 10/03/2019 17:10) → Révision 20/38 (stephane.ligozat, 10/03/2019 17:11)

# Atelier WIFI + VPN sur PI 

 Séance du samedi 9 mars 2019. 

 Il s'agit d'installer sur un raspberry pi un client VPN et un hotspot wifi. 

 Il a été impossible de se connecter aux 2 OLIMEX LIME2, cartes défectueuses ? 

 Cette séance très fructueuse se poursuivra samedi 23 mars. 

 Le système utilisé ce jour est raspbian mais il faudra plus tard essayer openwrt (https://fr.wikipedia.org/wiki/OpenWrt), solution parfaitement dédiée à l'objectif d'un PI offrant **uniquement** une connexion propre à l'internet, pour un foyer, une association ou une petite entreprise. 

 ## Installation du système 

 Télécharger le système raspbian dédié aux PIs : https://www.raspberrypi.org/downloads/ 

 

 ## Copier le système sur la carte SD 

 Copier l'image sur une carte SD si possible neuve ou bien formatée bas niveau (à expliquer).  

 Il est conseillé d'utiliser une carte de **class A1**. 

 Avant d'insérer la carte taper dans un terminal  

 ~~~ 
 ls /sys/block 
 ~~~ 

 Insérer la carte et la démonter :  

 ~~~ 
 sudo umount /chemin/du/point/de/montage/de/la/carte 
 ~~~ 

 Maintenant que la carte est insérée, retaper  

 ~~~ 
 ls /sys/block 
 ~~~ 

 En comparant avec le /sys/block d'avant l'insertion, on constate qu'un nouvel emplacement est apparu, c'est celui que la carte insérée occupe (exemple sdb) 

 Copier l'image 

 ~~~ 
 dd bs=4M if=/chemin/vers/2018-11-13-raspbian-stretch.img of=/dev/sdX conv=fsync 
 ~~~ 

 **if** est le chemin de l'image. 

 **of** est l'emplacement de carte SD : la lettre X doit être remplacée par A ou B ou...  

 ls /sys/block 

 Expliquer les arguments **bs** et **conv** 

 

 ## Trouver la PI sur le réseau 

 Ne pas brancher la PI et afficher la liste des IPS dispos sur le réseau  

 ~~~ 
 sudo arp-scan -l --interface wlp4s0 
 ~~~ 

 où wlp4s0 est votre interface wifi (si vous êtes connecté en wifi) 

 Brancher la PI et relancer la commande précédente. Normalement une nouvelle IP est apparue, c'est celle de votre PI. 

 Se connecter à la PI 

 ~~~ 
 ssh pi@<IP_DE_MON_PI> 
 ~~~ 

 ## Mise à jour du système 

 Changer le mot de passe de l'utilisateur PI 

 ~~~ 
 $ sudo apt upgrade 
 $ sudo apt update 
 ~~~ 

 ## Le réseau 

 Vérifier que l'interface wifi est disponible, dans cette documentation, elle s'appelle **wlan0**.  

 ~~~ 
 ifconfig 
 ~~~ 

 Source de cette documentation : 

 https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md 

 dnsmasq offre un service de nommage des machines du réseau interne. 
 hostapd le deamon de point d'accès wifi. 
 ~~~ 
 sudo apt-get install dnsmasq hostapd 
 ~~~ 

 Stoper ces deamons car leurs configurations n'est pas faites : 
 ~~~ 

 sudo systemctl stop dnsmasq 
 sudo systemctl stop hostapd 
 ~~~ 

 Redémarrer pour s'assurer qu'ils sont pris en charge par le kernel : 

 ~~~ 
 sudo reboot 
 ~~~ 

 ### Configurer une IP statique 

 Le PI doit avoir une IP statique affectée à l'interface wifi (wlan0) pour agir en tant que serveur. Le réseau utilisera la plage IPs 192.168.x.x donc le PI aura 192.168.0.1 comme IP fixe. 

 Éditer le fichier de conf de dhcpd :  

 ~~~ 
 sudo vi /etc/dhcpcd.conf 
 ~~~ 

 Au redémarrage de la machine hostapd ne part pas. Donc  

 ~~~ 
 sudo systemctl enable hostapd 
 ~~~ 
 Ajouter ceci à la fin du fichier : 

 ~~~ 
 interface wlan0 
     static ip_address=192.168.4.1/24 
     nohook wpa_supplicant 
 ~~~ 

 Reémarrer le deamon dhcpd : 

 ~~~ 
 sudo service dhcpcd restart 
 ~~~ 

 ### Configurer le serveur DHCP 

 Ce service est fourni par dnsmasq. Sauvegarder le fichier par défaut et en créer un vide. 

 ~~~ 
 sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig   
 sudo vi /etc/dnsmasq.conf 
 ~~~ 

 Y coller ces instructions qui affectent à l'interface wifi nommée wlan0 la plage d'adresses de 192.168.4.2 à 192.168.4.20 avec un bail de 24 heures. La documentation de dnsmasq offre de nombreuses autres options (http://www.thekelleys.org.uk/dnsmasq/doc.html) 

 ~~~ 
 interface=wlan0        # Use the require wireless interface - usually wlan0 
   dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h 
 ~~~ 

 ### Configurer le point d'accès WIFI 

 sudo vi /etc/hostapd/hostapd.conf 

 ~~~ 
 interface=wlan0 
 driver=nl80211 # ATTENTION VOTRE DRIVER WIFI PEUT ÊTRE DIFFÉRENT. COMMENT LE CONNAÎTRE ? 
 ssid=NameOfNetwork 
 hw_mode=g 
 channel=7 # CHOIX ARBITRAIRE ? (à expliquer) 
 wmm_enabled=0 # C'EST QUOI ? 
 macaddr_acl=0    # C'EST QUOI ? 
 auth_algs=1    # C'EST QUOI ? 
 ignore_broadcast_ssid=0 
 wpa=2 # POURQUOI 2 ? 
 wpa_passphrase=AardvarkBadgerHedgehog # MINIMUM 8 CARACTÈRES 
 wpa_key_mgmt=WPA-PSK 
 wpa_pairwise=TKIP 
 rsn_pairwise=CCMP 
 ~~~ 

 Maintenant il faut indiquer à hostapd où est son fichier de conf :  

 ~~~ 
 sudo vi /etc/default/hostapd 
 ~~~ 

 Chercher DAEMON_CONF et y ajouter le chemin vers le fichier édité juste avant. 

 ~~~ 
 DAEMON_CONF="/etc/hostapd/hostapd.conf" 
 ~~~ 

 Redémarrer dnsmasq et hostapd 

 ~~~ 
 sudo systemctl start hostapd 
 sudo systemctl start dnsmasq 
 ~~~ 

 ### Route et masquerade 

 L'IP masquerade permet aux ordinateurs d'un réseau privé n'ayant aucune adresse IP d'accéder à Internet via l'adresser IP unique d'une machine Linux. Ce sera y l'IP de l'interface WIFI de PI configurée plus haut (http://www.tldp.org/pub/Linux/docs/HOWTO/translations/fr/html-1page/Masquerading-Simple-HOWTO.html). 

 Ouvrir /etc/sysctl.conf et décommenter la ligne suivante : 

 ~~~ 
 net.ipv4.ip_forward=1 
 ~~~ 

 *Add a masquerade for outbound traffic on eth0:* Cette action s'est figée, Stéphane n'a pas pu aller plus loin (David oui...) 

 ~~~ 
 sudo iptables -t nat -A    POSTROUTING -o eth0 -j MASQUERADE 
 ~~~ 

 Enregistrement de la nouvelle règle iptables 

 sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" 

 Éditer /etc/rc.local et ajouter cette ligne juste avant "exit 0" pour installer es règles au démarrage : 

 ~~~ 
 iptables-restore < /etc/iptables.ipv4.nat 
 ~~~ 

 Redémarrer la PI, désormais un nouveau d'accès WIFI doit être disponible pour les postes connectés au réseau local. 



 ## le VPN 

 ## le par-feu