Table des matières

Stage d'Anthony Messé

Du 2018-04-09 au 2018-06-15.

Comptes rendus hebdomadaires

Rapport de stage (version pdf)

Sujet du stage

Mise en place d'un serveur mandataire redirigeant le trafic vers Tor.

Explications

On souhaite rediriger un certain trafic (par exemple issu d'une carte réseau particulière) vers Tor. Pour cela on utilise des cartes Banana Pi M1+. Cela doit être fait de manière transparente : le client du point d'accès wifi ne doit avoir aucune action à effectuer (à part se connecter, bien sûr).

Objectif du projet

Aujourd'hui, de plus en plus de lieux publics (restaurants, médiathèques, écoles…) proposent à leurs clients/membres un accès wifi (avec authentification ou non). Ces établissements doivent cependant faire face aux actions illégales réalisées par les clients (téléchargement d'oeuvres non-libres, piratage…) et les expose à des poursuites judiciaires et de lourdes amendes. Ce projet, en faisant passer le trafic par le réseau Tor, permettrait aux établissements cités plus haut de continuer à proposer à leur clients un accès internet, sans avoir à se soucier du contenu téléchargé, ou du site consulté.

Tests avec KVM

Pour mes premiers tests j'ai utilisé une machine virtuelle sous KVM. J'ai donc dû apprendre à la configurer et l'utiliser correctement. J'ai ainsi pu tester l'installation de Tor : quels sont les paquets à installer et les fichiers à configurer pour un bon fonctionnement du projet. J'ai cependant rencontré des difficultés pour effectuer des copier/coller entre la VM et la machine hôte, ainsi que par rapport à la connectivité entre ces dernières. J'ai donc directement commencé à travailler sur la BPi (Banana Pi).

Mise en place du projet

Vous pouvez avoir un aperçu des spécifications de ce micro-ordinateur. Dans un premier temps on configure la carte SD et on installe l'OS dessus (vous pouvez aussi utiliser un SSD et y installer l'OS ). J'ai utilisé une version officielle et “propre” de Debian (voir la documentation sur la carte SD). J'ai installé les outils de base. J'ai d'abord testé l'utilisation de la carte wifi intégrée à la BPi, mais j'ai rencontré des problèmes et me suis donc orienté vers un dongle wifi USB.

Déploiement manuel

Avec IPv4 et une classe C

On configure l'AP et le serveur dhcp. Il faut ensuite installer Tor. On redirige le trafic avec un script iptables et on automatise son lancement au démarrage de la BPi. Notre point d'accès étant public, nous sommes soumis à la règlementation et devons donc conserver les logs.

Avec IPv4 et une classe A

On configure l'AP et le serveur dhcp. Il faut ensuite installer Tor. On redirige le trafic avec un script iptables et on automatise son lancement au démarrage de la BPi. Notre point d'accès étant public, nous sommes soumis à la règlementation et devons donc conserver les logs.

Avec IPv6

Il est tout à fait possible de configurer un serveur DHCPv6 pour distribuer des adresses IPv6. Cependant il s'agit d'une solution incomplète pour deux raisons :

Automatisation du déploiement avec Ansible (IPv4 classe C)

Pour cela, on suppose que la cible (sur laquelle on veut déployer le projet) possède une adresse ip correctement configurée, et est accessible via SSH.

On commence par l'installer et configurer les hosts. Il peut être bien de vérifier l'accès à ces derniers. en tant que root et non-root. Il faut ensuite comprendre le fonctionnement des modules, par exemple pour installer des paquets. Pour une utilisation plus avancée qu'avec les lignes de commande, on peut utiliser les playbooks simples ou avec des rôles (recommandé). Durant mon utilisation d'Ansible, j'ai rencontré des difficultés auxquelles j'ai dû apporter des solutions.

Ressources