Projet

Général

Profil

Id2ndR » Historique » Version 1

Fabien ADAM, 06/12/2014 20:09

1 1 Fabien ADAM
h1. Mes travaux perso relatifs à Tetaneutral
2 1 Fabien ADAM
3 1 Fabien ADAM
Auteur : Id2ndR
4 1 Fabien ADAM
5 1 Fabien ADAM
h2. Virtualisation
6 1 Fabien ADAM
7 1 Fabien ADAM
Au dessus, de libvirt, je fais tourner quelques VM sur ma machine Zbox ID18 [[http://www.ldlc.com/fiche/PB00158714.html]] : Celeron double cœurs supportant le VT, avec 8Go de RAM
8 1 Fabien ADAM
9 1 Fabien ADAM
h2. OpenWRT
10 1 Fabien ADAM
11 1 Fabien ADAM
Je possède un TP-Link WDR3600 gigabit et double bande N. Il tourne sous Barrier Breaker 14.04.
12 1 Fabien ADAM
13 1 Fabien ADAM
Objectifs :
14 1 Fabien ADAM
- connecter le routeur à Internet via une connexion 4G
15 1 Fabien ADAM
- sortir sur une VM tournant sur ma machine à Tetaneutral, pour avoir un accès réseau complet (IP fixe, IPv6, téléphonie SIP, pas de bridage ni de modification du flux via les proxys transparents)
16 1 Fabien ADAM
17 1 Fabien ADAM
h3. 4G
18 1 Fabien ADAM
19 1 Fabien ADAM
h3. OpenVPN
20 1 Fabien ADAM
21 1 Fabien ADAM
Mise en place :
22 1 Fabien ADAM
* Certificat SSL du serveur (VM) : généré par CA-Cert (je n'ai jamais pu faire marcher le VPN sur OpenWRT avec un certificat auto-signé)
23 1 Fabien ADAM
* Certificat d'un certificat client : généré avec easy-rsa (build-ca, build-key-server, build-key). Remarque : il n'est pas nécessaire que ces certificats soient issues du certificat du serveur vérifié à la connexion, car le serveur connaît son référentiel de clef, indépendament du certificat serveur présenté sur le port d'écoute.
24 1 Fabien ADAM
* Configuration du serveur :
25 1 Fabien ADAM
<pre>
26 1 Fabien ADAM
id2ndr@id2ndr-vm: ~$ cat /etc/openvpn/id2ndr.conf 
27 1 Fabien ADAM
##################################
28 1 Fabien ADAM
dev tun
29 1 Fabien ADAM
proto udp
30 1 Fabien ADAM
port 1194
31 1 Fabien ADAM
32 1 Fabien ADAM
ca /etc/openvpn/easy-rsa/keys/class3.crt
33 1 Fabien ADAM
cert /etc/openvpn/easy-rsa/keys/id2ndr.toulan.fr.crt
34 1 Fabien ADAM
key /etc/openvpn/easy-rsa/keys/id2ndr.toulan.fr.key
35 1 Fabien ADAM
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
36 1 Fabien ADAM
37 1 Fabien ADAM
user nobody
38 1 Fabien ADAM
group nogroup
39 1 Fabien ADAM
server 10.9.0.0 255.255.255.0
40 1 Fabien ADAM
41 1 Fabien ADAM
persist-key
42 1 Fabien ADAM
#persist-tun
43 1 Fabien ADAM
44 1 Fabien ADAM
keepalive 30 100
45 1 Fabien ADAM
46 1 Fabien ADAM
47 1 Fabien ADAM
status /var/log/openvpn-status.log
48 1 Fabien ADAM
verb 3
49 1 Fabien ADAM
client-to-client
50 1 Fabien ADAM
51 1 Fabien ADAM
52 1 Fabien ADAM
#push "redirect-gateway def1"
53 1 Fabien ADAM
#set the dns servers
54 1 Fabien ADAM
#push "dhcp-option DNS 8.8.8.8"
55 1 Fabien ADAM
#push "dhcp-option DNS 8.8.4.4"
56 1 Fabien ADAM
push "redirect-gateway def1"
57 1 Fabien ADAM
push dhcp-option DNS 91.224.149.254
58 1 Fabien ADAM
59 1 Fabien ADAM
60 1 Fabien ADAM
log-append /var/log/openvpn
61 1 Fabien ADAM
comp-lzo adaptive
62 1 Fabien ADAM
</pre>
63 1 Fabien ADAM
64 1 Fabien ADAM
* Installation du client :
65 1 Fabien ADAM
<pre>
66 1 Fabien ADAM
root@OpenWrt:~# opkg update; opkg install openvpn-openssl
67 1 Fabien ADAM
root@OpenWrt:~# cat /etc/openvpn/my-vpn.conf 
68 1 Fabien ADAM
dev tun
69 1 Fabien ADAM
client
70 1 Fabien ADAM
#proto tcp
71 1 Fabien ADAM
proto udp
72 1 Fabien ADAM
remote id2ndr.toulan.fr 1195
73 1 Fabien ADAM
resolv-retry infinite
74 1 Fabien ADAM
nobind
75 1 Fabien ADAM
persist-key
76 1 Fabien ADAM
persist-tun
77 1 Fabien ADAM
ca /etc/openvpn/class3.crt
78 1 Fabien ADAM
cert /etc/openvpn/Id2ndR.crt
79 1 Fabien ADAM
key /etc/openvpn/Id2ndR.key
80 1 Fabien ADAM
comp-lzo no
81 1 Fabien ADAM
verb 3
82 1 Fabien ADAM
root@OpenWrt:/etc/openvpn# wget http://www.cacert.org/certs/class3.crt
83 1 Fabien ADAM
root@OpenWrt:~# vi /etc/openvpn/Id2ndR.crt
84 1 Fabien ADAM
root@OpenWrt:~# vi /etc/openvpn/Id2ndR.key
85 1 Fabien ADAM
</pre>
86 1 Fabien ADAM
* Nat via le VPN : inspiré de [[http://wiki.openwrt.org/doc/howto/vpn.server.openvpn.tun]] Use-Case 3
87 1 Fabien ADAM
** Dans Luci, Network > Interfaces : créer une interface nommée wan_vpn exploitant l'interface tun0, en client dhcp
88 1 Fabien ADAM
** Dans Luci, Network > Firewall : créer une zone wan_vpn avec l'interface wan_vpn en activant Masquerading
89 1 Fabien ADAM
** Dans Luci, Network > Firewall : supprimer la zone lan existante. Créer la zone lan avec le forward vers la zone wan_vpn
90 1 Fabien ADAM
** Depuis un PC derrière le routeur : traceroute google.fr doit sortir par h7.tetaneutral.net (4ème nœuds chez moi, à cause de la VM)
91 1 Fabien ADAM
92 1 Fabien ADAM
Résultats : j'ai mesuré environ 70% d'utilisation CPU sur le routeur pour faire passer 17 méga. Ceci est cohérent avec [[Benchmark_VPN]].