Si tienes un nodo TOR, actívalo en IPv6 (2)

Hace unos días publiqué el artículo Si tienes un nodo TOR, actívalo en IPv6 explicando por qué y cómo configurar un nodo TOR para dar servicio en la red IPv6. Lamentablemente la configuración que propongo es correcta, pero se tropieza con el siguiente bug en la versión actual de TOR:

En pocas palabras, las versiones actuales de TOR no son capaces de saber su propia dirección IPv6. Como consecuencia de ello es necesario indicar de forma explícita la dirección IPv6 del nodo en la configuración. Esto es especialmente problemático si el nodo tiene una dirección IP dinámica o emplea las extensiones de privacidad de IPv6.

Ciertamente este es un problema serio en esos casos porque, básicamente, hace que no podamos dar servicio en IPv6 sin un mantenimiento manual constante. Por suerte mis nodos TOR con IPv6 tienen IP fija y no empleo las extensiones de privacidad de IPv6. Puedo poder la dirección IPv6 a mano y confiar en que me acordaré de cambiarla si en algún momento cambio de IPs o de máquinas TOR.

La configuración final es:

# Poder acceder a SOCKS5 a través del localhost IPv6
SocksListenAddress [::1]

# Poder controlar el proceso TOR a través de ambos localhosts
ControlListenAddress 127.0.0.1:9051
ControlListenAddress [::1]:9051

# Declaramos que este nodo TOR es accesible a través de IPv6
# OJO, no podemos hacer "autodiscovery" de la dirección
# propia:
# https://trac.torproject.org/projects/tor/ticket/5940
ORPort [MI_DIRECCIÓN_IPv6]:PUERTO_TOR

# Es un nodo de tránsito, no de salida
IPv6Exit 1
ExitPolicy reject6 *:*

Ahora solo queda esperar a que el directorio TOR verifique ese cambio de configuración y quede a disposición del resto de la red. Si todo va bien y el nodo ya ha sido aceptado por la red, el cambio será visible en el directorio TOR en unos pocos minutos.

El bug descrito solo afecta a IPv6, no hay ningún problema con las direcciones IPv4. Es de esperar que se solucione en el futuro. Habrá que estar atento. Roman Mamedov lo resume de forma magistral:

You thought it would be this simple. Nope, unlike every other IPv6-capable program on Earth, in Tor this syntax of "bind to all IPs" is not supported. They want you to specify the actual single IP manually, and then keep track if it changes and each time not forget to go to torrc to update it.

Algunas lecturas sobre este tema: