1. Habilita Actualizaciones Automáticas de Software

Una de las cosas más importantes para mantener la seguridad de tu relay es instalar las actualizaciones de seguridad en su momento y, mejor, de forma automática para no olvidarlas. Sigue las instrucciones para activar actualizaciones automáticas de software para tu sistema operativo.

2. Configura el Repositorio del Tor Project

Configurar el repositorio de paquetes del Proyecto Tor para Debian/Ubuntu está recomendado y documentado en Support portal. Por favor, siga esas instrucciones antes de proceder.

Nota: Los usuarios de Ubuntu necesitan obtener Tor desde el repositorio del Proyecto Tor.

3. Instala Tor

Asegúrate de actualizar la base de datos de paquetes antes de instalar el paquete, luego llama a apt para instalarlo:

# apt update
# apt install tor

4. Instalar obfs4proxy

En Debian, la última versión del paquete obfs4proxy está disponible en stable-backports. Por defecto, los paquetes backports no están instalados, así que para instalar la última versión de obfs4proxy necesitas usar el siguiente comando sudo apt install -t bullseye-backports obfs4proxy o fijar el paquete con una configuración similar a esta que colocará en /etc/apt/preferences.d/obfs4proxy.pref.

Explicación: tor meta, ejecuta siempre la última versión de obfs4proxy
Package: obfs4proxy
Pin: release a=bullseye-backports
Pin-Priority: 500

En Ubuntu, tienen el paquete bionic, cosmic, disco, eoan y focal. Si estás ejecutando cualquiera de ellos, debería funcionar sudo apt-get install obfs4proxy.

Si no, puedes compilarlo a partir del código fuente.

5. Edita tu archivo de configuración Tor, usualmente ubicado en /etc/tor/torrc, y reemplaza su contenido con:

BridgeRelay 1

# Reemplaza "TODO1" con un puerto Tor de tu elección.
# Este puerto debe ser alcanzable desde el exterior.
# Evita el puerto 9001, porque comúnmente está asociado con Tor, y los censores pueden estar escaneando Internet en él.
ORPort TODO1

ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy

# Reemplaza "TODO2" con un puerto obfs4 de tu elección.
# Este puerto debe ser alcanzable desde el exterior, y ser diferente del especificado para ORPort.
# Evita el puerto 9001, porque comúnmente está asociado con Tor, y los censores pueden estar escaneando Internet en él.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2

# Puerto de comunicación local entre Tor y obfs4. Siempre ajústalo a "auto".
# "Ext" significa "extendido", no "externo".  No intentes establecer un número de puerto específico, ni escuchar en 0.0.0.0.
ExtORPort auto

# Reemplaza "<address@email.com>" con tu dirección de correo electrónico, de manera que podamos contactarte si hay problemas con tu puente.
# Esto es opcional, pero te alentamos a que lo hagas.
ContactInfo <address@email.com>

# Elige un sobrenombre que te guste para tu puente. Esto es opcional.
Nickname PickANickname

No olvides cambiar las opciones ORPort, ServerTransportListenAddr, ContactInfo, y Nickname.

Ten en cuenta que tanto el puerto OR de Tor como su puerto obfs4 deben estar accesibles. Si tu puente está detrás de un cortafuegos o un NAT, asegúrate de abrir ambos puertos. Puedes usar nuestro reachability test para ver si tu puerto obfs4 es accesible desde Internet.

(Opcional) Configurar systemd para permitir el enlace obfs4 en puertos con prioridad

Si decides usar un puerto fijo de obfs4 menor que 1024 (por ejemplo 80 o 443), necesitarás configurar systemd y dar a obfs4 las capacidades CAP_NET_BIND_SERVICE para enlazar el puerto con un usuario no root:

sudo setcap cap_net_bind_service=+ep /usr/bin/obfs4proxy

Para evitar el endurecimiento (hardening) de systemd, también tendrás que editar y cambiar la configuración.

Ejecuta el comando:

sudo systemctl edit tor@.service tor@default.service

En el editor, introduce el texto siguiente, guárdalo y sal.

[Service]
NoNewPrivileges=no

En el segundo editor que aparece, introduce el mismo texto, guarda y sal.

[Service]
NoNewPrivileges=no

Si todo ha funcionado correctamente, ahora tendrá dos archivos /etc/systemd/system/tor@.service.d/override.conf y /etc/systemd/system/tor@default.service.d/override.conf que contienen el texto que ha introducido.

Ahora reinicia el servicio tor:

sudo service tor restart

No es necesario ejecutar systemctl daemon-reload porque systemctl edit lo hace automáticamente. Para más detalles, véase ticket 18356.

6. Reiniciar Tor

Activar e iniciar tor:

# systemctl enable --now tor.service

O reinícialo si ya estaba en marcha, para que las configuraciones surtan efecto:

# systemctl restart tor.service

7. Monitorea tus registros

Para confirmar que tu puente está funcionando sin problemas, deberías ver algo como esto (normalmente en /var/log/syslog o ejecuta # journalctl -e -u tor@default):

[notice] Your Tor server's identity key fingerprint is '<NICKNAME> <FINGERPRINT>'
[notice] Your Tor bridge's hashed identity key fingerprint is '<NICKNAME> <HASHED FINGERPRINT>'
[notice] Registered server transport 'obfs4' at '[::]:46396'
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
[notice] Now checking whether ORPort <redacted>:3818 is reachable... (this may take up to 20 minutes -- look for log messages indicating success)
[notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.

8. Notas Finales

Si estás teniendo problemas para configurar tu puente, dale un vistazo a nuestra sección de ayuda. Si tu puente ahora se está ejecutando, comprueba las notas postinstalación.