Brique vpn » Historique » Version 30
david.daugareil, 10/03/2019 17:52
1 | 23 | david.daugareil | # Brique vpn |
---|---|---|---|
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 | 11 | stephane.ligozat | |
8 | 17 | stephane.ligozat | ## Installation du système |
9 | 11 | stephane.ligozat | |
10 | 23 | david.daugareil | Télécharger le zip contenant l'image de Raspbian Lite : https://www.raspberrypi.org/downloads/raspbian/ |
11 | 1 | stephane.ligozat | |
12 | 23 | david.daugareil | Extraire l'image avec p7zip par exemple : |
13 | 1 | stephane.ligozat | |
14 | 14 | stephane.ligozat | ~~~ |
15 | 23 | david.daugareil | 7z x nom-de-l-image-raspbian-stretch-lite.zip |
16 | 18 | stephane.ligozat | ~~~ |
17 | |||
18 | 23 | david.daugareil | Identifier le périphérique correspondant à sa carte micro SD : |
19 | 18 | stephane.ligozat | |
20 | 15 | stephane.ligozat | ~~~ |
21 | 23 | david.daugareil | sudo fdisk -l |
22 | 1 | stephane.ligozat | ~~~ |
23 | 23 | david.daugareil | insérer la carte micro SD et refaire la même manip, le device supplémentaire est la carte micro SD. |
24 | 18 | stephane.ligozat | |
25 | 23 | david.daugareil | Copier l'image sur la micro SD (X est la lettre du device de l'étape précédente) : |
26 | 1 | stephane.ligozat | |
27 | 18 | stephane.ligozat | ~~~ |
28 | 23 | david.daugareil | sudo dd bs=4M if=/chemin-de-l-image/nom-de-l-image-raspbian-stretch.img of=/dev/sdX conv=fsync status=progress |
29 | 18 | stephane.ligozat | ~~~ |
30 | 1 | stephane.ligozat | |
31 | 23 | david.daugareil | /!\ créer un fichier vide ssh à la racine de la partition boot de la carte SD pour activer le démon SSH sur le pi |
32 | 1 | stephane.ligozat | |
33 | 15 | stephane.ligozat | |
34 | ## Trouver la PI sur le réseau |
||
35 | 1 | stephane.ligozat | |
36 | Ne pas brancher la PI et afficher la liste des IPS dispos sur le réseau |
||
37 | 18 | stephane.ligozat | |
38 | 1 | stephane.ligozat | ~~~ |
39 | 15 | stephane.ligozat | sudo arp-scan -l --interface wlp4s0 |
40 | 2 | stephane.ligozat | ~~~ |
41 | |||
42 | 23 | david.daugareil | ici, wlp4s0 est le nom de l'interface WiFi |
43 | 1 | stephane.ligozat | |
44 | 23 | david.daugareil | Autre méthode possible avec nmap (à adapter en fonction de votre IP privée) : |
45 | 2 | stephane.ligozat | |
46 | ~~~ |
||
47 | 23 | david.daugareil | nmap -sP 192.168.1.* |
48 | 1 | stephane.ligozat | ~~~ |
49 | 3 | stephane.ligozat | |
50 | 23 | david.daugareil | Brancher la PI et relancer la commande précédente de votre choix. Normalement une nouvelle IP est apparue, c'est celle de votre PI. |
51 | 3 | stephane.ligozat | |
52 | 23 | david.daugareil | Se connecter au PI : |
53 | 3 | stephane.ligozat | |
54 | ~~~ |
||
55 | 23 | david.daugareil | ssh pi@<IP_DE_MON_PI> |
56 | 3 | stephane.ligozat | ~~~ |
57 | 1 | stephane.ligozat | |
58 | 23 | david.daugareil | Mot de passe par défaut : raspberry |
59 | 3 | stephane.ligozat | |
60 | 23 | david.daugareil | ## Première connexion au PI |
61 | 1 | stephane.ligozat | |
62 | 23 | david.daugareil | Changer le mot de passe par défaut avec la commande : |
63 | |||
64 | 1 | stephane.ligozat | ~~~ |
65 | 23 | david.daugareil | passwd |
66 | 4 | stephane.ligozat | ~~~ |
67 | 1 | stephane.ligozat | |
68 | 23 | david.daugareil | Mettre à jour du système |
69 | 9 | stephane.ligozat | |
70 | 1 | stephane.ligozat | ~~~ |
71 | 23 | david.daugareil | sudo apt update && sudo apt upgrade |
72 | 1 | stephane.ligozat | ~~~ |
73 | 9 | stephane.ligozat | |
74 | 23 | david.daugareil | Installer openvpn, hostapd et dnsmasq |
75 | 9 | stephane.ligozat | |
76 | 1 | stephane.ligozat | ~~~ |
77 | 23 | david.daugareil | sudo apt install openvpn hostapd dnsmasq |
78 | 1 | stephane.ligozat | ~~~ |
79 | |||
80 | 23 | david.daugareil | Redémarrer le PI |
81 | 1 | stephane.ligozat | |
82 | ~~~ |
||
83 | sudo reboot |
||
84 | ~~~ |
||
85 | |||
86 | 23 | david.daugareil | ## Configuration du point d'accès |
87 | 8 | stephane.ligozat | |
88 | 23 | david.daugareil | Mise en place d'un IP statique sur l'interface WiFi, éditer le fichier dhcpcd.conf avec vi, vim, nano...selon vos préférences : |
89 | 1 | stephane.ligozat | |
90 | 7 | stephane.ligozat | ~~~ |
91 | 1 | stephane.ligozat | sudo vi /etc/dhcpcd.conf |
92 | 8 | stephane.ligozat | ~~~ |
93 | |||
94 | 23 | david.daugareil | A la fin du fichier ajouter, avec l'IP privée de votre choix (ici 172.16.10.1) : |
95 | 1 | stephane.ligozat | |
96 | 8 | stephane.ligozat | ~~~ |
97 | interface wlan0 |
||
98 | 23 | david.daugareil | static ip_address=172.16.10.1/24 |
99 | 1 | stephane.ligozat | nohook wpa_supplicant |
100 | 8 | stephane.ligozat | ~~~ |
101 | |||
102 | 23 | david.daugareil | Remarque : dhcpcd exécute tous les scripts du répertoire '/lib/dhcpcd/dhcpcd-hooks' dans l'ordre croissant. L'option **nohook wpa_supplicant** empèche le script du même nom de s'exécuter et à wpa_supplicant de prendre la main sur le WiFi. |
103 | 1 | stephane.ligozat | |
104 | 23 | david.daugareil | Enregistrer et redémarrer le démon dhcpcd |
105 | |||
106 | 1 | stephane.ligozat | ~~~ |
107 | sudo service dhcpcd restart |
||
108 | 8 | stephane.ligozat | ~~~ |
109 | 7 | stephane.ligozat | |
110 | 23 | david.daugareil | Le message suivant s'affiche : Warning: dhcpcd.service changed on disk. Run 'systemctl daemon-reload' to reload units. |
111 | 6 | stephane.ligozat | |
112 | 23 | david.daugareil | Faire : |
113 | 6 | stephane.ligozat | |
114 | 9 | stephane.ligozat | ~~~ |
115 | 23 | david.daugareil | sudo systemctl daemon-reload |
116 | sudo service dhcpcd restart |
||
117 | ~~~ |
||
118 | |||
119 | Configuration du serveur DHCP, editer le fichier dnsmasq.conf |
||
120 | |||
121 | ~~~ |
||
122 | sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig |
||
123 | sudo touch /etc/dnsmasq.conf |
||
124 | 9 | stephane.ligozat | sudo vi /etc/dnsmasq.conf |
125 | ~~~ |
||
126 | |||
127 | 23 | david.daugareil | Et y mettre : |
128 | 9 | stephane.ligozat | |
129 | ~~~ |
||
130 | 23 | david.daugareil | interface=wlan0 # Interface WiFi - habituellement wlan0 |
131 | dhcp-range=172.16.10.100,172.16.10.120,255.255.255.0,24h |
||
132 | 9 | stephane.ligozat | ~~~ |
133 | |||
134 | 23 | david.daugareil | Ici pour wlan0, nous allons fournir des adresses IP entre 172.16.10.100 et 172.16.10.120, avec un temps de location de 24 heures. |
135 | 9 | stephane.ligozat | |
136 | 23 | david.daugareil | Configuration de hostapd : |
137 | |||
138 | ~~~ |
||
139 | sudo touch /etc/hostapd/hostapd.conf |
||
140 | 9 | stephane.ligozat | sudo vi /etc/hostapd/hostapd.conf |
141 | 23 | david.daugareil | ~~~ |
142 | 9 | stephane.ligozat | |
143 | 23 | david.daugareil | Y coller : |
144 | |||
145 | 9 | stephane.ligozat | ~~~ |
146 | interface=wlan0 |
||
147 | 23 | david.daugareil | driver=nl80211 |
148 | ssid=SonicLeHerisson |
||
149 | 10 | stephane.ligozat | hw_mode=g |
150 | 23 | david.daugareil | channel=6 |
151 | ieee80211d=1 |
||
152 | country_code=FR |
||
153 | 10 | stephane.ligozat | ignore_broadcast_ssid=0 |
154 | 23 | david.daugareil | wmm_enabled=0 |
155 | macaddr_acl=0 |
||
156 | wpa_passphrase=lemotdepassedeouf |
||
157 | auth_algs=1 |
||
158 | wpa=2 |
||
159 | 10 | stephane.ligozat | wpa_key_mgmt=WPA-PSK |
160 | rsn_pairwise=CCMP |
||
161 | ~~~ |
||
162 | |||
163 | 24 | david.daugareil | Je mets le détail ici car hostapd n'aime pas trop les commentaires dans le fichier de conf : |
164 | 29 | david.daugareil | - interface=wlan0 # l'interface utilisée par l'AP |
165 | - driver=nl80211 # nl80211 avec tous les drivers Linux mac80211 => https://wireless.wiki.kernel.org/en/users/drivers |
||
166 | - ssid=SonicLeHerisson # petit nom du hotspot |
||
167 | - hw_mode=g # mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g) |
||
168 | - channel=6 # le canal utilisé |
||
169 | - ieee80211d=1 # limiter les fréquences utilisées à celles autorisées dans le pays |
||
170 | - country_code=FR # l'indicatif du pays |
||
171 | - ignore_broadcast_ssid=0 # envoyer les SSID vides dans les balises et ignorer les trames de requête de sonde qui ne le font pas |
||
172 | - wmm_enabled=0 # pas de QoS |
||
173 | - macaddr_acl=0 # pas d'authentification basée sur l'adresse MAC de la station |
||
174 | - wpa_passphrase=lemotdepassedeouf # la phrase de passe |
||
175 | - # WPA2 Personnel, AES |
||
176 | - auth_algs=1 |
||
177 | - wpa=2 |
||
178 | - wpa_key_mgmt=WPA-PSK |
||
179 | - rsn_pairwise=CCMP |
||
180 | 24 | david.daugareil | |
181 | 23 | david.daugareil | Puis éditer '/etc/default/hostapd' pour modifier la ligne DAEMON_CONF : |
182 | 10 | stephane.ligozat | |
183 | ~~~ |
||
184 | sudo vi /etc/default/hostapd |
||
185 | DAEMON_CONF="/etc/hostapd/hostapd.conf" |
||
186 | ~~~ |
||
187 | |||
188 | 23 | david.daugareil | Et on démarre/redémarre tout ce beau monde fraîchement configuré : |
189 | 10 | stephane.ligozat | |
190 | ~~~ |
||
191 | sudo systemctl start hostapd |
||
192 | ~~~ |
||
193 | |||
194 | 23 | david.daugareil | Le message suivant s'affiche : Failed to start hostapd.service: Unit hostapd.service is masked. |
195 | 10 | stephane.ligozat | |
196 | 23 | david.daugareil | Continuer : |
197 | 10 | stephane.ligozat | |
198 | ~~~ |
||
199 | 23 | david.daugareil | sudo systemctl unmask hostapd |
200 | sudo systemctl start hostapd |
||
201 | sudo systemctl restart dnsmasq |
||
202 | 10 | stephane.ligozat | ~~~ |
203 | |||
204 | 23 | david.daugareil | Remarque : A partir de maintenant, il est possible de se connecter sur le hotspot qui doit maintenant être visible, il n'y a pas encore d'accès au NET, c'est normal. |
205 | 10 | stephane.ligozat | |
206 | 23 | david.daugareil | Activer le démon hostapd au démarrage et redémarrer pour vérifier si tout ce qui a était fait jusqu'à présent persiste : |
207 | 10 | stephane.ligozat | |
208 | ~~~ |
||
209 | 23 | david.daugareil | sudo systemctl enable hostapd |
210 | sudo reboot |
||
211 | 10 | stephane.ligozat | ~~~ |
212 | |||
213 | 25 | david.daugareil | ## le VPN |
214 | 1 | stephane.ligozat | |
215 | 25 | david.daugareil | Récupérer le fichier de configuration du VPN d'Aquilenet et le copier dans /etc/openvpn avec l'extension *.conf |
216 | 1 | stephane.ligozat | |
217 | 25 | david.daugareil | ~~~ |
218 | scp /chemin-vers-le-fichier-de-conf/aqn.ovpn pi@<IP-DU-PI>:/tmp |
||
219 | ~~~ |
||
220 | |||
221 | ~~~ |
||
222 | sudo mv /tmp/aqn.ovpn /etc/openvpn/aqn.conf |
||
223 | ~~~ |
||
224 | |||
225 | Créer un fichier nommé secret qui contiendra le loggin et mdp du VPN : |
||
226 | |||
227 | ~~~ |
||
228 | cd /etc/openvpn && sudo touch secret |
||
229 | sudo chmod 600 secret |
||
230 | ~~~ |
||
231 | |||
232 | L'éditer pour y mettre loggin et mdp : |
||
233 | |||
234 | ~~~ |
||
235 | sudo vi secret |
||
236 | ~~~ |
||
237 | |||
238 | ~~~ |
||
239 | loggin-du-vpn |
||
240 | mot-de-passe-du-vpn |
||
241 | ~~~ |
||
242 | 26 | david.daugareil | |
243 | Tester la bon fonctionnement du VPN : |
||
244 | 1 | stephane.ligozat | |
245 | ~~~ |
||
246 | sudo systemctl start openvpn@aqn |
||
247 | sudo systemctl status openvpn |
||
248 | ifconfig |
||
249 | traceroute www.debian.org |
||
250 | ~~~ |
||
251 | |||
252 | 26 | david.daugareil | Si tout est au vert, on valide le démon openvpn : |
253 | |||
254 | ~~~ |
||
255 | sudo systemctl enable openvpn@aqn |
||
256 | ~~~ |
||
257 | |||
258 | ## le Firewall : Routage, NAT... |
||
259 | |||
260 | 29 | david.daugareil | Editer le fichier sysctl.conf |
261 | |||
262 | ~~~ |
||
263 | sudo vi /etc/sysctl.conf |
||
264 | ~~~ |
||
265 | |||
266 | Décommenter les lignes : |
||
267 | - net.ipv4.ip_forward=1 |
||
268 | - net.ipv6.conf.all.forwarding=1 |
||
269 | 30 | david.daugareil | |
270 | Et valider les modifications : |
||
271 | |||
272 | ~~~ |
||
273 | sudo sysctl --system |
||
274 | ~~~ |