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 habilitar actualizaciones automáticas de software para tu sistema operativo.

2. Inicializando pkg

Esta guía asume que ya tenemos una instalación base de FreeBSD funcionando, y sólo el sistema base. Eso significa que no tenemos ningún paquete instalado, ni el gestor de paquetes pkg en sí mismo (no hay sudo disponible - estamos ejecutando comandos como superusuario).

Para instalar pkg y secuenciarlo para arranque, deberíamos ejecutar el siguiente comando:

# pkg bootstrap
# pkg update -f
2.1.Pasos recomendados para la instalación pkg

Para seguir las actualizaciones de desarrolladores originales de "forma más rápida", recomendamos cambiar la rama "quarterly" usada por pkg a la rama "latest".

Un paso adicional es la preferencia de uso de HTTPS para descargar nuestros paquetes y actualizaciones - por lo que también necesitamos un paquete extra para ayudarnos (ca_root_nss).

Instalar el paquete ca_root_nss:

# pkg install ca_root_nss

Estamos manteniendo la configuración original utilizada por pkg pero estableciendo una nueva que la anulará. Así que establecemos un nuevo directorio, y luego creamos un archivo de configuración para anular lo que necesitamos. Este fichero de configuración será /usr/local/etc/pkg/repos/FreeBSD.conf.

Creando el nuevo directorio:

# mkdir -p /usr/local/etc/pkg/repos

Así es como debe quedar el archivo de configuración /usr/local/etc/pkg/repos/FreeBSD.conf:

FreeBSD: {
  url: pkg+https://pkg.freebsd.org/${ABI}/latest
}

Luego de aplicar todos estos cambios, actualizamos la lista de paquetes de nuevo, e intentamos comprobar si ya hay una nueva actualización para aplicar:

# pkg update -f
# pkg upgrade -y -f

3. Instala Tor

Puedes elegir instalar la versión estable (recomendada):

# pkg install tor

... o instalar una versión alfa:

# pkg install tor-devel

4. Instalar obfs4proxy

# pkg install obfs4proxy-tor

5. Edita tu fichero de configuración de Tor, se encuentra normalmente en /usr/local/etc/tor y reemplaza su contenido con:

RunAsDaemon 1
BridgeRelay 1

# Reemplaza "TODO1" con un puerto Tor de tu elección. Este puerto debe ser externamente
# alcanzable. Evita el puerto 9001, porque comúnmente está asociado con Tor, y
# los censores podrían estar escaneando Internet buscando este puerto.
ORPort TODO1

ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy

# Reemplaza "TODO2" con un puerto obfs4 de tu elección. Este puerto debe ser
# alcanzable desde el exterior, y diferente del especificado para ORPort.
# Evita el puerto 9001, porque comúnmente está asociado con
# Tor, y los censores podrían estar escaneando Internet por el mismo.
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 puerto específico
# número de puerto específico, ni escuches 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

Log notice file /var/log/tor/notices.log

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

  • Ten en cuenta que ambos, el puerto OR de Tor y su puerto obfs4, deben ser alcanzables. Si tu puente está detrás de un cortafuegos o NAT, asegúrate de abrir ambos puertos. Puedes usar nuestra prueba para ver si tu puerto obfs4 es alcanzable desde el Internet.

  • ¿Estás usando el cortafuegos de FreeBSD con una política de "denegación por defecto"? Si es así, asegúrate de que tu obfs4proxy puede hablar con tu proceso Tor a través de la interfaz loopback. No olvides poner en la lista blanca el ExtORPort de Tor.

6. Asegúrate de que el ajuste random_id en sysctl esté habilitado

# echo "net.inet.ip.random_id=1" >> /etc/sysctl.conf
# sysctl net.inet.ip.random_id=1

7. Inicia el daemon tor y asegúrate de que comienza en el boot

# sysrc tor_setuid=YES
# sysrc tor_enable=YES
# service tor start

8. Monitorea tus registros

Para confirmar que tu puente está corriendo sin problemas, debieras ver algo como esto en /var/log/tor/notices.log:

[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.

9. 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.