Project

General

Profile

En pratique : connecter des evenements ponctuels

1. trouver un sympathisant qui accepte de partager une partie de sa bande passante
2. prendre le TP-link 740N "tunnel evenement" et le brancher sur la box de l'adherent (image)
3. mettre des antennes et un tp-link flashe avec l'IP publique dediee aux evenements sur le lieu de l'evenement (explications)
4. changer https://adherents.tetaneutral.net/admin/services/ipresource/89.234.156.111/ pour ajouter l'evenement a la liste

On va voir dans le reste de cette page comment c'a ete configure.

creer un tunnel et configurer le routage (h7/tp-link)

La premiere etape est de creer un tunnel VPN. Cela cree un lien direct entre le routeur sur la connexion du sympathisant et le routeur de Tetaneutral h7 et nous permettra de rediriger le traffic de l'evenement vers h7 (tandis que le traffic du sympathisant continuera a sortir directement par la box). Comme le tunnel nous donne acces au reseau local sur lequel sont les antennes, on peut alors administrer ces antennes facilement.

Le traffic provenant d'internet adresse a l'IP publique de l'evenement, aux antennes, etc est redirige vers l'autre bout du tunnel, sur le TP-link branche a la box.
On aurait pu thoriquement connecter l'evenement directement sur la box du sympathisant, mais ce n'est pas quelque chose a faire ! En effet, le sympathisant serait alors responsable legalement du traffic qui sort sur Internet par sa connexion (avec son IP publique) et peut avoir des problemes. C'est pourquoi cette solution plus complexe est mise en place.

routage h7

  • config tunnel
    dans /etc/rc.local (ce fichier sera pris en compte au prochain demarrage donc a ajouter et a tester en ligne de commande), on copie-colle un autre tunnel en changeant certaines valeurs, ca ressemble a :
openvpn --mktun --dev-type tun --dev tuneve
ip link set tuneve up
openvpn --dev tuneve --dev-type tun --cipher none --persist-tun --auth none --port 65138 --verb 3 --proto udp --local 91.224.148.1 --daemon --log-append /root/vpn/tuneve.log --keepalive 10 60
ip addr add 10.0.111.1/24 dev tuneve
ip route add 172.31.111.0/24 dev tuneve
  • config routage IP publique
    on a choisi une IP libre dans le SI qu'on a associee a l'evenement

    on a vérifie que l'IP est effectivement bien dispo :

    grep <ip> /root/ip_ttnn.txt
    

    (cette commande doit nous retourner : <ip> unused, sinon il faut changer d'IP et reporter cette erreur a l'equipe de sysadmins de l'asso)

    Indiquer le tunnel associe a cette ip dans ip_ttnn.txt, c'est a dire qu'on y change

    89.234.156.111 unused
    

    par
    89.234.156.111 tuneve
    

    lancer le script ip_ttnn.sh <ip> <tunnel> qui crée les routes

    vérifier ip route get <ip> (comme pour le tunnel)

    recuperer les lignes qu'on copiera dans la conf du shuttle (en theorie) ou du tp-link tunnel legerement modifiees (dans notre cas) : ip_ttnn.sh <ip> show (montre les deux définitions de route : IPv4 et IPv6)

routage tp-link tuneve cote sympathisant

Sur le routeur TP-link qui ira chez le.a sympathisant.e :

  • flasher avec OpenWRT, la version preconnisee dans le wiki (pour les 740n : https://wiki.openwrt.org/toh/tp-link/tl-wr740n ; pour les 841n : https://wiki.openwrt.org/toh/tp-link/tl-wr841nd ) ; /!\ avec LEDE, y'a pas la place pour installer OpenVPN ; telecharger la version "factory"
  • se reconnecter a l'interface web du routeur flashe et changer le mdp root pour pouvoir ensuite se connecter en ssh
  • changer l'adresse IP du routeur pour une plage moins utilisee, par ex ici : 192.168.111.1/24 et connecter le port WAN (bleu) du routeur a une box (note : on peut aussi connecter le WAN en WiFi en bidouillant un peu) pour que le routeur ait acces au net et qu'on puisse y installer des paquets, se connecter en ssh et installer openvpn-nossl (openvpn sans chiffrement, car y'a pas la place sur les tp-link) et ip :
    - opkg update
    - opkg install ip openvpn-nossl
    - dans /etc/rc.local :
            sleep 20 # since barrier breaker interface not up when rc.local called
    
            openvpn --mktun --dev-type tun --dev tuneve
            ip link set tuneve up
            openvpn --dev tuneve --dev-type tun  --lport 0 --proto udp --daemon --remote 91.224.148.1 65138 --proto udp --daemon --keepalive 10 60
            ip addr add 10.0.111.2/24 dev tuneve
    
            ip route add default dev tuneve table 25
            ip -6 route add default dev tuneve table 25
    
            ip rule add from all iif tuneve table 25
            ip -6 rule add from all iif tuneve table 25
    
            ip rule add from all iif br-lan table 25
            ip -6 rule add from all iif br-lan table 25
    
            ip rule add from 10.0.111.2 table 25
            ip rule add from 172.31.111.1 table 25
    
            ip route add 172.31.111.0/24 dev br-lan table 25
    
            ip -6 addr add fe80::31/64 dev br-lan
            ip addr add 91.224.148.0/32 dev br-lan
    
            # routage IP publique evenement (donne par l'execution de `./ip_ttnn.sh <ip> show` sur h7)
            ip route add 89.234.156.111/32 dev br-lan table 25
            ip -6 route add 2a03:7220:8083:6f00::/56 via fe80::83:6f dev br-lan table 2
    
            exit 0
    

    avec 91.224.148.1, l'IP publique d'h7

    65138 etant un port libre sur h7, on en choisit un de libre sur le SI (pour l'instant, c'est pas possible et on fait avec le wiki), et verifier que c'est effectivement pas utilise avec la commande :

    netstat -a | grep <numport>
    , si c'est utilise, reporter le probleme et en choisir un autre de la meme facon.

    ici, la plage IP privees = 10.0.111.x/24 est une plage libre sur h7 egalement

    une plage d'IP privees pour les antennes, ici 172.31.111.0/24,

    89.234.156.111 est une IP publique libre jusqu'a present (a verifier et reserver sur le SI)

configuration tp-link cote evenement

Du cote de l'evenement, on utilise le routeur qui a ete flashe avec le firmware donne par le script habituellement utilise pour les installations chez les particuliers quick_lede.sh.

Configuration lors de l'Universite d'ete des mouvements sociaux (ATTAC)

TODO
TODO : un schema gns3 ?