Id2ndR » Historique » Version 2
Fabien ADAM, 06/12/2014 21:32
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 | 2 | Fabien ADAM | root@OpenWrt:~# uci set openvpn.custom_config.enabled=1 |
68 | 2 | Fabien ADAM | root@OpenWrt:~# uci commit |
69 | 1 | Fabien ADAM | root@OpenWrt:~# cat /etc/openvpn/my-vpn.conf |
70 | 1 | Fabien ADAM | dev tun |
71 | 1 | Fabien ADAM | client |
72 | 1 | Fabien ADAM | #proto tcp |
73 | 1 | Fabien ADAM | proto udp |
74 | 1 | Fabien ADAM | remote id2ndr.toulan.fr 1195 |
75 | 1 | Fabien ADAM | resolv-retry infinite |
76 | 1 | Fabien ADAM | nobind |
77 | 1 | Fabien ADAM | persist-key |
78 | 1 | Fabien ADAM | persist-tun |
79 | 1 | Fabien ADAM | ca /etc/openvpn/class3.crt |
80 | 1 | Fabien ADAM | cert /etc/openvpn/Id2ndR.crt |
81 | 1 | Fabien ADAM | key /etc/openvpn/Id2ndR.key |
82 | 1 | Fabien ADAM | comp-lzo no |
83 | 1 | Fabien ADAM | verb 3 |
84 | 1 | Fabien ADAM | root@OpenWrt:/etc/openvpn# wget http://www.cacert.org/certs/class3.crt |
85 | 1 | Fabien ADAM | root@OpenWrt:~# vi /etc/openvpn/Id2ndR.crt |
86 | 1 | Fabien ADAM | root@OpenWrt:~# vi /etc/openvpn/Id2ndR.key |
87 | 2 | Fabien ADAM | root@OpenWrt:~# uci set openvpn.custom_config.enabled=1 |
88 | 2 | Fabien ADAM | root@OpenWrt:~# uci commit |
89 | 2 | Fabien ADAM | root@OpenWrt:~# /etc/init.d/openvpn start |
90 | 2 | Fabien ADAM | root@OpenWrt:~# logread |
91 | 2 | Fabien ADAM | [..] |
92 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.warn openvpn(custom_config)[25584]: WARNING: file '/etc/openvpn/Id2ndR.key' is group or others accessible |
93 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.notice netifd: Interface 'wan_vpn' is disabled |
94 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.notice openvpn(custom_config)[25584]: Socket Buffers: R=[163840->131072] S=[163840->131072] |
95 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.notice openvpn(custom_config)[25584]: UDPv4 link local: [undef] |
96 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.notice openvpn(custom_config)[25584]: UDPv4 link remote: [AF_INET]91.224.149.109:1195 |
97 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.notice openvpn(custom_config)[25584]: TLS: Initial packet from [AF_INET]91.224.149.109:1195, sid=2e0c718b e9ec8be6 |
98 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.notice openvpn(custom_config)[25584]: VERIFY OK: depth=1, O=CAcert Inc., OU=http://www.CAcert.org, CN=CAcert Class 3 Root |
99 | 2 | Fabien ADAM | Sat Dec 6 19:35:15 2014 daemon.notice openvpn(custom_config)[25584]: VERIFY OK: depth=0, CN=id2ndr.toulan.fr |
100 | 2 | Fabien ADAM | Sat Dec 6 19:35:16 2014 daemon.notice openvpn(custom_config)[25584]: Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key |
101 | 2 | Fabien ADAM | Sat Dec 6 19:35:16 2014 daemon.notice openvpn(custom_config)[25584]: Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication |
102 | 2 | Fabien ADAM | Sat Dec 6 19:35:16 2014 daemon.notice openvpn(custom_config)[25584]: Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key |
103 | 2 | Fabien ADAM | Sat Dec 6 19:35:16 2014 daemon.notice openvpn(custom_config)[25584]: Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication |
104 | 2 | Fabien ADAM | Sat Dec 6 19:35:16 2014 daemon.notice openvpn(custom_config)[25584]: Control Channel: TLSv1.0, cipher TLS-DHE-RSA-WITH-AES-256-CBC-SHA, 2048 bit RSA |
105 | 2 | Fabien ADAM | Sat Dec 6 19:35:16 2014 daemon.notice openvpn(custom_config)[25584]: [id2ndr.toulan.fr] Peer Connection Initiated with [AF_INET]91.224.149.109:1195 |
106 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: SENT CONTROL [id2ndr.toulan.fr]: 'PUSH_REQUEST' (status=1) |
107 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 91.224.149.254,route 10.9.0.0 255.255.255.0,topology net30,ping 30,ping-restart 100,ifconfig 10.9.0.6 10.9.0.5' |
108 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: OPTIONS IMPORT: timers and/or timeouts modified |
109 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: OPTIONS IMPORT: --ifconfig/up options modified |
110 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: OPTIONS IMPORT: route options modified |
111 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified |
112 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: TUN/TAP device tun0 opened |
113 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: TUN/TAP TX queue length set to 100 |
114 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0 |
115 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: /sbin/ifconfig tun0 10.9.0.6 pointopoint 10.9.0.5 mtu 1500 |
116 | 2 | Fabien ADAM | Sat Dec 6 19:35:18 2014 daemon.notice openvpn(custom_config)[25584]: /sbin/route add -net 91.224.149.109 netmask 255.255.255.255 gw 192.168.0.1 |
117 | 1 | Fabien ADAM | </pre> |
118 | 1 | Fabien ADAM | * Nat via le VPN : inspiré de [[http://wiki.openwrt.org/doc/howto/vpn.server.openvpn.tun]] Use-Case 3 |
119 | 1 | Fabien ADAM | ** Dans Luci, Network > Interfaces : créer une interface nommée wan_vpn exploitant l'interface tun0, en client dhcp |
120 | 1 | Fabien ADAM | ** Dans Luci, Network > Firewall : créer une zone wan_vpn avec l'interface wan_vpn en activant Masquerading |
121 | 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 |
122 | 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) |
123 | 1 | Fabien ADAM | |
124 | 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]]. |