hits counter
Este sitio web utiliza cookies para obtener estadísticas de navegación. Si sigue adelante, consideraremos que acepta su uso. Acepto | Más información

Tor



Instalar un servidor proxy TOR

Un proxy actúa como un intermediario para los clientes que solicitan recursos a un servidor, como por ejemplo descargar un archivo o acceder a un sitio web. Cuando se configura un servidor proxy Tor, todo el tráfico del navegador se redirige a través de la red Tor. Así, cada paquete de datos que envíamos se cifra y descifra varias veces usando criptografía asimétrica o de clave pública, redirigiéndose por diversos nodos (llamados relays) que se seleccionan al azar de entre los muchos que componen esta red. Cada conexión pasa por un mínimo de tres nodos. De esta manera podemos ocultar nuestra ubicación o nuestra dirección IP, lo que impide el rastreo de las actividades que llevamos a cabo mientras navegamos por Internet. A cambio, y debido al funcionamiento que acabamos de describir, la red Tor conlleva una ralentización en la velocidad de navegación y transmisión de datos: es el precio que hemos de pagar por la seguridad y el anonimato que nos proporciona.

Lo más común es acceder a Tor a través del navegador gratuito que está disponible en su web; sin embargo esto requiere instalar dicho navegador en cada uno de los dispositivos desde los que vamos a acceder a Internet. Pero si lo que deseamos es utilizar Tor desde cualquier máquina de nuestra red local utilizando el navegador que ya tenemos instalado en cada una, entonces tendremos que configurar un servidor proxy Tor, que es lo que vamos a mostrar a continuación.


Disponer de la última versión de Tor

La versión del paquete Tor que está disponible por defecto en Raspberry Pi OS es bastante anterior a la última versión que podemos encontrar en la web del proyecto. Pero si queremos tener disponible para su instalación esta última versión, tendremos que realizar los cuatro pasos que se indican en esta guía. Hay que tener en cuenta que esto no sirve para la versión de 32 bits (armhf) del sistema operativo; sólo es válido para la versión de 64 bits (arm64). Podremos saber cuál de las dos tenemos instalada usando el comando

sudo dpkg --print-architecture

Antes de hacer lo que se dice en la guía es conveniente convertirnos en root de forma permanente:

sudo su

En el paso 2 no hay que olvidar sustituir <DISTRIBUTION> por el Code name de la distribución que estamos usando, algo que podemos averiguar fácilmente con el comando

lsb_release -c

Una vez realizados todos los pasos y finalizado el proceso, dejaremos de ser administrador con

exit

El siguiente comando nos muestra la versión más actualizada de Tor (que ya ha quedado instalada en el último paso de la guía) y también la que el sistema operativo trae por defecto para instalar:

apt list tor

Instalar y configurar el servidor proxy

Procedemos a instalar Tor. Si hemos seguido los pasos del subapartado anterior, ya lo tendremos instalado y por tanto podemos continuar con el paso siguiente. En caso contrario, lo instalamos ahora:

sudo apt install tor

Y comprobamos que está activo:

sudo systemctl status tor@default.service

Lo que nos mostrará esto:

Salimos pulsando la tecla q.

A continuación vamos a modificar el fichero de configuración de Tor, pero antes haremos una copia de seguridad del mismo:

sudo cp /etc/tor/torrc /etc/tor/torrc.backup

Y ya podemos editarlo:

sudo nano /etc/tor/torrc

Tenemos que descomentar las siguientes cuatro líneas, modificando además las dos primeras. En SocksPort pondremos la IP local de la Raspberry, seguida del puerto estándar 9050 (aunque podemos cambiarlo); en SocksPolicy accept indicaremos que se puedan conectar todos los dispositivos de nuestra red local (192.168.1.0/24). En las siguientes líneas, le decimos que se ejecute como demonio en segundo plano, por lo que no necesitaremos llamarlo cada vez que lo usemos; finalmente, indicamos que los datos se guarden en el directorio predeterminado (/var/lib/tor):

SocksPort 192.168.1.33:9050
SocksPolicy accept 192.168.1.0/24
RunAsDaemon 1
DataDirectory /var/lib/tor

Sólo nos queda reiniciar el proxy para dar por concluida la instalación y configuración del mismo:

sudo systemctl restart tor@default.service

NOTA: si hubiera algún problema y el servicio no se inicia automáticamente al arrancar o reiniciar la Raspberry (lo comprobamos con sudo systemctl status tor@default.service), usaremos el comando anterior para reiniciarlo de nuevo. Pero podemos automatizar este proceso añadiendo en cron una tarea: @reboot (sleep 30; sudo service tor restart).


Configurar el navegador en los clientes

Para poder usar Tor en nuestra red local, tendremos que configurar el navegador que tengamos instalado en cada cliente. En el caso de utilizar Mozilla Firefox, desplegaremos el menú de la esquina superior derecha y seleccionamos Ajustes -- General -- Configuración de red -- Configuración. En la ventana que aparece, seleccionamos el botón de radio Configuración manual del proxy, en Host SOCKS escribimos la IP de la Raspberry y el puerto 9050. Por último, comprobamos que debajo esté seleccionado SOCKS v5:


Ya sólo nos queda hacer clic en el botón Aceptar de la parte inferior para navegar a través del proxy. Podemos comprobar que estamos utilizando de verdad la red Tor pulsando en este enlace.

La IP que se muestra al pinchar en el enlace anterior es la IP de uno de los nodos de salida de la red Tor por los que pasa nuestra conexión, no es nuestra IP pública auténtica, de modo que ésta queda completamente enmascarada. Para saber cuál es nuestra verdadera IP, sólo tenemos que desactivar el proxy en el navegador: marcamos Sin proxy en la ventana anterior, aceptamos el cambio y volvemos a hacer clic en el enlace.




Crear un punto de acceso (AP)

Vamos a convertir la Raspberry en un AP (Access Point) o punto de acceso Wifi con la finalidad de acceder a Internet por medio de la red Tor, de modo que todos los dispositivos que se conectan a este AP, sin tener que tocar ni configurar nada en ellos, se enruten automáticamente a través de Tor. Esto resulta mucho más práctico y cómodo que hacerlo mediante un servidor proxy.

Cuando utilizamos Tor, nuestra ubicación o nuestra dirección IP quedan ocultas y enmascaradas, lo que impide el rastreo de las actividades que llevamos a cabo mientras navegamos por Internet. Pero hemos de saber que su uso conlleva una ralentización en la velocidad de navegación y transmisión de datos debido a su peculiar forma de funcionamiento: es el precio que hemos de pagar por la seguridad y el anonimato que nos proporciona.


requisitos previos

El primer requisito es usar Raspberry Pi OS Lite. Una vez instalada esta versión concreta del SO (para quien lo necesite, aquí se muestra cómo hacerlo y realizar una configuración básica del mismo), entramos por SSH utilizando, de momento, la IP local que nos asigne el servidor DHCP de nuestro router. Más adelante (una vez ejecutado el script de RaspAP) se le asignará una IP estática.

Lo primero que haremos será actualizar el sistema:

sudo apt update
sudo apt upgrade -y

Luego reiniciamos:

sudo reboot

Por último, dado que vamos a crear un punto de acceso Wifi, accedemos a la configuración del sistema:

sudo raspi-config

y entramos en el apartado 5 Localisation Options. Aquí seleccionamos L4 WLAN Country y elegimos nuestro país (ES Spain en nuestro caso). Al salir, cuando se nos pregunte si queremos reiniciar, contestamos que .


Crear el punto de acceso (AP)

Para ahorrarnos el complejo proceso de instalación y configuración del punto de acceso, vamos a usar un script llamado RaspAP que hará todo el trabajo de forma automática. Podemos saber más sobre el mismo pinchando en la siguiente imagen:

Lo ejecutaremos tecleando este comando:

curl -sL https://install.raspap.com | bash

Se nos harán varias preguntas a lo largo de la instalación. Contestamos afirmativamente (Y) a todas ellas, salvo las referidas a la instalación de ad blocking y al soporte para OpenVPN. Se instalarán una gran cantidad de paquetes y se configurará automáticamente todo lo necesario. Al final, se nos preguntará si deseamos reiniciar el sistema. Respondemos afirmativamente y, una vez se haya reiniciado, nos aparecerá una nueva red Wifi con un SSID llamado raspi-webgui. Este es el punto de acceso al que hemos de conectarnos. Para ello usaremos la contraseña ChangeMe. Este AP crea una subred en un rango de direcciones que van desde la 10.3.141.50 hasta la 10.3.141.255, que son las que se les asignarán por DHCP a los clientes que se conecten.

Desde el navegador de nuestro PC entraremos por Wifi en la interfaz web del punto de acceso a través de la dirección 10.3.141.1 para realizar algunos cambios en su configuración. Se nos pedirá un nombre de usuario (admin) y una contraseña (secret). En el menú de la izquierda, pinchamos en Hotspot y en la pestaña Basic comprobamos lo que nos aparece por defecto:

Interface: wlan0
SSID: raspi-webgui              [podemos cambiarlo por otro]
Wireless Mode: 802.11n - 2.4 GHz
Channel: 1                           [también podemos cambiarlo]

Si hemos hecho algún cambio, pulsaremos el botón Save settings. Luego, en la pestaña Security nos aseguramos de que esté seleccionado lo siguiente:

Security type: WPA2
Encryption Type: CCMP
PSK: ChangeMe                [esta contraseña Wifi debemos cambiarla por otra más compleja]

Como antes, si hemos efectuado algún cambio, pulsaremos el botón Save settings. Por último, en la pestaña Advanced, seleccionaremos el país que nos corresponda:

Country Code: Spain           [en nuestro caso]

Guardamos los cambios de nuevo y ahora no debemos olvidar hacer clic en el botón Restart hotspot. Cuando se reinicie, nos conectamos de nuevo al punto de acceso, volvemos a entrar en la interfaz web, vamos al menú izquierdo y pinchamos en Authentication para cambiar la contraseña de acceso por defecto (secret) por otra menos obvia. Ya sólo nos queda guardar los cambios por última vez haciendo clic en Save settings.


Cambios en iptables

Hecho todo lo anterior, ya tenemos la Raspberry convertida en un punto de acceso Wifi y correctamente configurada. Pero ahora nos proponemos ir un paso más allá y hacer que todas las conexiones a la misma se realicen a través de Tor, con el fin de conseguir seguridad y anonimato en nuestras comunicaciones. Para ello, lo primero que haremoss será borrar todas las reglas de iptables del sistema:

sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Podemos comprobar su eliminación con el siguiente comando:

sudo iptables -t nat -L

A continuación crearemos nuevas reglas, comprobaremos que se han escrito correctamente y finalmente las guardaremos:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040
sudo iptables -t nat -L
sudo iptables-save | sudo tee /etc/iptables/rules.v4

Disponer de la última versión de Tor

La versión del paquete Tor que está disponible por defecto en Raspberry Pi OS es bastante anterior a la última versión que podemos encontrar en la web del proyecto. Pero si queremos tener disponible para su instalación esta última versión, tendremos que realizar los cuatro pasos que se indican en esta guía. Hay que tener en cuenta que esto no sirve para la versión de 32 bits (armhf) del sistema operativo; sólo es válido para la versión de 64 bits (arm64). Podremos saber cuál de las dos tenemos instalada usando el comando

sudo dpkg --print-architecture

Antes de hacer lo que se dice en la guía es conveniente convertirnos en root de forma permanente:

sudo su

En el paso 2 no hay que olvidar sustituir <DISTRIBUTION> por el Code name de la distribución que estamos usando, algo que podemos averiguar fácilmente con el comando

lsb_release -c

Una vez realizados todos los pasos y finalizado el proceso, dejaremos de ser administrador con

exit

El siguiente comando nos muestra la versión más actualizada de Tor (que ya ha quedado instalada en el último paso de la guía) y también la que el sistema operativo trae por defecto para instalar:

apt list tor

Instalar Tor

Procedemos a instalar Tor. Si hemos seguido los pasos del subapartado anterior, ya lo tendremos instalado y por tanto podemos continuar con el paso siguiente. En caso contrario, lo instalamos ahora:

sudo apt install tor

Editamos su fichero de configuración:

sudo nano /etc/tor/torrc

Y al final del mismo añadimos las siguientes líneas:

Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 10.3.141.1:9040
DNSPort 10.3.141.1:53

Creamos el fichero de log indicado antes y le damos los permisos correspondientes:

sudo touch /var/log/tor/notices.log
sudo chown debian-tor /var/log/tor/notices.log
sudo chmod 644 /var/log/tor/notices.log

Arrancamos el servicio y comprobamos que esté activo:

sudo service tor start
sudo service tor status

Hacemos que se ejecute durante el arranque del sistema:

sudo update-rc.d tor enable

Y por último, reiniciamos:

sudo reboot

Puede darse el caso de que el servicio no se inicie correctamente durante el arranque de la Raspberry, por lo que nos encontraremos con el problema de que el punto de acceso Wifi no tiene conexión a Internet. Para solucionarlo tendremos que reiniciarlo de nuevo: escribimos sudo service tor stop, esperamos unos segundos y volvemos a iniciarlo con sudo service tor start. Dado que este proceso es bastante tedioso si lo hacemos manualmente, lo mejor es automatizarlo: creamos un script con las instrucciones necesarias y lo ejecutamos en cada reinicio por medio de cron. Lo haremos de esta forma:

  1. 1.- En el /home de nuestro usuario creamos un fichero de script llamado, por ejemplo, aptor.sh:
    nano aptor.sh
    e incluimos este contenido:
    #!/bin/bash
    sleep 15
    sudo service tor stop
    sleep 15
    sudo service tor start
  2. 2.- Una vez guardado, le damos permiso de ejecución:
    chmod u+x aptor.sh
  3. 3.- Editamos el fichero de configuración de cron:
    crontab -e
    y, al final del mismo, añadimos una línea para que se ejecute el script cada vez que se ponga en marcha o se reinicie la Raspberry (cambiando piuser por el nombre del usuario que estemos utilizando en nuestro caso):
    @reboot /home/piuser/aptor.sh > /dev/null 2>&1

A partir de ahora, tras cada arranque, damos tiempo a que se inicie correctamente el servicio y ya podremos conectarnos al punto de acceso Tor desde cualquier cliente. Para asegurarnos de que estamos utilizando de verdad la red Tor, sólo tenemos que pinchar en este enlace.


Asignar una IP estática para acceder por cable

El acceso a la Raspberry por Wifi (interfaz wlan0), ya sea al servidor SSH o a la interfaz web, se realiza mediante una IP estática (10.3.141.1) que le asigna RaspAP. Podemos verlo accediendo al fichero de configuración de la red:

sudo nano /etc/dhcpcd.conf

Sin embargo, para entrar en la Raspberry Pi por cable (interfaz eth0), bien sea al servidor SSH o a la interfaz web, hemos de hacerlo mediante la IP dinámica asignada por el servidor DHCP del router. Esto es así porque el script que usamos antes para crear el punto de acceso borra el contenido y luego realiza cambios en el fichero donde se configura la IP local. Pero una vez que el script ha hecho su labor, ya podemos asignar una IP estática (192.168.1.33, por ejemplo) a la interfaz de red eth0, tal y como se explica aquí. Hecho esto, el contenido del fichero de configuración quedaría así:

interface wlan0
static ip_address=10.3.141.1/24
static routers=10.3.141.1
static domain_name_servers=9.9.9.9 1.1.1.1

interface eth0
static ip_address=192.168.1.33/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8 8.8.4.4



Configurar un nodo o relay

En el apartado anterior (y en el que explicamos cómo instalar un servidor proxy) hemos visto cómo usar la red Tor en beneficio propio con el fin de preservar nuestra privacidad. Pero también podemos ser nosotros los que ofrezcamos este servicio a los demás convirtiendo la Raspberry Pi en un Tor relay, es decir, en un nodo o router Tor, de manera que pase a formar parte de esta red y sean otros usuarios los que se beneficien de nuestros recursos para operar en Internet de forma anónima. Se trata, pues, de contribuir de una forma activa a que cualquier persona pueda acceder a Internet y evitar que se monitorice constantemente su actividad, tanto por parte de los gobiernos como de las grandes compañías que ofrecen servicios en la red y trafican con los datos obtenidos.

El proyecto Tor intenta proporcionar una solución al problema de la privacidad consiguiendo que sea imposible (o, al menos, muy difícil) rastrear el origen de una dirección IP. Esto se logra haciendo rebotar la conexión a través de una cadena de relays aleatorios, que consta de al menos un nodo de entrada, un nodo de retransmisión y un nodo de salida:

  1. 1.- Nodo de entrada: el nodo de entrada sólo conoce la dirección IP del usuario de Tor y la dirección IP del nodo de retransmisión, pero no el destino final de la solicitud.
  2. 2.- Nodo intermedio o de retransmisión: el nodo de retransmisión sólo conoce la dirección IP del nodo de entrada y la dirección IP del nodo de salida, y no conoce ni el origen ni el destino final.
  3. 3.- Nodo de salida: el nodo de salida sólo conoce la dirección IP del nodo de retransmisión y el destino final de la solicitud; es el único nodo que descifra el tráfico antes de enviarlo a su destino final. Debido a que el tráfico sale a través de este nodo, su dirección IP es la que se interpreta como el origen del tráfico en lugar de la dirección IP real del usuario de Tor.

Como se muestra en la figura, los nodos de entrada y retransmisión (guard & middle relays), también llamados non-exit relays, que son los que vamos a configurar nosotros, desempeñan un papel crucial en este intercambio porque crean una barrera criptográfica entre el origen de la solicitud y el destino de la misma. En los nodos de salida se rompe esta barrera, pero incluso en el caso de que alguno estuviera controlado por un "observador" que intenta robar los datos, no podrá conocer el origen de la solicitud sin controlar toda la cadena previa de retransmisiones Tor.

Los nodos de salida (exit relays) son más complejos de configurar y mantener, requieren un mayor ancho de banda y además están más expuestos, por lo que suelen ser ejecutados por operadores pertenecientes a diversas instituciones, universidades u organizaciones de defensa de la privacidad.

En cuanto a los primeros, que son los que nos atañen, para que un nodo funcione como entrada o guard relay debe ser estable (a ser posible, permanecer activo 24/7) y además ha de ser rápido (estar por encima de los 2 MB/s de velocidad), de lo contrario funcionará como un middle relay, es decir, un nodo intermedio o de retransmisión.


Requisitos previos

Toda la información sobre los requisitos necesarios para configurar un nodo puede consultarse en la web de Tor, en la sección Relay Operations.

Antes de empezar con la instalación, debemos asignarle a la Raspberry una IP estática, lo que se explica en este apartado.

Lo ideal es mantener nuestro nodo funcionando de forma ininterrumpida (24/7) o al menos que esté on line el mayor tiempo posible, reduciendo los reinicios a lo imprescindible. Por último, y aunque no es obligatorio, sí es conveniente disponer de una IP externa fija, que hará que nuestro nodo sea considerado estable y se le asignen un mayor número de conexiones.

Conviene saber que, al contrario que otras placas, la Raspberry Pi no dispone de aceleración AES-NI por hardware para el cifrado/descifrado de datos, lo que implica que ha de hacerse por software y ello conlleva una cierta ralentización en el flujo del tráfico que pasa por nuestro nodo.


Disponer de la última versión de Tor

La versión del paquete Tor que está disponible por defecto en Raspberry Pi OS es bastante anterior a la última versión que podemos encontrar en la web del proyecto. Pero si queremos tener disponible para su instalación esta última versión, tendremos que realizar los cuatro pasos que se indican en esta guía. Hay que tener en cuenta que esto no sirve para la versión de 32 bits (armhf) del sistema operativo; sólo es válido para la versión de 64 bits (arm64). Podremos saber cuál de las dos tenemos instalada usando el comando

sudo dpkg --print-architecture

Antes de hacer lo que se dice en la guía es conveniente convertirnos en root de forma permanente:

sudo su

En el paso 2 no hay que olvidar sustituir <DISTRIBUTION> por el Code name de la distribución que estamos usando, algo que podemos averiguar fácilmente con el comando

lsb_release -c

Una vez realizados todos los pasos y finalizado el proceso, dejaremos de ser administrador con

exit

El siguiente comando nos muestra la versión más actualizada de Tor (que ya ha quedado instalada en el último paso de la guía) y también la que el sistema operativo trae por defecto para instalar:

apt list tor

Instalacíón y configuración

Procedemos a instalar Tor. Si hemos seguido los pasos del subapartado anterior, ya lo tendremos instalado y por tanto podemos continuar con el paso siguiente. En caso contrario, lo instalamos ahora:

sudo apt install tor

Editamos su fichero de configuración:

sudo nano /etc/tor/torrc

y al final del mismo añadimos las siguientes líneas:

SocksPort 0
ExitRelay 0
DataDirectory /var/lib/tor
Log notice file /var/log/tor/notices.log
ControlPort 9051
ORPort 9001 IPv4Only | IPv6Only
DirPort 9030
ExitPolicy reject *:*
RelayBandwidthRate 16 MB
RelayBandwidthBurst 24 MB
Nickname mi_nick
ContactInfo mi_email
CookieAuthentication 1
DisableDebuggerAttachment 0

En la sexta línea elegiremos IPv4Only o bien IPv6Only según la versión del protocolo de asignación de IPs que estemos usando en nuestro conexión a Internet. Si no especificamos nada, usará ambas versiones. Luego, más abajo, tenemos que sustituir mi_nick por el apodo que queramos utilizar en la red y mi_email por una dirección de correo.

Podemos cambiar el ancho de banda que vamos a asignar a nuestro nodo en la red modificando los valores RelayBandwidthRate (ancho de banda promedio usado) y RelayBandwidthBurst (pico máximo durante ráfagas cortas), adecuándolos a la capacidad y velocidad de transmisión de nuestra línea, aunque se recomienda asignarle al menos 16 MB, si es posible.

También podemos limitar la cantidad de tráfico que puede circular por nuestro nodo, bien sea al día, a la semana o al mes. Para ello será necesario añadir las opciones AccountingStart y AccountingMax, tal y como se explica aquí.

Los puertos indicados en el fichero (9001 TCP y 9030 TCP, que podemos cambiar) hemos de abrirlos en el router y redirigirlos a la IP local de la Raspberry. También los abriremos en el cortafuegos, si lo tenemos instalado.

A continuación reiniciamos Tor para que los cambios hagan efecto:

sudo service tor restart

Si todo ha ido bien, pasados un par de minutos podemos mirar el contenido del fichero de log:

cat /var/log/tor/notices.log

y comprobar que al final del mismo haya una línea como la siguiente:

... [notice] Self-testing indicates your ORPort xxxx:9001 is reachable from the outside. Excellent. Publishing server descriptor.

A partir de este momento nuestro relay será distribuido por la BridgeDB y pasará a formar parte de la red de nodos Tor. Una vez transcurridas varias horas podremos monitorizar su estado buscándolo en Relay Search. La búsqueda podemos hacerla por nuestro apodo, dirección IP, hashed fingerprint, etc.

Finalmente, añadir que en el directorio /var/lib/tor se almacenan algunos datos importantes de nuestro nodo, entre ellos la clave privada que se usa para cifrar los paquetes de datos.


Monitor de estado

Para observar en tiempo real la actividad de nuestro nodo Tor, podemos instalar el monitor de estado ARM (Anonymizing Relay Monitor) para la terminal:

sudo apt install tor-arm

Limpiamos la consola escribiendo clear y lo ejecutamos con este comando:

sudo -u debian-tor nyx

Hay una serie de teclas que podemos usar: m para desplegar el menú de opciones, p para pausar la gráfica o q (dos veces) para salir.


Nodos bridge

Aparte de los nodos de tipo relay que hemos visto hasta ahora, existe además una clase especial llamada bridge (puente). Estos funcionan como nodos de entrada que conectan con un relay. El diseño de la red Tor implica que la dirección IP de sus nodos relay es pública. Por ello, una de las formas en que los gobiernos o los ISP pueden combatir el uso de Tor es bloqueando la lista de direcciones IP de estos nodos públicos. Sin embargo, los bridge son nodos de la red que no figuran en el directorio público de Tor, lo que dificulta enormemente que los ISP o los gobiernos puedan bloquearlos, ya que su IP no es conocida.

Para los usuarios de Tor, recurrir a este tipo especial de nodos es muy importante si se encuentran bajo regímenes opresivos que intentan impedir el acceso a la red Tor y también para aquellas personas que quieren una capa adicional de seguridad porque les preocupa que alguien descubra que están conectados a una dirección IP pública de retransmisión Tor.

Para nosotros, configurar un nodo bridge es una excelente opción si estamos ejecutando un nodo Tor desde nuestra red doméstica, disponemos de una única IP pública o no tenemos una línea con una gran cantidad de ancho de banda para donar (aunque se recomienda ceder al menos 2 MB/s de este ancho de banda).

Si queremos realizar la configuración de nuestro nodo Tor en modo bridge, el proceso diferirá un poco con respecto al que explicamos antes. Los pasos se indican a continuación.

  1. 1.- Instalamos Tor:
    sudo apt install tor
  2. 2.- Después hay que instalar este otro paquete, que incluye el protocolo de ofuscación obfs4:
    sudo apt install obfs4proxy
  3. 3.- Seguidamente editamos el fichero de configuración de Tor:
    sudo nano /etc/tor/torrc
    Pero en este caso el contenido que incluiremos será algo diferente:
    BridgeRelay 1
    ORPort 9833 IPv4Only | IPv6Only
    ExtORPort auto
    ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
    ServerTransportListenAddr obfs4 0.0.0.0:8042
    DataDirectory /var/lib/tor
    Log notice file /var/log/tor/notices.log
    ExitPolicy reject *:*
    RelayBandwidthRate 4 MB
    RelayBandwidthBurst 8 MB
    Nickname mi_nick
    ContactInfo mi_email
    #BridgeDistribution https|moat|email|settings|telegram|none|any
    Fijémonos en lo que hay en negrita. En la segunda línea elegiremos IPv4Only o bien IPv6Only en función de la versión del protocolo de asignación de IPs que estemos usando en nuestro conexión a Internet. Si no especificamos nada, usará ambas versiones. Más abajo, no hay que olvidar sustituir mi_nick y mi_email por el apodo y el correo que queramos usar. Finalmente, si descomentamos la última línea podremos elegir uno de los varios métodos disponibles para la distribución de puentes. No obstante, lo habitual es dejarla comentada y que sea el propio sistema Tor el que elija, según sus necesidades, uno de los cinco primeros métodos. Obtendríamos el mismo resultado si activamos esta opción y elegimos any.
  4. 4.- Ya sólo nos falta reiniciar el servicio:
    sudo service tor restart

Lo demás es idéntico a lo expuesto antes, incluyendo la instalación del monitor de estado. Únicamente recordar que, como es obvio, los nuevos puertos indicados en el fichero anterior (el 9833 TCP y el 8042 TCP, que podemos cambiar por otros si lo deseamos) tendremos que abrirlos en el router y redireccionarlos a la IP local de la Raspberry. También los abriremos en el cortafuegos, en el caso de que lo tengamos instalado.

Una vez que nuestro nodo bridge esté en funcionamiento, podremos conocer cuántas IPs se han conectado al mismo en las últimas 24 horas y desde qué paises lo han hecho. Para ello sólo tendremos que leer el contenido de este archivo:

sudo cat /var/lib/tor/stats/bridge-stats



Snowflake en el navegador

Si queremos colaborar con el Proyecto Tor de una forma mucho más fácil, sin tener que configurar un nodo, podemos recurrir a Snowflake, un novedoso sistema que permite a cualquier ordenador que tenga instalado un navegador Mozilla Firefox o Google Chrome convertirse en un proxy Tor. Su esquema de funcionamiento, como se muestra en el enlace anterior, es el siguiente:

Convertir nuestro navegador en un proxy Tor permite a las personas que viven en países cuyos gobiernos intentan impedir el uso de la red Tor (como China, Bielorrusia, Irán, Kazagistán, etc.) saltarse el bloqueo al que están sometidas. Snowflake forma un entramado de proxys que se encuentra en continuo movimiento, pues las direcciones IPs que forman este conjunto cambian con mucha frecuencia, lo que dificulta considerablemente la tarea de bloquear las IPs de todos estos proxys.

Existen dos maneras de utilizar Snowflake en nuestro navegador (que ha de tener activado el protocolo WebRTC, cosa que sucede por defecto) y convertirlo en un proxy Tor:

  1. a) Primer método: Instalar un complemento o extensión en Mozilla Firefox o en Google Chrome. El icono de Snowflake aparecerá en la parte superior derecha de la barra de iconos. Sólo tenemos que activarlo y mantener el navegador abierto.
  2. b) Segundo método: Simplemente ir a esta página de Tor y activar Snowflake. Como en el caso anterior, es necesario dejar el navegador abierto para que funcione.

Puede que a alguien le preocupe la seguridad de su sistema al usarlo como un proxy. En la propia web de Tor se despejan las dudas al respecto: "No tienes que preocuparte por los sitios web a los que la gente está accediendo a través de tu proxy. Su dirección IP de navegación visible coincidirá con el nodo de salida de Tor, no con la tuya."

En lo que respecta a las personas que quieran utilizar este sistema porque tienen problemas para acceder a la red Tor en los sitios donde viven, sólo necesitan descargar el navegador Tor, y una vez instalado y abierto, en la pantalla de inicio pinchar en Configuración de la red Tor (o bien desplegar el menú de la parte superior derecha, pinchar en Ajustes y hacer clic en Tor), en el apartado Puentes activar la casilla Usar un puente y, en la primera opción (Seleccionar un puente integrado), elegir snowflake en el desplegable, como se muestra en esta imagen:

Como curiosidad, añadir que si el usuario elije obfs4 en el desplegable de la imagen, lo que haría es solicitar una conexión con un nodo bridge, cuya creación y configuración vimos en el apartado anterior.