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 |