Operadores

Tor determina su dirección IP preguntando al equipo por su nombre de host y resolviendo ese nombre. Muchas veces, la gente tiene entradas antiguas en su archivo /etc/hosts que apuntan a direcciones antiguas.

Si esto no lo arregla, deberías usar la opción de configuración "Address" para especificar la dirección IP que quieres que use. Si tu equipo está detrás de un router con traducción de direcciones (NAT) y solo dispone de una dirección IP privada, consulta la siguiente entrada sobre direcciones IP dinámicas.

También, si tienes muchas direcciones, puede que encuentres útil la opción "OutboundBindAddress" para que las conexiones salientes se realicen desde la dirección que desees.

Si tu repetidor es relativamente nuevo, ten paciencia. Tor decide qué repetidores usar de forma inteligente, usando información de las autoridades de ancho de banda. Dichas autoridades realizan mediciones de la capacidad de tu repetidor y con el tiempo dirigen más tráfico allí para que la carga sea óptima. El ciclo de vida de un repetidor nuevo está explicado con más detalle en esta entrada del blog. Si llevas un tiempo ejecutando un repetidor y aún tienes problemas, prueba preguntando en la lista de correo tor-relays.

Si permites conexiones de salida, algunos servicios a los que la gente se conecta desde tu repetidor abriran conexiones para obtener más información sobre tí. Por ejemplo, algunos servidores IRC abren conexiones a tu puerto identd para registrar qué usuario realizó la conexión (en realidad esto no funciona, porque Tor no conoce esta información, pero igualmente lo intentan). Además, los usuarios que salgan a través de tu repetidor, pueden atraer la atención de otros usuarios del servidor IRC, sitio web, etc. que quieren saber más acerca del equipo que hace la conexión.

Otra razón es que los grupos que escanean en busca de proxies abiertos en internet se han dado cuenta que a veces los repetidores Tor exponen su puerto socks a todo internet. Recomendamos que expongas tu puerto socks solo a las redes locales.

En todo caso, debes estar al día con la seguridad. Consulta este artículo sobre la seguridad de los repetidores Tor para más recomendaciones.

  • El de salida es el más necesario pero tiene un elevado riesgo de conllevar problemas legales (y NO deberías hacerlo funcionar desde tu casa).
  • Si buscas poner en marcha un repetidor con el mínimo esfuerzo, los guardianes de entrada rápidos son muy útiles también.
  • Seguidos de los repetidores puente.

Cuando un repetidor de salida está mal configurado o actúa de mala fé, se le asigna la indicación BadExit. Esto le sirve a Tor para evitar salir a través de ese repetidor. De hecho, los repetidores con esta indicación se convierten en repetidores de no salida. Si se te asigna este indicador quiere decir que hemos descubierto un problema o actividad sospechosa con el tráfico que pasa a traves de tu repetidor y no hemos podido contactar contigo. Por favor, ponte en contacto con el equipo bad-relays para que podamos solucionarlo.

Cuando actualizas tu repetidor Tor o lo mueves a otro equipo, lo importante es que tenga las mismas claves privadas (almacenadas en los archivos "keys/ed25519_master_id_secret_key" y "keys/secret_id_key" en tu directorio DataDirectory). Guardar copias de seguridad de las claves privadas para que puedan ser restauradas posteriormente en un repetidor es la manera recomendada de asegurarte que la reputación del repetidor no se desperdicie.

Esto significa que si actualizas el repetidor Tor y mantienes el mismo archivo torrc y el mismo directorio DataDirectory, todo debería de funcionar y tu repetidor usará las mismas claves. Si necesitas cambiar la ubicación de tu DataDirectory, asegúrate de copiar las antiguas keys/ed25519_master_id_secret_key y keys/secret_id_key.

Nota: Desde la versión 0.2.7, Tor utiliza una nueva generación de identidades basadas en criptografía de curva elíptica ed25519. Con el tiempo estas reemplazarán a las antiguas identidades RSA, pero llevará su tiempo, para asegurar la compatibilidad con versiones más antiguas. Mientras tanto, cada repetidor tendrá ambas: una ed25519 (en el archivo keys/ed25519_master_id_secret_key) y una RSA (en el archivo keys/secret_id_key) Necesitas tener una copia de seguridad de ambas para poder restaurar tu repetidor, cambiar tu DataDirectory o mover el repetidor a un nuevo equipo.

We're looking for people with reasonably reliable Internet connections, that have at least 10 Mbit/s (Mbps) available bandwidth each way. If that's you, please consider running a Tor relay.

Even if you do not have at least 10 Mbit/s of available bandwidth you can still help the Tor network by running a Tor bridge with obfs4 support. In that case you should have at least 1 MBit/s of available bandwidth.

Cierto, normalmente un byte en dirección al repetidor implica un byte haca la red y viceversa. Pero hay unas cuantas excepciones:

Si abres el DirPort, otros clientes Tor te pedirán una copia del directorio. La petición (HTTP GET) es bastante pequeña, pero la respuesta puede ser bastante grande. Esto seguramente explique la mayor parte del desequilibrio entre entrada y salida en el conteo de bytes.

Otra pequeña excepción aparece cuando administras un repetidor de salida y lees unos pocos bytes de una conexión de salida (por ejemplo, de mensajería instantánea o SSH) y lo empaquetas en una celda entera de 512 bytes para que sea transportada a través de la red Tor.

Si tu repetidor Tor usa más memoria de la que quisieras, estos son unos trucos para reducir su uso:

  • Si estás usando Linux, puede haber errores de fragmentación de la memoria en la implementación de la funcion malloc de la biblioteca glibc. Esto es, cuando Tor libera memoria al sistema operativo, lo hace en tramos no contiguos dificultando su uso. El archivo con el código fuente de Tor, viene con la implementación de la función malloc del sistema operativo OpenBSD, que sufre este problema de manera más leve (la contrapartida es un mayor uso de CPU). Puedes compilar Tor con esta implementación si lo prefieres: ./configure --enable-openbsd-malloc.
  • Si tienes un repetidor rápido, esto es, tienes muchas conexiones TLS abiertas, posiblemente estés perdiendo mucha memoria a causa de los buffers internos de OpenSSL (más de 38KB por conexión). Hemos parcheado OpenSSL para que libere de forma más agresiva la memoria que no necesita. Si actualizas OpenSSL a la versión 1.0.0 o superior, el proceso de compilación de Tor lo reconocerá automáticamente y usará esta característica.
  • Si el uso de memoria sigue siendo demasiado alto, puedes probar a reducir el ancho de banda que tu repetidor anuncia. Anunciar un ancho de banda más bajo supone que menos usuarios lo usarán, esto debería ayudar. Consulta la opción MaxAdvertisedBandwidth en el manual.

Con todo, los repetidores rápidos usan un montón de RAM. No es raro para un repetidor de salida el usar 500-1000 MB de memoria.

Aspiramos a que poner en marcha un repetidor Tor sea una tarea fácil:

  • No pasa nada si el repetidor se cae de vez en cuando. Los directorios se dan cuenta rápidamente y dejan de anunciarlo a la red. Simplemente asegúrate de que no sea demasiado a menudo, ya que las conexiones que estén usándolo fallarán. Cada repetidor Tor tiene una política de salida que establece qué tipo de conexiones salientes son permitidas o denegadas desde ese repetidor. Si no te sientes cómodo/a dejando que terceros salgan a internet desde tu repetidor, puedes configurarlo para que solo acepte conexiones hacia otros repetidores.
  • Tu repetidor calculará y anunciará su capacidad de ancho de banda reciente, para que los repetidores con mejor ancho de banda reciban más usuarios. Así que tener un repetidor con poco ancho de banda también es útil.

Si estás usando Debian o Ubuntu, hay una serie de ventajas al instalar Tor desde el repositorio de Tor Project.

  • Tu ulimit -n queda establecido a 32768, valor lo suficientemente alto para que Tor pueda abrir todas las conexiones que necesita.
  • Se crea una cuenta de usuario específica para Tor, para que no haya que ejecutarlo como root.
  • Se incluye un script para que Tor se ejecute al arranque.
  • Se ejecuta tor con la opción --verify-config para comprobar que no haya problemas con el archivo de configuración.
  • Tor puede ponerse a la escucha en puertos privilegiados y después desprenderse de los privilegios

Todas las conexiones salientes deben ser permitidas, para que cada repetidor pueda comunicarse con los demás.

En muchas jurisdicciones, los administradores de repetidores Tor están cubiertos legalmente por la misma regulación sobre proveedores que previene que los proveedores de servicios de internet puedan ser responsables del contenido que terceros hacen circular por su red. Los repetidores de salida que aplican algún filtro al tráfico, es posible que pierdan esas protecciones.

Tor fomenta el acceso libre a la red sin intromisiones. Los repetidores de salida no deben filtrar el tráfico que pasa a través de ellos hacia internet. Los repetidores de salida que apliquen filtros al tráfico serán catalogados con el distintivo BadExit cuando sean detectados.

No. Si las fuerzas de seguridad se interesan en el tráfico de tu repetidor de salida, es posible que los agentes confisquen tu ordenador. Por esa razón, es mejor no hacer funcionar el repetidor de salida en tu casa o usando la conexión a Internet de tu casa.

En su lugar, considera ejecutar tu repetidor de salida en una instalación comercial que apoye a Tor. Ten una dirección IP separada para tu repetidor de salida y no enrutes tu propio tráfico a través de esta. Por supuesto, debes evitar mantener cualquier información sensible o personal en el ordenador que hospeda tu repetidor de salida.

  • No utilices los paquetes de los repositorios de Ubuntu. Seguramente no están actualizados. Si los usas, perderás importantes parches de estabilidad y seguridad.
  • Concreta tu versión de Ubuntu para ejecutar el siguiente comando:
     $ lsb_release -c
    
  • Como root, añade las líneas siguientes a /etc/apt/sources.list. Reemplaza 'version' con la versión que encontraste en el paso previo:
     $ deb https://deb.torproject.org/torproject.org version main
     $ deb-src https://deb.torproject.org/torproject.org version main
    
  • Añade la clave gpg utilizada para firmar los paquetes ejecutando los siguientes comandos:
     $ curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | sudo apt-key add -
    
  • Ejecuta los siguientes comandos para instalar tor y comprobar sus firmas:
     $ sudo apt-get update
     $ sudo apt-get install tor deb.torproject.org-keyring
    

Simplificando, funcionan tal que así:

  • Hay una clave privada maestra ed25519 en un archivo llamado "ed25519_master_id_secret_key". Esta es la más importante, así que asegúrate de que mantienes una copia de seguridad en lugar seguro - el archivo es delicado y debe estar protegido. Tor puede cifrarlo por ti si lo generas de forma manual y le asignas una contraseña cuando se te pida.
  • Una clave intermedia de firma digital llamada "ed25519_signing_secret_key" es generada para ser usada por Tor. Aparte, se genera un certifiado llamado "ed25519_signing_cert" el cual es firmado digitalmente por la clave privada maestra, que sirve para confirmar que la clave intermedia es válida durante un tiempo determinado. La validez por defecto es de 30 días, pero puedes cambiar este valor ajustando "SigningKeyLifetime N days|weeks|months" en el archivo torrc.
  • También está la clave pública maestra llamada "ed25519_master_id_public_key", que es la que se publica en la red como identidad de tu repetidor. Esta no es delicada (secreta) ya que se puede calcular a partir de la "ed5519_master_id_secret_key".

Tor solamente necesita acceso a la clave intermedia de firma digital y al certificado siempre y cuando sigan siendo válidos, así que la clave privada maestra puede ser guardada fuera del directorio DataDirectory/keys, en un medio de almacenamiento externo o en otro equipo. Deberás renovar de forma manual la clave intermedia de firma digital y el certificado antes de que caduquen, de lo contrario el proceso tor del repetidor se detendrá cuando pase el tiempo estipulado.

Esta característica es opcional, no necesitas usarla a menos que quieras hacerlo. Si quieres que tu repetidor funcione sin supervisión por más tiempo sin que tengas que renovar periódicamente la clave intermedia, lo mejor es que dejes la clave privada maestra en el directorio DataDirectory/keys y que simplemente hagas una copia de seguridad en caso de que haya que reinstalar el repetidor. Si estás interesado en utilizar esta característica, puedes consultar nuestra guía en profundidad al respecto.

Como es ahora un guardian, los clientes lo utilizan menos en otras posiciones, pero no muchos clientes han rotado sus guardianes para que sea usado como tal. Puedes consultar más detalles en este blog o en Cambio de guardián: Un esbozo para entender y mejorar la selección de guardianes de entrada en Tor.

Genial. Si quieres ejecutar varios repetidores para donar más a la red, nos parece bien. Pero por favor, no ejecutes más de unas docenas en la misma red, ya que parte de los objetivos de la red Tor es tener diversidad geográfica.

Si decides ejecutar más de un repetidor, por favor, establece la opción de configuración "MyFamily" en el archivo torrc de cada repetidor, listando todos los repetidores (separándolos con coma) que estén bajo tu control:

MyFamily $fingerprint1,$fingerprint2,$fingerprint3

donde cada huella es el identificador de 40 caracteres (sin espacios).

De esta forma, los clientes Tor sabrán evitar el uso de más de uno de tus repetidores en un mismo circuito. Debes establecer MyFamily si tienes control administrativo de los ordenadores o de la red en la que se encuentran, incluso si no están situados geográficamente en el mismo sitio.

Hay unas opciones en el archivo torrc que te permiten especificar el máximo número de bytes que serán transmitidos por tu repetidor en una unidad de tiempo determinada.

    AccountingStart day week month [day] HH:MM

Esto establece cuando el conteo será restablecido. Por ejemplo, para fijar el total de bytes por semana (que se ponga a cero cada miércoles a las 10:00AM), usarías:

    AccountingStart week 3 10:00
    AccountingMax 500 GBytes

Esto establece la máxima cantidad de datos que tu repetidor enviará durante un periodo de conteo y la máxima cantidad de datos que tu repetidor recibirá durante un periodo de conteo. Cuando el periodo de conteo comienza (mediante AccountingStart) los contadores para AccountingMax vuelven a 0.

Por ejemplo: Digamos que quieres permitir 50 GB de tráfico al día en cada dirección y el periodo de conteo debe restablecerse a diario a mediodía:

    AccountingStart day 12:00
    AccountingMax 50 GBytes

Ten en cuenta que tu repetidor no se despertará exactamente al principio del periodo de conteo. Llevará la cuenta de lo rápido que ha usado su cuota en el último periodo y escogerá un momento aleatorio en el próximo intervalo para despertar. De este modo evitamos que haya cientos de repetidores trabajando al principio de cada mes y no qude ninguno al final del mismo.

Si solo dispones de una cantidad pequeña de ancho de banda para donar en relación a tu velocidad de conexión, te recomendamos que uses un conteo diario, para que no acabes tu cuota mensual el primer día. Simplemente divide la cantidad mensual por 30. Puedes tener en cuenta tambien limitar el cuadal para espaciar la utilidad a lo largo del día: si quieres ofrecer X GB en cada dirección, puedes ajustar RelayBandwidthRate a 20*X KBytes. Por ejemplo, si tienes 50 GB para ofrecer en cada dirección, puedes establecer RelayBandwidthRate a 1000KBytes. De este modo tu repetidor siempre será útil al menos la mitad de cada día.

    AccountingStart day 0:00
    AccountingMax 50 GBytes
    RelayBandwidthRate 1000 KBytes
    RelayBandwidthBurst 5000 KBytes # permitir picos mayores pero manteniendo un valor medio

Tor permite parcialmente el uso de IPv6 y animamos a cada administrador de repetidor a que active la funcionalidad IPv6 en su torrc si dispone de conectividad IPv6. Por el momento Tor requiere una dirección IPv4 en los repetidores, no puedes ejecutar un repetidor en un ordenador que solo disponga de direcciones IPv6.

Los parámetros asignados a AccountingMax](https://2019.www.torproject.org/docs/faq.html.en#LimitTotalBandwidth) y BandwidthRate se aplican tanto a las funciones de repetidor como a las de cliente del proceso tor. Así que puedes encontrarte con que no puedes navegar tan pronto como tu programa Tor entra en modo hibernación, indicado por esta entrada en el registro:

Bandwidth soft limit reached; commencing hibernation.
No new connections will be accepted

La solución está en ejecutar dos procesos Tor: uno como repetidor y otro como cliente, cada uno con su configuración. Un modo de hacer esto (si comienzas desde una configuración como repetidor) es como sigue:

  • En el archivo torrc del repetidor Tor, simplemente ajusta a 0 el parámetro SocksPort.
  • Crea un nuevo archivo torrc para el cliente, usando como plantilla el archivo torrc.sample y asegúrate de que utiliza un archivo de registro de eventos distinto al del repetidor. Una posible forma de llamarlos es torrc.client y torrc.relay.
  • Modifica los script de arranque del cliente y del repetidor para que incluyan -f /ruta/al/corrspondiente/torrc.
  • En Linux/BSD/Mac OS X, cambiar el nombre de los script de arranque a Tor.client y Tor.relay puede hacer mas sencilla la separación de configuraciones.

Genial. Para eso tenemos las políticas de salida.

Cada repetidor Tor tiene una política de salida que especifica qué tipo de conexiones salientes serán permitidas o denegadas. Las políticas de salida son propagadas a los clientes Tor mediante los directorios, así los clientes evitan elegir repetidores que no permitirían llegar a su destino. Des esta forma cada repetidor puede elegir que servicios, destinos y redes quiere permitir, basándose en el potencial para el abuso o en otros criterios. Consulta la entrada sobre los problemas que puedes encontrar si utilizas la política de salida por defecto y después lee los consejos para ejecutar un repetidor de salida con las mínimas molestias de Mike Perry.

La política de salida por defecto permite el acceso a muchos servicios populares (navegación web), pero impide algunos otros debido al potencial para el abuso (correo) y otros para los que la red Tor no está diseñada para aguantar (P2P, bittorrent, etc). Puedes cambiar la política de salida editando el archivo torrc. Si quieres evitar la mayor parte, si no todo, el potencial para el abuso, ajústalo a "reject :". Este ajuste significa que tu repetidor será usado para retransmitir tráfico dentro de la red Tor, pero no para conexiones a sitios web externos u otros servicios.

Si permites conexiones de salida, asegúrate de que la resolución DNS funciona (es decir, que tu ordenador puede resolver correctamente las direcciones de Internet). Si hay recursos a los que que tu ordenador es incapaz de conectar (por ejemplo, estás detras de un cortafuegos restrictivo o de un filtro de contenidos) por favor, recházalos de forma explícita en tu política de salida, de lo contrario los usuarios de Tor se verán afectados también.

Tor puede adaptarse bien a esta situación. Simplemente deja en blanco la opción "Address" en el archivo torrc y Tor se encargará de averiguarla.

Si, consigues mejor protección frente a ciertos ataques.

El ejemplo más sencillo esun atacante que maneja un pequeño número de repetidores Tor. Verá una conexión desde tu ordenador, pero no podrá saber si la originaste tu o venía desde otro usuario de la red Tor.

Hay otros casos donde esto no es una ventaja: si un atacante puede ver todo tu tráfico de entrada y de salida, es fácil para el distinguir qué conexiones has iniciado tú y cuales vienen desde otro usuario. (en este caso seguirá sin poder saber hacia donde va esa conexión a menos que también esté espiando el destino, pero en ese caso estás igual que alguien que no use Tor)

También hay desventajas en ejecutar un repetidor Tor. En primer lugar, mientras solo haya unos cientos de repetidores, el hecho de que tú estás ejecutando uno, puede hacer pensar a un atacante que valoras enormemente tu anonimato. En segundo lugar, existen ataques más exóticos que han sido menos estudiados que se aprovechan del hecho de saber que estás ejecutando un repetidor. Por ejemplo, un atacante puede ser capaz de "observar" si estás mandanto tráfico incluso aunque no pueda espiar tu red, mandando tráfico a través de tu repetidor y observando cambios en la cadencia del tráfico de red.

Es una materia de investigación no resuelta si los beneficios superan a los riesgos. Mucho de esto depende de los ataques que más te preocupen. Para la mayoría de los usuarios, creemos que esto es un beneficio.

Visita portforward.com para ver instrucciones sobre cómo redireccionar puertos en tu router.

Si tu repetidor está funcionando en una red interna, necesitas activar la redirección de puertos. La forma de redireccionar puertos TCP depende de cada sistema, pero la entrada firewaled-clients FAQ ofrece varios ejemplos sobre cómo hacerlo.

Además aquí hay un ejemplo de cómo hacerlo en GNU/Linux si usas iptables:

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 9001 -j ACCEPT

Puede que tengas que sustituir "eth0" si tu interfaz externa (la que tiene acceso a internet) es otra. Lo más probable es que solo tengas una (además de loopback) así que no debería de ser muy complicado.

Hay dos opciones que puedes añadir a tu archivo torrc:

BandwidthRate es el máximo ancho de banda a largo plazo permitido (en bytes por segundo). Por ejemplo, puedes añadir "BandwidthRate 10 MBytes" para 10 megabytes por segundo (conexión rápida), o "BandwidthRate 500 KBytes" para 500 kilobytes por segundo (una conexión cablemodem decente). El ajuste mínimo para BandwidthRate es de 75 kilobytes por segundo.

BandwidthBurst es una reserva de bytes usada para satisfacer una demanda por encima de BandwidthRate durante un corto periodo de tiempo pero respetando el valor medio fijado en BandwidthRate. Un valor bajo en Rate pero alto en Burst, asegura a largo plazo un valor medio a la vez que permite picos superiores de tráfico si dicho valor medio no se ha superado recientemente. Por ejemplo, si estableces "BandwidthBurst 500 KBytes" y usas el mismo valor para BandwidthRate, nunca se superará el caudal de 500 kilobytes por segundo, pero si eliges un valor más alto para BandwidthBurst (por ejemplo 5 MBytes), dejará pasar más trafico hasta que la reserva se vacíe.

Si tu conexión es asimétrica (la capacidad de subida es inferior que la de bajada) como pasa con los cablemodem, debes ajustar BandwidthRate a un valor inferior a tu ancho de banda más bajo (normalmente el de subida). De otro modo, podrías sufrir pérdida de paquetes durante los periodos de máximo uso del ancho de banda. Puede que tengas que jugar con estos valores hasta que consigas un uso adecuado de tu conexión. Ajusta BandwidthBurst y BandwidthRate al mismo valor.

Los repetidores Tor basados en Linux, tienen otra opción a su disposición: pueden priorizar el tráfico Tor para que otros tipos de tráfico no se vean afectados por la carga de Tor. Un script para conseguir esto se puede encontrar en el directorio de contribuciones del código fuente de Tor.

Además hay opciones de hibernación donde le puedes decir a Tor que deje pasar una determinada cantidad de tráfico por unidad de tiempo (como por ejemplo 100 GB al mes). Están explicadas más abajo en la sección de hibernación.

Ten en cuenta que BandwidthRate y BandwidthBurst aceptan valores en Bytes, no en Bits.