Project

General

Profile

AtelierNuitDebout

Mise en place OpenWRT+OpenVPN pour partage de connection a travers un tunnel pour Nuit Debout place du capitole

Technique

Prendre deux routeurs supportés par Linux ou OpenWRT, ici on a pris 2 TP-Link 740N v4
Flasher OpenWRT sur les deux routeurs, ici on a pris Chaos Chalmer 15.05.1
Ensuite sur les deux routeur
  1. mettre un mot de passe a root
  2. desactiver le firewall
  3. changer la plage d'ip sur le LAN pour eviter 192.168.1.* et les conflits d'IP LAN/WAN, ici on a pris 192.168.111.0/24
  4. connecter le port WAN a internet, puis ssh dessus et faire :
    # opkg update
    # opkg install ip openvpn-nossl
    # ip link show dev eth1 # noter l'adresse MAC
    

Serveur OpenVPN

Un des deux routeurs, le "serveur" va faire serveur OpenVPN, il va etre branché en filaire via son port WAN (bleu) sur la box de la personne qui va preter son addresse IP fixe (identité), ici la box tetaneutral.net de Mix'Art Myrys le PC "chaussette" avec comme IP publique IP_PUBLIQUE_BOX_PRETEUSE

Sur cette box il faut donner une IP fixe dans le LAN pour le routeur serveur (via MAC <=> IP dans DHCP), et rediriger sur cette IP LAN fixe un port UDP PORT.
Dans notre cas sur chaussette qui est un PC Linux :

# IFACE_WAN est l'interface wan de chaussette :
iptables -t nat -A PREROUTING -p udp -i IFACE_WAN -d IP_PUBLIQUE_BOX_PRETEUSE --dport PORT -j DNAT --to-destination IP_LAN:PORT
# Dans /etc/dnsmasq.d/my.conf ajouter :
dhcp-host=00:11:22:33:44:55,nuitdebout,IP_LAN # remplace 00:11 par la MAC de eth1 du routeur.
# Puis :
/etc/init.d/dnsmasq restart

Sur le routeur editer /etc/rc.local en remplaçant PORT et IP_LAN par les bonnes valeurs :

sleep 20

openvpn --mktun --dev-type tun --dev tunndb
ip link set tunndb up
openvpn --dev tunndb --dev-type tun --port PORT --verb 3 --proto udp --local IP_LAN --daemon --keepalive 10 60
ip addr add 10.0.111.1/24 dev tunndb

iptables -t nat -A POSTROUTING -s 192.168.111.0/24 -o eth1 -j MASQUERADE
ip route add 192.168.111.0/24 dev tunndb

Puis redemarrer le routeur

Client OpenVPN

L'autre routeur, le "client" va etre client OpenVPN, il va etre branché en filaire via son port WAN (bleu) sur la box d'un sympathisant pas loin du capitole.

Editer /etc/rc.local en remplacant IP_PUBLIQUE_BOX_PRETEUSE et PORT par les bonnes valeurs.

sleep 10

openvpn --mktun --dev-type tun --dev tunndb
ip link set tunndb up
openvpn --dev tunndb --dev-type tun  --lport 0 --proto udp --daemon --remote IP_PUBLIQUE_BOX_PRETEUSE PORT --keepalive 10 60
ip addr add 10.0.111.2/24 dev tunndb

ip route add default dev tunndb table 31
ip route add 192.168.111.0/24 dev br-lan table 31
ip rule add iif br-lan table 31 prio 1000

Mettre sur le LAN du routeur 192.168.111.1/24 et comme serveur DNS 10.0.111.1

Activer et configurer le wifi si besoin.

TODO: IPv6 si disponible, sinon supprimer par sécurité l'interface WAN6 du routeur.