Projet

Général

Profil

Brique vpn » Historique » Version 16

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

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