Projet

Général

Profil

Brique vpn » Historique » Version 21

stephane.ligozat, 10/03/2019 17:12

1 16 stephane.ligozat
# Atelier WIFI + VPN sur PI
2 1 stephane.ligozat
3 4 stephane.ligozat
Séance du samedi 9 mars 2019.
4
5 1 stephane.ligozat
Il s'agit d'installer sur un raspberry pi un client VPN et un hotspot wifi.
6
7
Il a été impossible de se connecter aux 2 OLIMEX LIME2, cartes défectueuses ?
8
9 13 stephane.ligozat
Cette séance très fructueuse se poursuivra samedi 23 mars.
10 11 stephane.ligozat
11 17 stephane.ligozat
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.
12 11 stephane.ligozat
13 1 stephane.ligozat
## Installation du système
14
15 15 stephane.ligozat
Télécharger le système raspbian dédié aux PIs : https://www.raspberrypi.org/downloads/
16 1 stephane.ligozat
17 15 stephane.ligozat
## Copier le système sur la carte SD
18
19 14 stephane.ligozat
Copier l'image sur une carte SD si possible neuve ou bien formatée bas niveau (à expliquer). 
20
21
Il est conseillé d'utiliser une carte de **class A1**.
22 1 stephane.ligozat
23 18 stephane.ligozat
Avant d'insérer la carte taper dans un terminal 
24
25
~~~
26
ls /sys/block
27
~~~
28
29 15 stephane.ligozat
Insérer la carte et la démonter : 
30 1 stephane.ligozat
31 15 stephane.ligozat
~~~
32 1 stephane.ligozat
sudo umount /chemin/du/point/de/montage/de/la/carte
33 15 stephane.ligozat
~~~
34 1 stephane.ligozat
35 18 stephane.ligozat
Maintenant que la carte est insérée, retaper 
36 15 stephane.ligozat
37 1 stephane.ligozat
~~~
38 18 stephane.ligozat
ls /sys/block
39
~~~
40
41 19 stephane.ligozat
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)
42 18 stephane.ligozat
43
Copier l'image
44
45
~~~
46 15 stephane.ligozat
dd bs=4M if=/chemin/vers/2018-11-13-raspbian-stretch.img of=/dev/sdX conv=fsync
47
~~~
48
49 1 stephane.ligozat
**if** est le chemin de l'image.
50
51 18 stephane.ligozat
**of** est l'emplacement de carte SD : la lettre X doit être remplacée par A ou B ou... 
52
53 15 stephane.ligozat
54
Expliquer les arguments **bs** et **conv**
55 2 stephane.ligozat
56
## Trouver la PI sur le réseau
57
58
Ne pas brancher la PI et afficher la liste des IPS dispos sur le réseau 
59
60
~~~
61
sudo arp-scan -l --interface wlp4s0
62
~~~
63
64
où wlp4s0 est votre interface wifi (si vous êtes connecté en wifi)
65 1 stephane.ligozat
66
Brancher la PI et relancer la commande précédente. Normalement une nouvelle IP est apparue, c'est celle de votre PI.
67 3 stephane.ligozat
68
Se connecter à la PI
69
70
~~~
71
ssh pi@<IP_DE_MON_PI>
72
~~~
73
74
## Mise à jour du système
75
76
Changer le mot de passe de l'utilisateur PI
77
78
~~~
79
$ sudo apt upgrade
80
$ sudo apt update
81
~~~
82 4 stephane.ligozat
83
## Le réseau
84
85 9 stephane.ligozat
Vérifier que l'interface wifi est disponible, dans cette documentation, elle s'appelle **wlan0**. 
86
87
~~~
88
ifconfig
89
~~~
90
91 7 stephane.ligozat
Source de cette documentation :
92
93 5 stephane.ligozat
https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md
94 7 stephane.ligozat
95 8 stephane.ligozat
dnsmasq offre un service de nommage des machines du réseau interne.
96
hostapd le deamon de point d'accès wifi.
97 7 stephane.ligozat
~~~
98 1 stephane.ligozat
sudo apt-get install dnsmasq hostapd
99 8 stephane.ligozat
~~~
100
101
Stoper ces deamons car leurs configurations n'est pas faites :
102
~~~
103
104
sudo systemctl stop dnsmasq
105
sudo systemctl stop hostapd
106
~~~
107
108
Redémarrer pour s'assurer qu'ils sont pris en charge par le kernel :
109
110
~~~
111
sudo reboot
112
~~~
113
114
### Configurer une IP statique
115
116
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.
117
118
Éditer le fichier de conf de dhcpd : 
119
120
~~~
121
sudo vi /etc/dhcpcd.conf
122 7 stephane.ligozat
~~~
123 4 stephane.ligozat
124 6 stephane.ligozat
Au redémarrage de la machine hostapd ne part pas. Donc 
125
126
~~~
127
sudo systemctl enable hostapd
128
~~~
129 9 stephane.ligozat
Ajouter ceci à la fin du fichier :
130 6 stephane.ligozat
131 9 stephane.ligozat
~~~
132
interface wlan0
133
    static ip_address=192.168.4.1/24
134
    nohook wpa_supplicant
135
~~~
136 6 stephane.ligozat
137 9 stephane.ligozat
Reémarrer le deamon dhcpd :
138 1 stephane.ligozat
139 9 stephane.ligozat
~~~
140
sudo service dhcpcd restart
141
~~~
142
143
### Configurer le serveur DHCP
144
145
Ce service est fourni par dnsmasq. Sauvegarder le fichier par défaut et en créer un vide.
146
147
~~~
148
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig  
149
sudo vi /etc/dnsmasq.conf
150
~~~
151
152
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)
153
154
~~~
155
interface=wlan0      # Use the require wireless interface - usually wlan0
156
  dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
157
~~~
158
159
### Configurer le point d'accès WIFI
160
161
sudo vi /etc/hostapd/hostapd.conf
162
163
~~~
164
interface=wlan0
165 10 stephane.ligozat
driver=nl80211 # ATTENTION VOTRE DRIVER WIFI PEUT ÊTRE DIFFÉRENT. COMMENT LE CONNAÎTRE ?
166 9 stephane.ligozat
ssid=NameOfNetwork
167 10 stephane.ligozat
hw_mode=g
168 9 stephane.ligozat
channel=7 # CHOIX ARBITRAIRE ? (à expliquer)
169
wmm_enabled=0 # C'EST QUOI ?
170
macaddr_acl=0  # C'EST QUOI ?
171
auth_algs=1  # C'EST QUOI ?
172
ignore_broadcast_ssid=0
173
wpa=2 # POURQUOI 2 ?
174
wpa_passphrase=AardvarkBadgerHedgehog # MINIMUM 8 CARACTÈRES
175
wpa_key_mgmt=WPA-PSK
176
wpa_pairwise=TKIP
177
rsn_pairwise=CCMP
178 1 stephane.ligozat
~~~
179
180 10 stephane.ligozat
Maintenant il faut indiquer à hostapd où est son fichier de conf : 
181
182
~~~
183
sudo vi /etc/default/hostapd
184
~~~
185
186
Chercher DAEMON_CONF et y ajouter le chemin vers le fichier édité juste avant.
187
188
~~~
189
DAEMON_CONF="/etc/hostapd/hostapd.conf"
190
~~~
191
192
Redémarrer dnsmasq et hostapd
193
194
~~~
195
sudo systemctl start hostapd
196
sudo systemctl start dnsmasq
197
~~~
198
199
### Route et masquerade
200
201
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).
202
203
Ouvrir /etc/sysctl.conf et décommenter la ligne suivante :
204
205
~~~
206
net.ipv4.ip_forward=1
207
~~~
208
209
*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...)
210
211
~~~
212
sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE
213
~~~
214
215
Enregistrement de la nouvelle règle iptables
216
217
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
218
219
Éditer /etc/rc.local et ajouter cette ligne juste avant "exit 0" pour installer es règles au démarrage :
220
221
~~~
222
iptables-restore < /etc/iptables.ipv4.nat
223
~~~
224
225
Redémarrer la PI, désormais un nouveau d'accès WIFI doit être disponible pour les postes connectés au réseau local.
226
227
228
229 1 stephane.ligozat
## le VPN
230 10 stephane.ligozat
231
## le par-feu