Projet

Général

Profil

Brique vpn » Historique » Version 20

stephane.ligozat, 10/03/2019 17:11
Atelier pour configurer un raspberry comme "brique" mais avec comme seules fonctionnalités VPN et WIFI.

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