En juillet 2018 (suite à notre adhésion), Gitoyen nous a donné les informations technique sur ce qu'ils pensent nous fournir en septembre :
Nous n'aurons pas d'[AS] dans un premier temps.
La VM fournie n'est peut etre pas faite pour héberger notre serveur VPN.
L'architecture réseau est :
Notre scope IP est 80.67.162.0/24
Subnet | Description | Quantité |
---|---|---|
80.67.162.0/30 | Interconnexion entre GW et VM | 4 |
80.67.162.4/30 | Réservé interconnexion | 4 |
80.67.162.8/29 | Réservé | 8 |
80.67.162.16/28 | Réservé | 16 |
80.67.162.32/27 | Réservé | 32 |
80.67.162.64/26 | Réservé | 64 |
80.67.162.128/25 | IPs publiques adhérents | 128 |
Nous faisons des tests sur un réseau simulé.
3 machines :
Usagé Server MYCL VM Gitoyen Réseau normal 10.11.12.1 <--> 10.11.12.2 <--> 10.11.12.3 <--> Internet Connexion OpenVPN 80.67.162.2 80.67.162.1 Connexion OpenVPN 80.67.162.130 80.67.162.169
Tout ce qui va suivre est simulé. Donc quand on dit « La VM Gitoyen » c'est un de nos ordi qui joue ce rôle.
On aurait sûrement pu faire la même chose avec marionnet mais on ne s'est pas trop engagé sur cette voie.
La configuration entre Server MYCL et VM Gitoyen est la plus simple : du point à point. Il faut suivre cette doc :
https://openvpn.net/index.php/open-source/documentation/miscellaneous/78-static-key-mini-howto.html
Config de la VM Gitoyen
dev tun ifconfig 80.67.162.1 80.67.162.2 secret /etc/openvpn/server/jlt.key
On partage juste une clef pour aller plus vite, mais en prod on fera du TLS.
Pour le test, on a dû faire du NAT sur la VM Gitoyen (en l'occurence pour notre test, le laptop de Germain) pour rediriger le traffic de notre réseau vers le reste de l'internet (sur l'interface wifi de Germain) :
iptables -t nat -A POSTROUTING -s 80.67.162.0/24 -o wlan0 -j MASQUERADE
Et activer le forwarding :
echo 1 > /proc/sys/net/ipv4/ip_forward
Il faut aussi forwarder le traffic dans les deux sens sur l'interface virtuelle tun0 :
iptables -A FORWARD -i tun0 -o tun1 -j ACCEPT iptables -A FORWARD -i tun1 -o tun0 -j ACCEPT
Table de routage obtenu au final sur VM Gitoyen :
Destination Passerelle Genmask Indic Metric Ref Use Iface 0.0.0.0 192.168.2.1 0.0.0.0 UG 600 0 0 wlan0 10.11.12.0 0.0.0.0 255.255.255.248 U 0 0 0 eth0 80.67.162.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 80.67.162.128 * 255.255.255.128 U 0 0 0 tun0 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0 192.168.2.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
La configuration entre les Usagés et le Serveur MYCL est plus dure. Elle utilise obligatoirement des certificats.
Config Usagé, recopier la config client deja documenté
ensuite on route les deux interface virtuelles
Sur le serveur mycelium, on interface l'interface virtuelle du serveur VPN avec le point à point :
iptables -A FORWARD -i tun0 -o tun1 -j ACCEPT
puis dans l'autre sens :
iptables -A FORWARD -i tun1 -o tun0 -j ACCEPT
Sur le client on a ajouté une route à la main :
route add default gw 80.67.162.129 dev tun0
Mais normalement, on devrait arriver à la pusher avec le serveur VPN. À creuser.
Les usagers vont voir 2 hops avant de sortir sur Internet.
ipcalc
: permet de calculer des réseaux ip.
tcpdump
: pour sniffer une interface réseau. Ci-dessous, on filtre par exemple selon une IP de provenance :
tcpdump -i tun0 -n host 80.67.162.130