'

Outils pour utilisateurs

Outils du site


doc:iodine

iodine : tunnel IPv4 sur DNS

iodine permet de faire des tunnels IPv4 sur le protocole DNS.

 _______
|       |
|  IP   |
|_______|
|       |
|  DNS  |
|_______|
|       |
|  UDP  |
|_______|
|       |
|  IP   |
|_______|

Ce genre d'utilitaire peut être pratique quand on est connecté derrière un équipement qui laisse uniquement passer le protocole DNS (par exemple un point d'accès WiFi dans un hôtel).

Les performances ne sont pas fulgurantes à cause de l'utilisation du protocole DNS mais ça dépanne.

Prérequis

Pour utiliser iodine, il est nécessaire de disposer d'un nom de domaine. Il faut pouvoir configurer le serveur DNS pour qu'un sous-domaine pointe vers un serveur dont on a le contrôle.

Par exemple :

$ host -t NS iodine.mondomaine.fr
iodine.mondomaine.fr name server monserveur.mondomaine.fr

$ host ns.iodine.mondomaine.fr
monserveur.mondomaine.fr has address X.Y.Z.XX

Configuration

Cette configuration a été testée sur Debian Wheezy.

Sur le serveur

$ sudo cat /etc/default/iodine 
# Default settings for iodine. This file is sourced from
# /etc/init.d/iodined
START_IODINED="true"
IODINED_ARGS="192.168.14.1 iodine.mondomaine.fr -c -m 1280"
IODINED_PASSWORD="UnTrucDifficileADeviner"

Le nom des variables de configuration est assez parlant. Quelques détails concernant IODINED_ARGS :

  • 192.168.14.1 : adresse IP de l'interface dns0 créée par iodine
  • iodine.mondomaine.fr : nom de domaine
  • -c : supprime une vérification qui semble échouée souvent (cf. man iodined)
  • -m 1280 : fixe la MTU à 1280, nécessaire pour les clients Android

On lance alors iodine avec la commande sudo service iodine start.

Une interface dns0 apparaitra alors sur le système.

$ ip addr show dns0
3: dns0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1130 qdisc pfifo_fast state UNKNOWN qlen 500
    link/none 
    inet 192.168.14.1/27 scope global dns0

Sur le client

Sur le client, on peut utiliser le plugin iodine pour Network Manager (sudo apt-get install network-manager-iodine).

Il est aussi possible de lancer iodine en ligne de commande après l'avoir installé avec apt-get install iodine.

sudo /usr/sbin/iodine -P UnTrucDifficileADeviner -u iodine -t /var/run/iodine iodine.mondomaine.fr

Quelques explications des paramètres :

  • -u : lancer avec l'identité de l'utilisateur iodine (créé à l'installation)
  • -t : chroot dans dans /var/run/iodine
  • zone DNS : iodine.mondomaine.fr

Par défaut, iodine utilisera le DNS de la machine pour relayer les requêtes DNS mails il est possible d'envoyer directement les requêtes au serveur.

Une nouvelle interface sera créée sur le système :

$ ip addr show dns0
7: dns0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1130 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none 
    inet 192.168.14.2/27 scope global dns0
       valid_lft forever preferred_lft forever

android

Il existe un client Android pour iodined : AndIodine . Ce client est disponible dans toutes les bonnes crémeries.

doc/iodine.txt · Dernière modification: Le 07/01/2015 à 23:52 (modification externe)