[[!meta title="Tor, IPv6 et prises de tête"]]
[[!meta date="2020-07-06 12:00:00"]]


Chez nos-oignons, nous faisons tourner [plusieurs relais de sortie tor à haute
capacité](https://nos-oignons.net/Services/index.fr.html), et comme nous sommes en 2020, la plupart ont de l'IPv6. Tout allait
bien, jusqu'à ce qu'on se penche sur le cas
d'[elenagb](https://metrics.torproject.org/rs.html#details/F47B13BFCE4EF48CDEF6C4D7C7A99208EBB972B5),
notre nœud hébergé chez [Aquilenet](https://www.aquilenet.fr/), et nommé
d'après la professeure et écrivaine italienne [Elena Gianini Belotti](
https://fr.wikipedia.org/wiki/Elena_Gianini_Belotti ). En effet, le consensus
pensait que son *exit policy* était `reject *:*`, alors que nous voulions qu'il
soit un relai de sortie. La seule différence avec nos autre relais était que
comme notre hébergeur ne nous attribuait pas l'IPv4, nous nous étions mis
d'accord pour n'avoir que du trafic sortant du réseau tor en IPv6. Il y avait
donc, quelque part, sûrement, un soucis de configuration.  Le `torrc`
ressemblait à ça. En partant du principe que tout le reste soit correctement
configuré (`ORPort`, `address`, …), arrivez-vous à débusquer l'erreur?

```
# No exit in ipv4
ExitPolicy reject *:*

# Reduced exit policy in IPv6
ExitPolicy accept6 *:20-23     # FTP, SSH, telnet
…
ExitPolicy accept6 *:64738     # Mumble
ExitPolicy reject6 *:*
```

L'astuce  comme souligné dans le [ticket 16069](https://trac.torproject.org/projects/tor/ticket/16069) est que la configuration `reject
*:*` rejette l'IPv4 **ainsi** que l'IPv6 pour des raisons historiques. À ce
sujet, la [documentation](https://torproject.org/docs/tor-manual.html.en) indique :

> Les entrées `accept6` et `reject6` affectent seulement les politiques de
sortie Ipv6. Utiliser des IPv4 avec `accept6` et `reject6` sera ignoré et
générera une alerte. Les entrées `accept`/`reject` permettent de prendre en
compte l'IPv4 ainsi que l'IPv6. Utiliser `*4` comme adresse IPv4 générique, et `*6`
comme IPv6 générique. `accept`/`reject *` sont utilisés comme générique
concernant IPv4 et IPv6.
    
La bonne configuration ressemblerait donc plutôt à ceci:

```
# No exit in ipv4
ExitPolicy reject *4:*

# Reduced exit policy in IPv6
ExitPolicy accept6 *:20-23     # FTP, SSH, telnet
ExitPolicy accept6 *:43        # WHOIS
…
ExitPolicy accept6 *:64738     # Mumble
ExitPolicy accept6 *:64738     # Mumble
ExitPolicy reject6 *:*

```

Une bonne partie de la soirée fût passée à s'user les yeux sur le problème, et
évidement, aussitôt le mystère résolu, notre hébergeur nous a informé que
l'IPv4 nous était maintenant correctement attribuée, et qu'elenagb pouvait donc
avoir du trafic sortant de tor à la fois en IPv4 et en IPv6.
